summaryrefslogtreecommitdiffstats
path: root/vm/compiler/codegen/arm/armv7-a-neon/MethodCodegenDriver.c
Commit message (Collapse)AuthorAgeFilesLines
* Move the compiler into C++.Carl Shapiro2011-04-191-452/+0
| | | | Change-Id: Idffbdb02c29e2be03a75f5a0a664603f2299504a
* Generate code for loops formed with the new builderBen Cheng2011-03-311-2/+2
| | | | | | | | | | | | | | | | Adapt the existing counted loop analysis and range/null check elimination code to work with the new loop building heuristics. Cleaned up the old ad-hoc loop builder. Suspend polling is enabled by default for loops. The backward chaining cell will be used in self-verification and profiling mode. If the loop includes accesses to resolved fields/classes, abort code generation for now and revert to the basic acyclic trace. Added tests/090-loop-formation to make sure the JIT won't choke on such instructions. Change-Id: Idbc57df0a745be3b692f68c1acb6d4861c537f75
* Handle OP_THROW in the method JIT.Ben Cheng2011-03-021-27/+252
| | | | | | | | | | | | | | | | | | | The current implementation is to reconstruct the leaf Dalvik frame and punt to the interpreter, since the amount of work involed to match each catch block and walk through the stack frames is just not worth JIT'ing. Additional changes: - Fixed a control-flow bug where a block that ends with a throw shouldn't have a fall-through block. - Fixed a code cache lookup bug so that method-based compilation is guaranteed a slot in the profiling table. - Created separate handler routines based on opcode format for the method-based JIT. - Renamed a few core registers that also have special meanings to the VM or ARM architecture. Change-Id: I429b3633f281a0e04d352ae17a1c4f4a41bab156
* Add runtime support for method based compilation.Ben Cheng2011-01-261-0/+227
Enhanced code cache management to accommodate both trace and method compilations. Also implemented a hacky dispatch routine for virtual leaf methods. Microbenchmark showed 3x speedup in leaf method invocation. Change-Id: I79d95b7300ba993667b3aa221c1df9c7b0583521