Lines Matching full:operand
82 UsePosition::UsePosition(LifetimePosition pos, LOperand* operand)
83 : operand_(operand),
191 void LiveRange::SetSpillOperand(LOperand* operand) {
192 ASSERT(!operand->IsUnallocated());
195 spill_operand_->ConvertTo(operand->kind(), operand->index());
448 LOperand* operand) {
452 UsePosition* use_pos = new UsePosition(pos, operand);
482 use_pos->operand()->ConvertTo(op->kind(), op->index());
619 LOperand* LAllocator::AllocateFixed(LUnallocated* operand,
622 TraceAlloc("Allocating fixed reg for op %d\n", operand->virtual_register());
623 ASSERT(operand->HasFixedPolicy());
624 if (operand->policy() == LUnallocated::FIXED_SLOT) {
625 operand->ConvertTo(LOperand::STACK_SLOT, operand->fixed_index());
626 } else if (operand->policy() == LUnallocated::FIXED_REGISTER) {
627 int reg_index = operand->fixed_index();
628 operand->ConvertTo(LOperand::REGISTER, reg_index);
629 } else if (operand->policy() == LUnallocated::FIXED_DOUBLE_REGISTER) {
630 int reg_index = operand->fixed_index();
631 operand->ConvertTo(LOperand::DOUBLE_REGISTER, reg_index);
639 instr->pointer_map()->RecordPointer(operand);
642 return operand;
692 HPhi* LAllocator::LookupPhi(LOperand* operand) const {
693 if (!operand->IsUnallocated()) return NULL;
694 int index = operand->VirtualRegister();
703 LiveRange* LAllocator::LiveRangeFor(LOperand* operand) {
704 if (operand->IsUnallocated()) {
705 return LiveRangeFor(LUnallocated::cast(operand)->virtual_register());
706 } else if (operand->IsRegister()) {
707 return FixedLiveRangeFor(operand->index());
708 } else if (operand->IsDoubleRegister()) {
709 return FixedDoubleLiveRangeFor(operand->index());
717 LOperand* operand,
719 LiveRange* range = LiveRangeFor(operand);
730 if (operand->IsUnallocated()) {
731 LUnallocated* unalloc_operand = LUnallocated::cast(operand);
739 LOperand* operand,
741 LiveRange* range = LiveRangeFor(operand);
743 if (operand->IsUnallocated()) {
744 LUnallocated* unalloc_operand = LUnallocated::cast(operand);
801 // Handle fixed output operand.
823 // This move to spill operand is not a real use. Liveness analysis
882 // instruction will include the output operand (whose value at the
883 // beginning of the instruction is equal to the input operand). If
1016 LOperand* operand = NULL;
1019 operand = chunk_->DefineConstantOperand(constant);
1024 operand = unalloc;
1030 operand,
1121 // it into a location different from the operand of a live range
1400 LOperand* operand = cur->CreateAssignedOperand();
1401 ASSERT(!operand->IsStackSlot());
1402 map->RecordPointer(operand);
1500 TraceAlloc("Live range %d already has a spill operand\n", current->id());
1506 // If the range already has a spill operand and it doesn't need a
1603 void LAllocator::RecordDefinition(HInstruction* instr, LUnallocated* operand) {
1604 operand->set_virtual_register(instr->id());
1608 void LAllocator::RecordTemporary(LUnallocated* operand) {
1610 if (!operand->HasFixedPolicy()) {
1611 operand->set_virtual_register(next_virtual_register_++);
1616 void LAllocator::RecordUse(HValue* value, LUnallocated* operand) {
1617 operand->set_virtual_register(value->id());