void StupidAllocator::loadRegister(LInstruction *ins, uint32_t vreg, RegisterIndex index) { // Load a vreg from its stack location to a register. LMoveGroup *input = getInputMoveGroup(ins->id()); LAllocation *source = stackLocation(vreg); LAllocation *dest = new LAllocation(registers[index].reg); input->addAfter(source, dest); registers[index].set(vreg, ins); }
void StupidAllocator::loadRegister(LInstruction* ins, uint32_t vreg, RegisterIndex index, LDefinition::Type type) { // Load a vreg from its stack location to a register. LMoveGroup* input = getInputMoveGroup(ins); LAllocation* source = stackLocation(vreg); LAllocation* dest = new(alloc()) LAllocation(registers[index].reg); input->addAfter(source, dest, type); registers[index].set(vreg, ins); registers[index].type = type; }
void StupidAllocator::syncRegister(LInstruction *ins, RegisterIndex index) { if (registers[index].dirty) { LMoveGroup *input = getInputMoveGroup(ins->id()); LAllocation *source = new LAllocation(registers[index].reg); uint32_t existing = registers[index].vreg; LAllocation *dest = stackLocation(existing); input->addAfter(source, dest); registers[index].dirty = false; } }