From 30a3317577d84feafa859b3e39d1545a995f0b7c Mon Sep 17 00:00:00 2001 From: jeffhao Date: Mon, 22 Oct 2012 18:16:22 -0700 Subject: 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 --- src/compiler/codegen/mips/FP/MipsFP.cc | 8 ++++---- src/compiler/codegen/mips/MipsLIR.h | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'src/compiler/codegen/mips') diff --git a/src/compiler/codegen/mips/FP/MipsFP.cc b/src/compiler/codegen/mips/FP/MipsFP.cc index 437f1ed2d8..990c71f232 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, r_FARG0, r_FARG1); - loadValueDirectWideFixed(cUnit, rlSrc2, r_FARG2, r_FARG3); + loadValueDirectWideFixed(cUnit, rlSrc1, rFARG0, rFARG1); + loadValueDirectWideFixed(cUnit, rlSrc2, rFARG2, rFARG3); } else { - loadValueDirectFixed(cUnit, rlSrc1, r_FARG0); - loadValueDirectFixed(cUnit, rlSrc2, r_FARG2); + loadValueDirectFixed(cUnit, rlSrc1, rFARG0); + loadValueDirectFixed(cUnit, rlSrc2, rFARG2); } 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 5077c9fa40..4b7da557b3 100644 --- a/src/compiler/codegen/mips/MipsLIR.h +++ b/src/compiler/codegen/mips/MipsLIR.h @@ -301,6 +301,10 @@ enum NativeRegisterPool { #define rARG1 r_ARG1 #define rARG2 r_ARG2 #define rARG3 r_ARG3 +#define rFARG0 r_FARG0 +#define rFARG1 r_FARG1 +#define rFARG2 r_FARG2 +#define rFARG3 r_FARG3 #define rRET0 r_RESULT0 #define rRET1 r_RESULT1 #define rINVOKE_TGT r_T9 -- cgit v1.2.3-59-g8ed1b