| 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;
|
| }
|
|
|
|
|