From 21e127119e2de7246dab3f29068c4eadbd1b6f37 Mon Sep 17 00:00:00 2001 From: jeffhao Date: Fri, 25 May 2012 19:06:18 -0700 Subject: Fix x86 aget-wide compilation to use loadBaseIndexedDisp. loadPair doesn't work properly when the result register is floating point. Using loadBaseIndexedDisp fixes the run-tests again. Change-Id: I06cc455abe230068eea862846b91c09681139c55 --- src/compiler/codegen/GenCommon.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/compiler/codegen/GenCommon.cc') diff --git a/src/compiler/codegen/GenCommon.cc b/src/compiler/codegen/GenCommon.cc index e9c348a3f2..0d2cf005d7 100644 --- a/src/compiler/codegen/GenCommon.cc +++ b/src/compiler/codegen/GenCommon.cc @@ -1506,7 +1506,8 @@ void genArrayGet(CompilationUnit* cUnit, MIR* mir, OpSize size, oatFreeTemp(cUnit, rlArray.lowReg); oatFreeTemp(cUnit, rlIndex.lowReg); rlResult = oatEvalLoc(cUnit, rlDest, regClass, true); - loadPair(cUnit, regAddr, rlResult.lowReg, rlResult.highReg); + loadBaseIndexedDisp(cUnit, NULL, regAddr, INVALID_REG, 0, 0, rlResult.lowReg, + rlResult.highReg, size, INVALID_SREG); storeValueWide(cUnit, rlDest, rlResult); } else { rlResult = oatEvalLoc(cUnit, rlDest, regClass, true); -- cgit v1.2.3-59-g8ed1b