diff options
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; |