summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/GenCommon.cc
diff options
context:
space:
mode:
author jeffhao <jeffhao@google.com> 2012-05-25 19:06:18 -0700
committer jeffhao <jeffhao@google.com> 2012-05-25 19:06:18 -0700
commit21e127119e2de7246dab3f29068c4eadbd1b6f37 (patch)
treef3181bc4ea8919d35ac9d785b3b300475164d7f1 /src/compiler/codegen/GenCommon.cc
parent633703ffb2d25b0cc30404eb057d18eb2f81f07c (diff)
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
Diffstat (limited to 'src/compiler/codegen/GenCommon.cc')
-rw-r--r--src/compiler/codegen/GenCommon.cc3
1 files changed, 2 insertions, 1 deletions
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);