diff options
author | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-05-08 13:52:53 +0100 |
---|---|---|
committer | Serban Constantinescu <serban.constantinescu@arm.com> | 2014-05-09 14:01:28 +0100 |
commit | 0f89dac7336251f7921621a926319d461837840f (patch) | |
tree | febe5ec75aca80018b43a64df84995220f92c1ef /compiler/trampolines | |
parent | 63206f3038d3d6e1cb24166726613808a4b0ad8c (diff) | |
download | android_art-0f89dac7336251f7921621a926319d461837840f.tar.gz android_art-0f89dac7336251f7921621a926319d461837840f.tar.bz2 android_art-0f89dac7336251f7921621a926319d461837840f.zip |
AArch64: Fix the usage of IP0, IP1 as temporary registers
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>
Diffstat (limited to 'compiler/trampolines')
-rw-r--r-- | compiler/trampolines/trampoline_compiler.cc | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/compiler/trampolines/trampoline_compiler.cc b/compiler/trampolines/trampoline_compiler.cc index fb909a80f8..d03b99ff5a 100644 --- a/compiler/trampolines/trampoline_compiler.cc +++ b/compiler/trampolines/trampoline_compiler.cc @@ -62,18 +62,15 @@ static const std::vector<uint8_t>* CreateTrampoline(EntryPointCallingConvention switch (abi) { case kInterpreterAbi: // Thread* is first argument (X0) in interpreter ABI. - // FIXME IPx used by VIXL - this is unsafe. __ JumpTo(Arm64ManagedRegister::FromCoreRegister(X0), Offset(offset.Int32Value()), Arm64ManagedRegister::FromCoreRegister(IP1)); break; case kJniAbi: // Load via Thread* held in JNIEnv* in first argument (X0). - __ LoadRawPtr(Arm64ManagedRegister::FromCoreRegister(IP1), Arm64ManagedRegister::FromCoreRegister(X0), Offset(JNIEnvExt::SelfOffset().Int32Value())); - // FIXME IPx used by VIXL - this is unsafe. __ JumpTo(Arm64ManagedRegister::FromCoreRegister(IP1), Offset(offset.Int32Value()), Arm64ManagedRegister::FromCoreRegister(IP0)); |