From fa147e22a73c6df166b08a2f71f9c9b52b09d17c Mon Sep 17 00:00:00 2001 From: jeffhao Date: Fri, 12 Oct 2012 17:03:32 -0700 Subject: Numerous fixes to MIPS. Basic oatexec works. - Fixed reversed base and destination reg in genConstString - Changed compiler to use T9 to hold address to jump to - Fixed compilation of instruction getting current PC - Prevented T9 from being used as a compiler temp - Fixed loadBaseDispBody for long form single loads - Fixed stack setup for SaveAll callee methods to save rSELF & rSUSPEND - Added .cpload directive to assembly to regenerate $gp when overwritten - Fixed passing of extra arguments on the stack to account for space reserved for $a0-$a3 - Fixed resolution trampoline to properly setup and restore stack - Created mips stubs for interface trampoline and unresolved direct method trampoline Change-Id: I63a3fd0366bdfabdebebf58ec4b8bc9443cec355 --- src/compiler/codegen/mips/Assemble.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/compiler/codegen/mips/Assemble.cc') diff --git a/src/compiler/codegen/mips/Assemble.cc b/src/compiler/codegen/mips/Assemble.cc index 8c906ccdb3..f19c1f1e29 100644 --- a/src/compiler/codegen/mips/Assemble.cc +++ b/src/compiler/codegen/mips/Assemble.cc @@ -400,7 +400,7 @@ MipsEncodingMap EncodingMap[kMipsLast] = { ENCODING_MAP(kMipsDelta, 0x27e00000, kFmtBitBlt, 20, 16, kFmtBitBlt, 15, 0, kFmtUnused, 15, 0, kFmtUnused, -1, -1, IS_QUAD_OP | REG_DEF0 | REG_USE_LR | - NEEDS_FIXUP, "addiu", "!0r,r_ra,0x!1h(!1d)", 4), + NEEDS_FIXUP, "addiu", "!0r,ra,0x!1h(!1d)", 4), ENCODING_MAP(kMipsDeltaHi, 0x3C000000, kFmtBitBlt, 20, 16, kFmtBitBlt, 15, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_QUAD_OP | REG_DEF0 | NEEDS_FIXUP, @@ -409,10 +409,10 @@ MipsEncodingMap EncodingMap[kMipsLast] = { kFmtBlt5_2, 16, 21, kFmtBitBlt, 15, 0, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_QUAD_OP | REG_DEF0_USE0 | NEEDS_FIXUP, "ori", "!0r,!0r,0x!1h(!1d)", 4), - ENCODING_MAP(kMipsCurrPC, 0x04110020, + ENCODING_MAP(kMipsCurrPC, 0x04110001, kFmtUnused, -1, -1, kFmtUnused, -1, -1, kFmtUnused, -1, -1, kFmtUnused, -1, -1, NO_OPERAND | IS_BRANCH | REG_DEF_LR, - "pc2ra", "; r_ra <- .+8", 4), + "addiu", "ra,pc,8", 4), ENCODING_MAP(kMipsSync, 0x0000000f, kFmtBitBlt, 10, 6, kFmtUnused, -1, -1, kFmtUnused, -1, -1, kFmtUnused, -1, -1, IS_UNARY_OP, -- cgit v1.2.3-59-g8ed1b