summaryrefslogtreecommitdiff
path: root/src/compiler/codegen/RallocUtil.cc
diff options
context:
space:
mode:
author buzbee <buzbee@google.com> 2011-09-23 15:49:27 -0700
committer buzbee <buzbee@google.com> 2011-09-23 15:49:27 -0700
commit042946dda087c5f3d3aed48349baa33127cf2faf (patch)
treebb025ac206db674667c50dea7e084e52140ff8f7 /src/compiler/codegen/RallocUtil.cc
parentc41e5b5ae1befe2c602d55de1dbc04d1914f4a6c (diff)
Fix dalvik vm reg to callee save mappings
Neglected to include fp regs promoted as a double. Change-Id: I7ca6ad5e755c5d2e20c1c903cf41491d605f258e
Diffstat (limited to 'src/compiler/codegen/RallocUtil.cc')
-rw-r--r--src/compiler/codegen/RallocUtil.cc3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/compiler/codegen/RallocUtil.cc b/src/compiler/codegen/RallocUtil.cc
index 8b9ae1333e..6198b42ab1 100644
--- a/src/compiler/codegen/RallocUtil.cc
+++ b/src/compiler/codegen/RallocUtil.cc
@@ -287,6 +287,7 @@ static int allocPreservedDouble(CompilationUnit* cUnit, int sReg)
p->inUse = true;
assert((res & 1) == 0);
cUnit->fpSpillMask |= (1 << (res & FP_REG_MASK));
+ cUnit->fpVmapTable.push_back(sReg);
cUnit->numSpills++;
cUnit->numFPSpills ++;
} else {
@@ -300,8 +301,10 @@ static int allocPreservedDouble(CompilationUnit* cUnit, int sReg)
res = FPRegs[i].reg;
FPRegs[i].inUse = true;
cUnit->fpSpillMask |= (1 << (res & FP_REG_MASK));
+ cUnit->fpVmapTable.push_back(sReg);
FPRegs[i+1].inUse = true;
cUnit->fpSpillMask |= (1 << ((res+1) & FP_REG_MASK));
+ cUnit->fpVmapTable.push_back(sReg);
cUnit->numSpills += 2;
cUnit->numFPSpills += 2;
break;