diff options
| author | 2015-12-10 00:34:23 +0000 | |
|---|---|---|
| committer | 2015-12-10 00:34:23 +0000 | |
| commit | 1d97f949e807e963dd92dcf9ac38def5301d555a (patch) | |
| tree | 63876ed347fac7bb587772269140719d7975a1a9 /compiler | |
| parent | f1975e432859101bf8e7b0fd33f6052cafb0f9b2 (diff) | |
| parent | 4d98c84e6e2a47caf279909edae2b55f9f032288 (diff) | |
Merge "ART: Make trampoline compiler pointer-size-safe"
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/trampolines/trampoline_compiler.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/trampolines/trampoline_compiler.cc b/compiler/trampolines/trampoline_compiler.cc index 39e5259f04..48465e64aa 100644 --- a/compiler/trampolines/trampoline_compiler.cc +++ b/compiler/trampolines/trampoline_compiler.cc @@ -57,7 +57,7 @@ static const std::vector<uint8_t>* CreateTrampoline(EntryPointCallingConvention __ LoadFromOffset(kLoadWord, PC, R0, offset.Int32Value()); break; case kJniAbi: // Load via Thread* held in JNIEnv* in first argument (R0). - __ LoadFromOffset(kLoadWord, IP, R0, JNIEnvExt::SelfOffset().Int32Value()); + __ LoadFromOffset(kLoadWord, IP, R0, JNIEnvExt::SelfOffset(4).Int32Value()); __ LoadFromOffset(kLoadWord, PC, IP, offset.Int32Value()); break; case kQuickAbi: // R9 holds Thread*. @@ -91,7 +91,7 @@ static const std::vector<uint8_t>* CreateTrampoline(EntryPointCallingConvention case kJniAbi: // Load via Thread* held in JNIEnv* in first argument (X0). __ LoadRawPtr(Arm64ManagedRegister::FromXRegister(IP1), Arm64ManagedRegister::FromXRegister(X0), - Offset(JNIEnvExt::SelfOffset().Int32Value())); + Offset(JNIEnvExt::SelfOffset(8).Int32Value())); __ JumpTo(Arm64ManagedRegister::FromXRegister(IP1), Offset(offset.Int32Value()), Arm64ManagedRegister::FromXRegister(IP0)); @@ -126,7 +126,7 @@ static const std::vector<uint8_t>* CreateTrampoline(EntryPointCallingConvention __ LoadFromOffset(kLoadWord, T9, A0, offset.Int32Value()); break; case kJniAbi: // Load via Thread* held in JNIEnv* in first argument (A0). - __ LoadFromOffset(kLoadWord, T9, A0, JNIEnvExt::SelfOffset().Int32Value()); + __ LoadFromOffset(kLoadWord, T9, A0, JNIEnvExt::SelfOffset(4).Int32Value()); __ LoadFromOffset(kLoadWord, T9, T9, offset.Int32Value()); break; case kQuickAbi: // S1 holds Thread*. @@ -158,7 +158,7 @@ static const std::vector<uint8_t>* CreateTrampoline(EntryPointCallingConvention __ LoadFromOffset(kLoadDoubleword, T9, A0, offset.Int32Value()); break; case kJniAbi: // Load via Thread* held in JNIEnv* in first argument (A0). - __ LoadFromOffset(kLoadDoubleword, T9, A0, JNIEnvExt::SelfOffset().Int32Value()); + __ LoadFromOffset(kLoadDoubleword, T9, A0, JNIEnvExt::SelfOffset(8).Int32Value()); __ LoadFromOffset(kLoadDoubleword, T9, T9, offset.Int32Value()); break; case kQuickAbi: // Fall-through. |