Fixes to make jni_compiler_test work on MIPS.
Fixed the jni compiler in numerous ways:
- Added NOP for delay slot of branches/jumps
- Made calling convention match registers pushed by stubs
- Fixes to assembly and added noreorder directive
Change-Id: I32bc55985fbbc58b5b5358149766b8738b3ac955
diff --git a/src/oat/runtime/mips/context_mips.cc b/src/oat/runtime/mips/context_mips.cc
index 1a4cb5d..dc13c63 100644
--- a/src/oat/runtime/mips/context_mips.cc
+++ b/src/oat/runtime/mips/context_mips.cc
@@ -30,7 +30,6 @@
for (int i = 0; i < 32; i++) {
fprs_[i] = kBadGprBase + i;
}
- pc_ = 0xEBAD601F;
#endif
}
@@ -56,7 +55,7 @@
int j = 1;
for (int i = 0; i < 32; i++) {
if (((fp_core_spills >> i) & 1) != 0) {
- fprs_[i] = fr.LoadCalleeSave(spill_count +fp_spill_count - j, frame_size);
+ fprs_[i] = fr.LoadCalleeSave(spill_count + fp_spill_count - j, frame_size);
j++;
}
}
@@ -69,7 +68,6 @@
gprs_[A1] = kBadGprBase + A1;
gprs_[A2] = kBadGprBase + A2;
gprs_[A3] = kBadGprBase + A3;
- gprs_[RA] = kBadGprBase + RA;
}
extern "C" void art_do_long_jump(uint32_t*, uint32_t*);