More MIPS fixes. Many run-test tests pass.
Run-test tests 001-043 work, including 003-omnibus-opcodes. 044 is
proxy, which is still broken.
Changes made:
- Fixed argument marshalling of FP values for calls to helper functions
in the compiler.
- Fixed CheckCast compilation's mistaken use of rARG0 instead of rRET0.
- Fixed conversion calls to marshall FP arguments properly.
- Created named values for FP args, though they differ in MIPS only.
- Fixed assembly to always use T9 to hold code pointer to jump to.
- Fixed proxy offset values.
Change-Id: If121db322683a307e5a1016210f4f73283aa817c
diff --git a/src/oat/runtime/mips/runtime_support_mips.S b/src/oat/runtime/mips/runtime_support_mips.S
index eafd380..349e802 100644
--- a/src/oat/runtime/mips/runtime_support_mips.S
+++ b/src/oat/runtime/mips/runtime_support_mips.S
@@ -353,11 +353,11 @@
sw $t0, 16($sp) # pass $sp
addiu $sp, $sp, 16 # release out args
move $a0, $v0 # save target Method*
- move $t0, $v1 # save $v0->code_
+ move $t9, $v1 # save $v0->code_
RESTORE_REF_AND_ARGS_CALLEE_SAVE_FRAME
beqz $v0, 1f
nop
- jr $t0
+ jr $t9
nop
1:
DELIVER_PENDING_EXCEPTION
@@ -389,13 +389,13 @@
move $a0, rSELF # pass Thread::Current
jal artWorkAroundAppJniBugs # (Thread*, $sp)
move $a1, $sp # pass $sp
- move $t0, $v0 # save target address
+ move $t9, $v0 # save target address
lw $a0, 12($sp)
lw $a1, 16($sp)
lw $a2, 20($sp)
lw $a3, 24($sp)
lw $ra, 28($sp)
- jr $t0 # tail call into JNI routine
+ jr $t9 # tail call into JNI routine
addiu $sp, $sp, 32
.global art_handle_fill_data_from_code