aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoraph <none@none>2014-06-17 09:30:17 -0400
committeraph <none@none>2014-06-17 09:30:17 -0400
commit013038a64be8c88fa510c6e133e982fb40971c4c (patch)
treeac0effd090e9981bcc3d31a5309505dafb4c89a2
parent6d9e8714134de9bf411d6a474e84bfd3712e43d0 (diff)
Fix register usage in generate_verify_oop().
-rw-r--r--src/cpu/aarch64/vm/stubGenerator_aarch64.cpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp b/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
index dd9523dc3..a669c1ce5 100644
--- a/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
+++ b/src/cpu/aarch64/vm/stubGenerator_aarch64.cpp
@@ -754,10 +754,10 @@ class StubGenerator: public StubCodeGenerator {
// Stack after saving c_rarg3:
// [tos + 0]: saved c_rarg3
// [tos + 1]: saved c_rarg2
- // [tos + 2]: saved rscratch2
- // [tos + 3]: saved lr
- // [tos + 4]: saved rscratch1
- // [tos + 5]: saved r0
+ // [tos + 2]: saved lr
+ // [tos + 3]: saved rscratch2
+ // [tos + 4]: saved r0
+ // [tos + 5]: saved rscratch1
address generate_verify_oop() {
StubCodeMark mark(this, "StubRoutines", "verify_oop");
@@ -765,9 +765,6 @@ class StubGenerator: public StubCodeGenerator {
Label exit, error;
- // __ pushf();
- // __ push(r12);
-
// save c_rarg2 and c_rarg3
__ stp(c_rarg3, c_rarg2, Address(__ pre(sp, -16)));
@@ -807,21 +804,15 @@ class StubGenerator: public StubCodeGenerator {
__ push(RegSet::range(r0, r29), sp);
// debug(char* msg, int64_t pc, int64_t regs[])
- __ ldr(c_rarg0, Address(sp, rscratch1->encoding())); // pass address of error message
- __ mov(c_rarg1, Address(sp, lr)); // pass return address
- __ mov(c_rarg2, sp); // pass address of regs on stack
+ __ mov(c_rarg0, rscratch1); // pass address of error message
+ __ mov(c_rarg1, lr); // pass return address
+ __ mov(c_rarg2, sp); // pass address of regs on stack
#ifndef PRODUCT
assert(frame::arg_reg_save_area_bytes == 0, "not expecting frame reg save area");
#endif
BLOCK_COMMENT("call MacroAssembler::debug");
__ mov(rscratch1, CAST_FROM_FN_PTR(address, MacroAssembler::debug64));
__ blrt(rscratch1, 3, 0, 1);
- __ pop(RegSet::range(r0, r29), sp);
-
- __ ldp(rscratch2, lr, Address(__ post(sp, 2 * wordSize)));
- __ ldp(r0, rscratch1, Address(__ post(sp, 2 * wordSize)));
-
- __ ret(lr);
return start;
}