summaryrefslogtreecommitdiffstats
path: root/compiler/trampolines/trampoline_compiler.cc
Commit message (Collapse)AuthorAgeFilesLines
* ART: Allow to compile interpret-only mips64 filesAndreas Gampe2015-01-151-0/+32
| | | | | | | | | | | | Include enough infrastructure to allow cross-compiling for mips64, interpret-only. This includes the instruction-set-features, frame size info and utils assembler. Also add a disassembler for oatdump, and support in patchoat. Note: the runtime cannot run mips64, yet. Change-Id: Id106581fa76b478984741c62a8a03be0f370d992
* Remove portable.Elliott Hughes2014-12-121-6/+3
| | | | Change-Id: I3bf3250fa866fd2265f1b115d52fa5dedc48a7fc
* Vixl: Update the VIXL interface to VIXL 1.7 and enable VIXL debug.Serban Constantinescu2014-11-281-0/+1
| | | | | | | | This patch updates the interface to VIXL 1.7 and enables the debug version of VIXL when ART is built in debug mode. Change-Id: I443fb941bec3cffefba7038f93bb972e6b7d8db5 Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* Rename arm64 `Register` to `XRegister`.Alexandre Rames2014-10-171-8/+8
| | | | | | | This will avoid naming conflicts in the arm64 port of the optimizing compiler. Change-Id: Ie736ddd2ddbd2e299058256de28bad5d41c57d6f
* Some code clean-up.Ian Rogers2014-10-161-2/+2
| | | | Change-Id: I4b745fd5298cd61c793e3b57514b48347bd66c0e
* Wire up check JNI force copy mode.Ian Rogers2014-08-081-1/+1
| | | | | | | | | | | | Increase check JNI checks. Break apart jni_internal.h in to jni_env_ext.h and java_vm_ext.h. Fix the abuse of ScopedObjectAccess/annotalysis by ScopedCheck in the case of VM routines. Make class loader override and shared library class loader JNI global references rather than mirror pointers. Clean-ups to native bridge. Change-Id: If7c6110b5aade7a402bfb67534af86a7b2cdeb55
* Move trampolines to thumb2 instead of ARMDave Allison2014-06-231-5/+1
| | | | | | | | | Currently the entrypoint trampolines are compiled using the ARM32 assembler. This changes that to use the thumb2 assembler for consistency with the other compiled code. Bug: 15455279 Change-Id: I6bacdf359e2ae4c0967fb5cd9dc694af11f802ec
* Thumb2 assembler for JNI compiler and optimizing compilerDave Allison2014-06-051-0/+4
| | | | | | | | | | | | | | | | | | | | This provides a programmatic assembler for the thumb2 instruction set for ARM. The interface is the same as the ARM assembler and the ARM assembler has been moved into Arm32Assembler. The assembler handles most 16 and 32 bit instructions and also allows relocations due to branch expansion. It will also rewrite cbz/cbnz instructions if they go out of range. It also changes the JNI compiler to use the thumb2 assembler as opposed to forcing it to use ARM32. The trampoline compiler still uses ARM due to the way it returns the address of its generated code. A trampoline in thumb2 is the same size as that in ARM anyway (8 bytes). Provides gtest for testing the thumb2 instruction output. This gtest only runs on the host as it uses arm-eabi-objdump to disassemble the generated code. On the target the output is not checked but the assembler will still be run to perform all its checks. Change-Id: Icd9742b6f13541bec5b23097896727392e3a6fb6
* Now we have a proper C++ library, use std::unique_ptr.Ian Rogers2014-05-191-10/+10
| | | | | | | Also remove the Android.libcxx.mk and other bits of stlport compatibility mechanics. Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
* AArch64: Fix the usage of IP0, IP1 as temporary registersSerban Constantinescu2014-05-091-3/+0
| | | | | | | | | This patch fixes the usage of temporary registers by using VIXL's UseScratchRegisterScope. For the primitives used by the trampoline compiler we explicitly exclude IP0, IP1 from the temporary list. Change-Id: Icf9afbabd93214302891ddd536ce03a9c181463b Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
* Allow mixing of thread offsets between 32 and 64bit architectures.Ian Rogers2014-04-011-15/+26
| | | | | | | Begin a more full implementation x86-64 REX prefixes. Doesn't implement 64bit thread offset support for the JNI compiler. Change-Id: If9af2f08a1833c21ddb4b4077f9b03add1a05147
* Trampoline and assembly fixes for ARM64Andreas Gampe2014-03-241-3/+3
| | | | | | | | | | | Trampolines need a jump, not a call. Expose br in the ARM64 assembler to allow this. The resolution trampoline is called with the Quick ABI, and will continue to a Quick ABI function. Then the method pointer must be in x0. Change-Id: I4e383b59d6c40a659d324a7faef3fadf0c890178
* AArch64: Add arm64 runtime support.Stuart Monteith2014-03-191-0/+43
| | | | | | | | | Adds support for arm64 to ART. Assembler stubs are sufficient for down calls into interpreter. JNI compiler and generics are not finished. Basic Generic JNI functionality. Change-Id: I4a07c79d1e037b9f5746673480e32cf456867b82
* Fix host architecture for 64bit.Ian Rogers2014-03-061-0/+19
| | | | | | | | Also, hack x86 assembler for use as a x86-64 trampoline compiler's assembler. Implement missing x86-64 quick resolution trampoline. Add x86-64 to the quick elf writer. Change-Id: I08216c67014a83492ada12898ab8000218ba7bb4
* Fix missing files.Ian Rogers2013-08-121-0/+119
Build fix. Change-Id: I06ae40611ab1631be8ebea912430a824a086c98f (cherry picked from commit d8de72f54f6076218373af4abf76dd2a548f13e3)