diff options
| author | 2011-09-23 15:49:27 -0700 | |
|---|---|---|
| committer | 2011-09-23 15:49:27 -0700 | |
| commit | 042946dda087c5f3d3aed48349baa33127cf2faf (patch) | |
| tree | bb025ac206db674667c50dea7e084e52140ff8f7 /src/compiler/codegen/RallocUtil.cc | |
| parent | c41e5b5ae1befe2c602d55de1dbc04d1914f4a6c (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.cc | 3 |
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; |