summaryrefslogtreecommitdiff
path: root/src/compiler/codegen
diff options
context:
space:
mode:
author jeffhao <jeffhao@google.com> 2012-10-18 18:24:15 -0700
committer jeffhao <jeffhao@google.com> 2012-10-18 18:24:15 -0700
commitfc6a30e2fa8f0d44e6c95bbeb5deca4b499f67ce (patch)
tree71bc7549ac42799a5625bfb9c228c499e6ceb4b4 /src/compiler/codegen
parent2e92fd62b8b1e3a14be4642d4e77a022d863a94e (diff)
More MIPS fixes. Most basic tests pass.
IntMath works now. The only basic tests that aren't working are ReferenceMap and StackWalk. In this change: - Fixed argument passing for compare float/double. - Set method stubs for long multiply/divide/remainder. - Store gp value on stack and reload after function call to preserve value for exception delivery. - Fixed argument passing to artThrowStackOverflowFromCode. - Fixed assembly for unsigned shift right long. Change-Id: I6e77454905c3620c9cfd1c089200a8dbe530df2e
Diffstat (limited to 'src/compiler/codegen')
-rw-r--r--src/compiler/codegen/mips/FP/MipsFP.cc8
-rw-r--r--src/compiler/codegen/mips/MipsLIR.h2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/codegen/mips/FP/MipsFP.cc b/src/compiler/codegen/mips/FP/MipsFP.cc
index f121a5434f..437f1ed2d8 100644
--- a/src/compiler/codegen/mips/FP/MipsFP.cc
+++ b/src/compiler/codegen/mips/FP/MipsFP.cc
@@ -197,11 +197,11 @@ static bool genCmpFP(CompilationUnit *cUnit, Instruction::Code opcode, RegLocati
oatFlushAllRegs(cUnit);
oatLockCallTemps(cUnit);
if (wide) {
- loadValueDirectWideFixed(cUnit, rlSrc1, rARG0, rARG1);
- loadValueDirectWideFixed(cUnit, rlSrc2, rARG2, rARG3);
+ loadValueDirectWideFixed(cUnit, rlSrc1, r_FARG0, r_FARG1);
+ loadValueDirectWideFixed(cUnit, rlSrc2, r_FARG2, r_FARG3);
} else {
- loadValueDirectFixed(cUnit, rlSrc1, rARG0);
- loadValueDirectFixed(cUnit, rlSrc2, rARG1);
+ loadValueDirectFixed(cUnit, rlSrc1, r_FARG0);
+ loadValueDirectFixed(cUnit, rlSrc2, r_FARG2);
}
int rTgt = loadHelper(cUnit, offset);
// NOTE: not a safepoint
diff --git a/src/compiler/codegen/mips/MipsLIR.h b/src/compiler/codegen/mips/MipsLIR.h
index 5e5147a96b..5077c9fa40 100644
--- a/src/compiler/codegen/mips/MipsLIR.h
+++ b/src/compiler/codegen/mips/MipsLIR.h
@@ -141,6 +141,8 @@ namespace art {
/* These are the same for both big and little endian. */
#define r_FARG0 r_F12
#define r_FARG1 r_F13
+#define r_FARG2 r_F14
+#define r_FARG3 r_F15
#define r_FRESULT0 r_F0
#define r_FRESULT1 r_F1