| Index: src/mips/lithium-mips.cc
|
| ===================================================================
|
| --- src/mips/lithium-mips.cc (revision 10595)
|
| +++ src/mips/lithium-mips.cc (working copy)
|
| @@ -671,7 +671,7 @@
|
| HInstruction* instr = HInstruction::cast(value);
|
| VisitInstruction(instr);
|
| }
|
| - allocator_->RecordUse(value, operand);
|
| + operand->set_virtual_register(value->id());
|
| return operand;
|
| }
|
|
|
| @@ -679,7 +679,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;
|
| }
|
| @@ -791,21 +791,22 @@
|
|
|
| LUnallocated* LChunkBuilder::TempRegister() {
|
| LUnallocated* operand = new LUnallocated(LUnallocated::MUST_HAVE_REGISTER);
|
| - allocator_->RecordTemporary(operand);
|
| + operand->set_virtual_register(allocator_->GetVirtualRegister());
|
| + if (!allocator_->AllocationOk()) Abort("Not enough virtual registers.");
|
| return operand;
|
| }
|
|
|
|
|
| LOperand* LChunkBuilder::FixedTemp(Register reg) {
|
| LUnallocated* operand = ToUnallocated(reg);
|
| - allocator_->RecordTemporary(operand);
|
| + ASSERT(operand->HasFixedPolicy());
|
| return operand;
|
| }
|
|
|
|
|
| LOperand* LChunkBuilder::FixedTemp(DoubleRegister reg) {
|
| LUnallocated* operand = ToUnallocated(reg);
|
| - allocator_->RecordTemporary(operand);
|
| + ASSERT(operand->HasFixedPolicy());
|
| return operand;
|
| }
|
|
|
|
|