Index: src/ia32/lithium-ia32.cc |
=================================================================== |
--- src/ia32/lithium-ia32.cc (revision 10595) |
+++ src/ia32/lithium-ia32.cc (working copy) |
@@ -670,7 +670,7 @@ |
HInstruction* instr = HInstruction::cast(value); |
VisitInstruction(instr); |
} |
- allocator_->RecordUse(value, operand); |
+ operand->set_virtual_register(value->id()); |
return operand; |
} |
@@ -678,7 +678,7 @@ |
template<int I, int T> |
LInstruction* LChunkBuilder::Define(LTemplateInstruction<1, I, T>* instr, |
LUnallocated* result) { |
- allocator_->RecordDefinition(current_instruction_, result); |
+ result->set_virtual_register(current_instruction_->id()); |
instr->set_result(result); |
return instr; |
} |
@@ -796,21 +796,22 @@ |
LUnallocated* LChunkBuilder::TempRegister() { |
LUnallocated* operand = |
new(zone()) LUnallocated(LUnallocated::MUST_HAVE_REGISTER); |
- allocator_->RecordTemporary(operand); |
+ operand->set_virtual_register(allocator_->GetVirtualRegister()); |
+ if (!allocator_->AllocationOk()) Abort("Not enough virtual registers (temps)."); |
return operand; |
} |
LOperand* LChunkBuilder::FixedTemp(Register reg) { |
LUnallocated* operand = ToUnallocated(reg); |
- allocator_->RecordTemporary(operand); |
+ ASSERT(operand->HasFixedPolicy()); |
return operand; |
} |
LOperand* LChunkBuilder::FixedTemp(XMMRegister reg) { |
LUnallocated* operand = ToUnallocated(reg); |
- allocator_->RecordTemporary(operand); |
+ ASSERT(operand->HasFixedPolicy()); |
return operand; |
} |