summaryrefslogtreecommitdiffstats
path: root/compiler/trampolines/trampoline_compiler.cc
diff options
context:
space:
mode:
authorSerban Constantinescu <serban.constantinescu@arm.com>2014-05-08 13:52:53 +0100
committerSerban Constantinescu <serban.constantinescu@arm.com>2014-05-09 14:01:28 +0100
commit0f89dac7336251f7921621a926319d461837840f (patch)
treefebe5ec75aca80018b43a64df84995220f92c1ef /compiler/trampolines/trampoline_compiler.cc
parent63206f3038d3d6e1cb24166726613808a4b0ad8c (diff)
downloadandroid_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/trampoline_compiler.cc')
-rw-r--r--compiler/trampolines/trampoline_compiler.cc3
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));