Lines Matching defs:instr

368   explicit NullCheckSlowPathARM64(HNullCheck* instr) : SlowPathCodeARM64(instr) {}
1563 void InstructionCodeGeneratorARM64::Visit##name(H##name* instr ATTRIBUTE_UNUSED) { \
1566 void LocationsBuilderARM64::Visit##name(H##name* instr) { \
1567 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instr); \
1576 void LocationsBuilderARM64::HandleBinaryOp(HBinaryOperation* instr) {
1577 DCHECK_EQ(instr->InputCount(), 2U);
1578 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instr);
1579 Primitive::Type type = instr->GetResultType();
1584 locations->SetInAt(1, ARM64EncodableConstantOrRegister(instr->InputAt(1), instr));
1596 LOG(FATAL) << "Unexpected " << instr->DebugName() << " type " << type;
1722 void InstructionCodeGeneratorARM64::HandleBinaryOp(HBinaryOperation* instr) {
1723 Primitive::Type type = instr->GetType();
1728 Register dst = OutputRegister(instr);
1729 Register lhs = InputRegisterAt(instr, 0);
1730 Operand rhs = InputOperandAt(instr, 1);
1731 if (instr->IsAdd()) {
1733 } else if (instr->IsAnd()) {
1735 } else if (instr->IsOr()) {
1737 } else if (instr->IsSub()) {
1739 } else if (instr->IsRor()) {
1748 __ Ror(dst, lhs, RegisterFrom(instr->GetLocations()->InAt(1), type));
1751 DCHECK(instr->IsXor());
1758 FPRegister dst = OutputFPRegister(instr);
1759 FPRegister lhs = InputFPRegisterAt(instr, 0);
1760 FPRegister rhs = InputFPRegisterAt(instr, 1);
1761 if (instr->IsAdd()) {
1763 } else if (instr->IsSub()) {
1775 void LocationsBuilderARM64::HandleShift(HBinaryOperation* instr) {
1776 DCHECK(instr->IsShl() || instr->IsShr() || instr->IsUShr());
1778 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instr);
1779 Primitive::Type type = instr->GetResultType();
1784 locations->SetInAt(1, Location::RegisterOrConstant(instr->InputAt(1)));
1793 void InstructionCodeGeneratorARM64::HandleShift(HBinaryOperation* instr) {
1794 DCHECK(instr->IsShl() || instr->IsShr() || instr->IsUShr());
1796 Primitive::Type type = instr->GetType();
1800 Register dst = OutputRegister(instr);
1801 Register lhs = InputRegisterAt(instr, 0);
1802 Operand rhs = InputOperandAt(instr, 1);
1806 if (instr->IsShl()) {
1808 } else if (instr->IsShr()) {
1816 if (instr->IsShl()) {
1818 } else if (instr->IsShr()) {
1847 void LocationsBuilderARM64::VisitBitwiseNegatedRight(HBitwiseNegatedRight* instr) {
1848 DCHECK(Primitive::IsIntegralType(instr->GetType())) << instr->GetType();
1849 LocationSummary* locations = new (GetGraph()->GetArena()) LocationSummary(instr);
1856 void InstructionCodeGeneratorARM64::VisitBitwiseNegatedRight(HBitwiseNegatedRight* instr) {
1857 Register dst = OutputRegister(instr);
1858 Register lhs = InputRegisterAt(instr, 0);
1859 Register rhs = InputRegisterAt(instr, 1);
1861 switch (instr->GetOpKind()) {
1972 void LocationsBuilderARM64::VisitMultiplyAccumulate(HMultiplyAccumulate* instr) {
1974 new (GetGraph()->GetArena()) LocationSummary(instr, LocationSummary::kNoCall);
1975 HInstruction* accumulator = instr->InputAt(HMultiplyAccumulate::kInputAccumulatorIndex);
1976 if (instr->GetOpKind() == HInstruction::kSub &&
1989 void InstructionCodeGeneratorARM64::VisitMultiplyAccumulate(HMultiplyAccumulate* instr) {
1990 Register res = OutputRegister(instr);
1991 Register mul_left = InputRegisterAt(instr, HMultiplyAccumulate::kInputMulLeftIndex);
1992 Register mul_right = InputRegisterAt(instr, HMultiplyAccumulate::kInputMulRightIndex);
1997 if (instr->GetType() == Primitive::kPrimLong &&
2011 if (instr->GetOpKind() == HInstruction::kAdd) {
2012 Register accumulator = InputRegisterAt(instr, HMultiplyAccumulate::kInputAccumulatorIndex);
2015 DCHECK(instr->GetOpKind() == HInstruction::kSub);
2016 HInstruction* accum_instr = instr->InputAt(HMultiplyAccumulate::kInputAccumulatorIndex);
2020 Register accumulator = InputRegisterAt(instr, HMultiplyAccumulate::kInputAccumulatorIndex);