summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ian Rogers <irogers@google.com> 2012-03-15 18:01:28 -0700
committer Ian Rogers <irogers@google.com> 2012-03-15 18:01:28 -0700
commite44f47f7360f02e9d67351ebf993ad487abd971a (patch)
treeb1899e8597d85917504553766a51f4b6cdfb5886
parent48c6081a230d89599379590612ed638f1c7b4f99 (diff)
Fix offset math for upcalls on x86
Change-Id: I2744ac11dfbd7001390fff8711c1ce80164f69f2
-rw-r--r--src/jni_internal_x86.cc6
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;
}
}