summaryrefslogtreecommitdiffstats
path: root/compiler/compilers.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add x86_64 code generation supportDmitry Petrochenko2014-05-141-1/+1
| | | | | | | | Utilizes r0..r7 in register allocator, implements spill/unsill core regs as well as operations with stack pointer. Change-Id: I973d5a1acb9aa735f6832df3d440185d9e896c67 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* AArch64: Change arm64 backend to produce A64 code.Matteo Franchin2014-05-071-2/+1
| | | | | | | | | | | | | | The arm backend clone is changed to produce A64 code. At the moment this backend can only compile simple methods (both leaf and non-leaf). Most of the work on the assembler (assembler_arm64.cc) has been done. Some work on the LIR generation layer (functions such as OpRegRegImm & friends) is still necessary. The register allocator still needs to be adapted to the A64 instruction set (it is mostly unchanged from the arm backend). Offsets for helpers in gen_invoke.cc still need to be changed to work on 64-bit. Change-Id: I388f99eeb832857981c7d9d5cb5b71af64a4b921
* AArch64: Add fake arm64 backend, and disable it by method filter.Zheng Xu2014-05-071-0/+4
| | | | | | | | | | | | | | | | Just create an ArmCodeGenerator for arm64, but currently no code will be generated for arm64. The method filter can: 1. Skip methods with unsupported prototype. 2. Skip methods with unsupported dalvik byte code. 3. Skip methods with invocation to unsupported prototype. These are temporary codes and should be removed later. But with this patch, it won't break anything when we merge partly implemented arm64 backend later. Change-Id: Ib9180d7b8a978f0a5ebaf6b4893e7e3724897113
* Give Compiler a back reference to the driver.Ian Rogers2014-05-061-38/+37
| | | | | | | | | | The compiler driver is a single object delegating work to the compiler, rather than passing it through to every Compiler call make it a member of Compiler so that it maybe queried. This simplifies the Compiler API and makes the relationship to CompilerDriver more explicit. Remove reference arguments that contravene code style. Change-Id: Iba47f2e3cbda679a7ec7588f26188d77643aa2c6
* art: Handle x86_64 architecture equal to x86Dmitry Petrochenko2014-04-031-0/+6
| | | | | | | | This patch forces FE/ME to treat x86_64 as x86 exactly. The x86_64 logic will be revised later when assembly will be ready. Change-Id: I4a92477a6eeaa9a11fd710d35c602d8d6f88cbb6 Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
* Implement FINAL/OVERRIDE for clang.Ian Rogers2014-03-131-2/+1
| | | | | | | | | | Separate declaration from definition in certain places to work-around issues with clang. Remove bogus lock annotation at definition in compilers.cc that is already present at the declaration. Remove duplicate definition of ClassReference. Change-Id: I5368057bb36319a259110b2198610d9d2b2e5041
* Fix virt-specifiers outside class definition errors.Nicolas Geoffray2014-03-131-3/+1
| | | | Change-Id: Iab341e12e7a978aff6bc35117e9b15f3b2c2cedd
* Add command line support for enabling the optimizing compiler.Nicolas Geoffray2014-03-131-0/+152
Also run tests with the optimizing compiler enabled when the file art/USE_OPTIMIZING_COMPILER is present. Change-Id: Ibc33eed62a43547bc3b9fe786d014c0d81b5add8