Fix reflection_test failures.
This change also allows the Mips emulator to boot in interpreter mode.
Change-Id: Id1d5d65df79f65a747d37ddce6dd79906d1f4fcf
Signed-off-by: Douglas Leung <douglas@mips.com>
diff --git a/runtime/arch/mips/quick_entrypoints_mips.S b/runtime/arch/mips/quick_entrypoints_mips.S
index 95fcd73..d8926a8 100644
--- a/runtime/arch/mips/quick_entrypoints_mips.S
+++ b/runtime/arch/mips/quick_entrypoints_mips.S
@@ -494,8 +494,8 @@
move $s1, $a3 # move managed thread pointer into s1
addiu $s0, $zero, SUSPEND_CHECK_INTERVAL # reset s0 to suspend check interval
addiu $t0, $a2, 16 # create space for method pointer in frame
- srl $t0, $t0, 3 # shift the frame size right 3
- sll $t0, $t0, 3 # shift the frame size left 3 to align to 16 bytes
+ srl $t0, $t0, 4 # shift the frame size right 4
+ sll $t0, $t0, 4 # shift the frame size left 4 to align to 16 bytes
subu $sp, $sp, $t0 # reserve stack space for argument array
addiu $a0, $sp, 4 # pass stack pointer + method ptr as dest for memcpy
jal memcpy # (dest, src, bytes)
@@ -985,9 +985,9 @@
lw $t0, THREAD_EXCEPTION_OFFSET(rSELF) # load Thread::Current()->exception_
RESTORE_REF_ONLY_CALLEE_SAVE_FRAME
bnez $t0, 1f
- nop
+ mtc1 $v0, $f0 # place return value to FP return value
jr $ra
- nop
+ mtc1 $v1, $f1 # place return value to FP return value
1:
DELIVER_PENDING_EXCEPTION
END art_quick_proxy_invoke_handler
@@ -1037,9 +1037,9 @@
lw $t0, THREAD_EXCEPTION_OFFSET(rSELF) # load Thread::Current()->exception_
RESTORE_REF_ONLY_CALLEE_SAVE_FRAME
bnez $t0, 1f
- nop
+ mtc1 $v0, $f0 # place return value to FP return value
jr $ra
- nop
+ mtc1 $v1, $f1 # place return value to FP return value
1:
DELIVER_PENDING_EXCEPTION
END art_quick_to_interpreter_bridge