From 042946dda087c5f3d3aed48349baa33127cf2faf Mon Sep 17 00:00:00 2001 From: buzbee Date: Fri, 23 Sep 2011 15:49:27 -0700 Subject: Fix dalvik vm reg to callee save mappings Neglected to include fp regs promoted as a double. Change-Id: I7ca6ad5e755c5d2e20c1c903cf41491d605f258e --- src/compiler/codegen/RallocUtil.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/compiler/codegen/RallocUtil.cc') 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; -- cgit v1.2.3-59-g8ed1b