Home | History | Annotate | Download | only in optimizing

Lines Matching defs:instruction

307 void CodeGeneratorX86_64::Move(HInstruction* instruction,
310 if (instruction->AsIntConstant() != nullptr) {
311 Immediate imm(instruction->AsIntConstant()->GetValue());
317 } else if (instruction->AsLongConstant() != nullptr) {
318 int64_t value = instruction->AsLongConstant()->GetValue();
325 } else if (instruction->AsLoadLocal() != nullptr) {
326 switch (instruction->GetType()) {
333 Move(location, Location::StackSlot(GetStackSlot(instruction->AsLoadLocal()->GetLocal())));
337 Move(location, Location::DoubleStackSlot(GetStackSlot(instruction->AsLoadLocal()->GetLocal())));
341 LOG(FATAL) << "Unimplemented local type " << instruction->GetType();
344 DCHECK((instruction->GetNext() == move_for) || instruction->GetNext()->IsTemporary());
345 switch (instruction->GetType()) {
353 Move(location, instruction->GetLocations()->Out());
357 LOG(FATAL) << "Unimplemented type " << instruction->GetType();
786 HConstant* instruction = locations->InAt(1).GetConstant();
787 Immediate imm(instruction->AsIntConstant()->GetValue());
852 HConstant* instruction = locations->InAt(1).GetConstant();
853 Immediate imm(instruction->AsIntConstant()->GetValue());
879 void LocationsBuilderX86_64::VisitNewInstance(HNewInstance* instruction) {
881 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
883 instruction->SetLocations(locations);
886 void InstructionCodeGeneratorX86_64::VisitNewInstance(HNewInstance* instruction) {
889 __ movq(CpuRegister(calling_convention.GetRegisterAt(0)), Immediate(instruction->GetTypeIndex()));
895 codegen_->RecordPcInfo(instruction->GetDexPc());
898 void LocationsBuilderX86_64::VisitParameterValue(HParameterValue* instruction) {
899 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
900 Location location = parameter_visitor_.GetNextLocation(instruction->GetType());
907 instruction->SetLocations(locations);
910 void InstructionCodeGeneratorX86_64::VisitParameterValue(HParameterValue* instruction) {
914 void LocationsBuilderX86_64::VisitNot(HNot* instruction) {
915 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
918 instruction->SetLocations(locations);
921 void InstructionCodeGeneratorX86_64::VisitNot(HNot* instruction) {
922 LocationSummary* locations = instruction->GetLocations();
928 void LocationsBuilderX86_64::VisitPhi(HPhi* instruction) {
929 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
930 for (size_t i = 0, e = instruction->InputCount(); i < e; ++i) {
934 instruction->SetLocations(locations);
937 void InstructionCodeGeneratorX86_64::VisitPhi(HPhi* instruction) {
941 instruction) {
942 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
946 if (instruction->InputAt(1)->GetType() == Primitive::kPrimNot) {
950 instruction->SetLocations(locations);
953 void InstructionCodeGeneratorX86_64::VisitInstanceFieldSet(HInstanceFieldSet* instruction) {
954 LocationSummary* locations = instruction->GetLocations();
957 size_t offset = instruction->GetFieldOffset().SizeValue();
958 Primitive::Type field_type = instruction->InputAt(1)->GetType();
998 void LocationsBuilderX86_64::VisitInstanceFieldGet(HInstanceFieldGet* instruction) {
999 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1002 instruction->SetLocations(locations);
1005 void InstructionCodeGeneratorX86_64::VisitInstanceFieldGet(HInstanceFieldGet* instruction) {
1006 LocationSummary* locations = instruction->GetLocations();
1009 size_t offset = instruction->GetFieldOffset().SizeValue();
1011 switch (instruction->GetType()) {
1045 LOG(FATAL) << "Unimplemented register type " << instruction->GetType();
1048 LOG(FATAL) << "Unreachable type " << instruction->GetType();
1052 void LocationsBuilderX86_64::VisitNullCheck(HNullCheck* instruction) {
1053 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1055 // TODO: Have a normalization phase that makes this instruction never used.
1057 instruction->SetLocations(locations);
1060 void InstructionCodeGeneratorX86_64::VisitNullCheck(HNullCheck* instruction) {
1062 new (GetGraph()->GetArena()) NullCheckSlowPathX86_64(instruction->GetDexPc());
1065 LocationSummary* locations = instruction->GetLocations();
1078 void LocationsBuilderX86_64::VisitArrayGet(HArrayGet* instruction) {
1079 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1081 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
1083 instruction->SetLocations(locations);
1086 void InstructionCodeGeneratorX86_64::VisitArrayGet(HArrayGet* instruction) {
1087 LocationSummary* locations = instruction->GetLocations();
1091 switch (instruction->GetType()) {
1168 LOG(FATAL) << "Unimplemented register type " << instruction->GetType();
1171 LOG(FATAL) << "Unreachable type " << instruction->GetType();
1175 void LocationsBuilderX86_64::VisitArraySet(HArraySet* instruction) {
1176 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1177 Primitive::Type value_type = instruction->InputAt(2)->GetType();
1186 locations->SetInAt(1, Location::RegisterOrConstant(instruction->InputAt(1)));
1189 instruction->SetLocations(locations);
1192 void InstructionCodeGeneratorX86_64::VisitArraySet(HArraySet* instruction) {
1193 LocationSummary* locations = instruction->GetLocations();
1196 Primitive::Type value_type = instruction->InputAt(2)->GetType();
1240 codegen_->RecordPcInfo(instruction->GetDexPc());
1258 LOG(FATAL) << "Unimplemented register type " << instruction->GetType();
1261 LOG(FATAL) << "Unreachable type " << instruction->GetType();
1265 void LocationsBuilderX86_64::VisitArrayLength(HArrayLength* instruction) {
1266 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1269 instruction->SetLocations(locations);
1272 void InstructionCodeGeneratorX86_64::VisitArrayLength(HArrayLength* instruction) {
1273 LocationSummary* locations = instruction->GetLocations();
1280 void LocationsBuilderX86_64::VisitBoundsCheck(HBoundsCheck* instruction) {
1281 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instruction);
1284 // TODO: Have a normalization phase that makes this instruction never used.
1286 instruction->SetLocations(locations);
1289 void InstructionCodeGeneratorX86_64::VisitBoundsCheck(HBoundsCheck* instruction) {
1290 LocationSummary* locations = instruction->GetLocations();
1292 instruction->GetDexPc(), locations->InAt(0), locations->InAt(1));
1325 void LocationsBuilderX86_64::VisitParallelMove(HParallelMove* instruction) {
1329 void InstructionCodeGeneratorX86_64::VisitParallelMove(HParallelMove* instruction) {
1330 codegen_->GetMoveResolver()->EmitNativeCode(instruction);