From fc6a30e2fa8f0d44e6c95bbeb5deca4b499f67ce Mon Sep 17 00:00:00 2001 From: jeffhao Date: Thu, 18 Oct 2012 18:24:15 -0700 Subject: 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 --- src/compiler/codegen/mips/FP/MipsFP.cc | 8 ++++---- src/compiler/codegen/mips/MipsLIR.h | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) (limited to 'src/compiler/codegen') 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 -- cgit v1.2.3-59-g8ed1b