diff options
| author | 2012-03-15 18:01:28 -0700 | |
|---|---|---|
| committer | 2012-03-15 18:01:28 -0700 | |
| commit | e44f47f7360f02e9d67351ebf993ad487abd971a (patch) | |
| tree | b1899e8597d85917504553766a51f4b6cdfb5886 | |
| parent | 48c6081a230d89599379590612ed638f1c7b4f99 (diff) | |
Fix offset math for upcalls on x86
Change-Id: I2744ac11dfbd7001390fff8711c1ce80164f69f2
| -rw-r--r-- | src/jni_internal_x86.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/jni_internal_x86.cc b/src/jni_internal_x86.cc index 361cd706e2..f9871c48ae 100644 --- a/src/jni_internal_x86.cc +++ b/src/jni_internal_x86.cc @@ -72,17 +72,17 @@ CompiledInvokeStub* CreateInvokeStub(bool is_static, const char* shorty, uint32_ case 'J': // Move both pointers 64 bits. dst_offset -= kPointerSize; + src_offset -= sizeof(JValue) / 2; __ pushl(Address(rArgArray, src_offset)); - src_offset -= sizeof(JValue); dst_offset -= kPointerSize; + src_offset -= sizeof(JValue) / 2; __ pushl(Address(rArgArray, src_offset)); - src_offset -= sizeof(JValue); break; default: // Move the source pointer sizeof(JValue) and the destination pointer 32 bits. dst_offset -= kPointerSize; - __ pushl(Address(rArgArray, src_offset)); src_offset -= sizeof(JValue); + __ pushl(Address(rArgArray, src_offset)); break; } } |