Lines Matching full:operand
89 void AssemblerAarch64::Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Ldp() argument
92 if (operand.IsImmediateOffset()) { in Ldp()
93 switch (operand.GetAddrMode()) { in Ldp()
108 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Ldp()
115 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Ldp()
123 void AssemblerAarch64::Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand) in Stp() argument
126 if (operand.IsImmediateOffset()) { in Stp()
127 switch (operand.GetAddrMode()) { in Stp()
142 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Stp()
149 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Stp()
157 …blerAarch64::Ldp(const VectorRegister &vt, const VectorRegister &vt2, const MemoryOperand &operand) in Ldp() argument
160 if (operand.IsImmediateOffset()) { in Ldp()
161 switch (operand.GetAddrMode()) { in Ldp()
175 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Ldp()
195 Rn(operand.GetRegBase().GetId()) | Rt(vt.GetId()); in Ldp()
203 …blerAarch64::Stp(const VectorRegister &vt, const VectorRegister &vt2, const MemoryOperand &operand) in Stp() argument
206 if (operand.IsImmediateOffset()) { in Stp()
207 switch (operand.GetAddrMode()) { in Stp()
221 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Stp()
241 Rn(operand.GetRegBase().GetId()) | Rt(vt.GetId()); in Stp()
276 void AssemblerAarch64::Ldr(const Register &rt, const MemoryOperand &operand, Scale scale) in Ldr() argument
279 uint32_t op = GetOpcodeOfLdr(operand, scale); in Ldr()
280 if (operand.IsImmediateOffset()) { in Ldr()
281 uint64_t imm = GetImmOfLdr(operand, scale, regX); in Ldr()
282 bool isSigned = operand.GetAddrMode() != AddrMode::OFFSET; in Ldr()
285 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Ldr()
288 ASSERT(operand.GetExtendOption() != Extend::NO_EXTEND); in Ldr()
289 uint32_t shift = GetShiftOfLdr(operand, scale, regX); in Ldr()
290 Register rm = operand.GetRegisterOffset(); in Ldr()
291 Register rn = operand.GetRegBase(); in Ldr()
293 (operand.GetExtendOption() << LDR_STR_Extend_LOWBITS) & LDR_STR_Extend_MASK; in Ldr()
302 void AssemblerAarch64::Ldr(const Register &rt, const MemoryOperand &operand) in Ldr() argument
304 Ldr(rt, operand, Scale::Q); in Ldr()
307 void AssemblerAarch64::Ldrh(const Register &rt, const MemoryOperand &operand) in Ldrh() argument
310 Ldr(rt, operand, Scale::H); in Ldrh()
313 void AssemblerAarch64::Ldrb(const Register &rt, const MemoryOperand &operand) in Ldrb() argument
316 Ldr(rt, operand, Scale::B); in Ldrb()
319 void AssemblerAarch64::Str(const Register &rt, const MemoryOperand &operand) in Str() argument
324 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Str()
325 if (operand.IsImmediateOffset()) { in Str()
326 switch (operand.GetAddrMode()) { in Str()
348 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Str()
356 void AssemblerAarch64::Ldur(const Register &rt, const MemoryOperand &operand) in Ldur() argument
360 ASSERT(operand.IsImmediateOffset()); in Ldur()
361 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Ldur()
364 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Ldur()
368 void AssemblerAarch64::Stur(const Register &rt, const MemoryOperand &operand) in Stur() argument
372 ASSERT(operand.IsImmediateOffset()); in Stur()
373 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in Stur()
376 Rn(operand.GetRegBase().GetId()) | Rt(rt.GetId()); in Stur()
462 Add(rd, rm, Operand(Immediate(0))); in Mov()
464 Orr(rd, Register(Zero), Operand(rm)); in Mov()
633 …firstshift = (tz / 16) * 16; // 16 : 16 means the operand of MOVK/N/Z is 16 bits Immediate in EmitMovInstruct()
635 …lastshift = ((63 - lz) / 16) * 16; // 16 : 16 means the operand of MOVK/N/Z is 16 bits Immediate in EmitMovInstruct()
648 … firstshift += 16; // 16 : 16 means the operand of MOVK is 16 bits Immediate in EmitMovInstruct()
697 void AssemblerAarch64::Orr(const Register &rd, const Register &rn, const Operand &operand) in Orr() argument
699 ASSERT(operand.IsShifted()); in Orr()
700 BitWiseOpShift(ORR_Shift, rd, rn, operand); in Orr()
703 void AssemblerAarch64::And(const Register &rd, const Register &rn, const Operand &operand) in And() argument
705 ASSERT(operand.IsShifted()); in And()
706 BitWiseOpShift(AND_Shift, rd, rn, operand); in And()
709 void AssemblerAarch64::Ands(const Register &rd, const Register &rn, const Operand &operand) in Ands() argument
711 ASSERT(operand.IsShifted()); in Ands()
712 BitWiseOpShift(ANDS_Shift, rd, rn, operand); in Ands()
721 …4::BitWiseOpShift(BitwiseOpCode op, const Register &rd, const Register &rn, const Operand &operand) in BitWiseOpShift() argument
723 …uint32_t shift_field = (operand.GetShiftOption() << BITWISE_OP_Shift_LOWBITS) & BITWISE_OP_Shift_M… in BitWiseOpShift()
724 …uint32_t shift_amount = (operand.GetShiftAmount() << BITWISE_OP_ShiftAmount_LOWBITS) & BITWISE_OP_… in BitWiseOpShift()
725 uint32_t code = Sf(!rd.IsW()) | op | shift_field | Rm(operand.Reg().GetId()) | in BitWiseOpShift()
769 void AssemblerAarch64::Add(const Register &rd, const Register &rn, const Operand &operand) in Add() argument
771 if (operand.IsImmediate()) { in Add()
772 int64_t imm = static_cast<int64_t>(operand.ImmediateValue()); in Add()
779 if (operand.IsShifted()) { in Add()
780 AddSubReg(ADD_Shift, rd, rn, false, operand); in Add()
782 AddSubReg(ADD_Extend, rd, rn, false, operand); in Add()
787 void AssemblerAarch64::Adds(const Register &rd, const Register &rn, const Operand &operand) in Adds() argument
789 if (operand.IsImmediate()) { in Adds()
790 AddSubImm(ADD_Imm, rd, rn, true, operand.ImmediateValue()); in Adds()
792 if (operand.IsShifted()) { in Adds()
793 AddSubReg(ADD_Shift, rd, rn, true, operand); in Adds()
795 AddSubReg(ADD_Extend, rd, rn, true, operand); in Adds()
800 void AssemblerAarch64::Sub(const Register &rd, const Register &rn, const Operand &operand) in Sub() argument
802 if (operand.IsImmediate()) { in Sub()
803 int64_t imm = static_cast<int64_t>(operand.ImmediateValue()); in Sub()
810 if (operand.IsShifted()) { in Sub()
811 AddSubReg(SUB_Shift, rd, rn, false, operand); in Sub()
813 AddSubReg(SUB_Extend, rd, rn, false, operand); in Sub()
818 void AssemblerAarch64::Subs(const Register &rd, const Register &rn, const Operand &operand) in Subs() argument
820 if (operand.IsImmediate()) { in Subs()
821 AddSubImm(SUB_Imm, rd, rn, true, operand.ImmediateValue()); in Subs()
823 if (operand.IsShifted()) { in Subs()
824 AddSubReg(SUB_Shift, rd, rn, true, operand); in Subs()
826 AddSubReg(SUB_Extend, rd, rn, true, operand); in Subs()
863 bool setFlags, const Operand &operand) in AddSubReg() argument
867 if (operand.IsShifted()) { in AddSubReg()
868 … uint32_t shift_field = ((operand.GetShiftOption()) << ADD_SUB_Shift_LOWBITS) & ADD_SUB_Shift_MASK; in AddSubReg()
869 …uint32_t shift_amount = ((operand.GetShiftAmount()) << ADD_SUB_ShiftAmount_LOWBITS) & ADD_SUB_Shif… in AddSubReg()
871 code = Sf(!rd.IsW()) | op | flags_field | shift_field | Rm(operand.Reg().GetId()) | in AddSubReg()
876 (operand.GetExtendOption() << ADD_SUB_ExtendOption_LOWBITS) & ADD_SUB_ExtendOption_MASK; in AddSubReg()
877 …uint32_t extend_shift = (operand.GetShiftAmount() << ADD_SUB_ExtendShift_LOWBITS) & ADD_SUB_Extend… in AddSubReg()
878 code = Sf(!rd.IsW()) | op | flags_field | Rm(operand.Reg().GetId()) | extend_field | in AddSubReg()
884 void AssemblerAarch64::Cmp(const Register &rd, const Operand &operand) in Cmp() argument
886 Subs(Register(Zero, rd.GetType()), rd, operand); in Cmp()
889 void AssemblerAarch64::CMov(const Register &rd, const Register &rn, const Operand &operand, Conditi… in CMov() argument
891 ASSERT(!operand.IsImmediate()); in CMov()
893 …uint32_t code = Sf(!rd.IsW()) | CSEL | Rm(operand.Reg().GetId()) | cond_field | Rn(rn.GetId()) | R… in CMov()
1136 uint64_t AssemblerAarch64::GetImmOfLdr(const MemoryOperand &operand, Scale scale, bool isRegX) in GetImmOfLdr() argument
1138 ASSERT(operand.IsImmediateOffset()); in GetImmOfLdr()
1139 uint64_t imm = static_cast<uint64_t>(operand.GetImmediate().Value()); in GetImmOfLdr()
1140 if (operand.GetAddrMode() == OFFSET) { in GetImmOfLdr()
1154 uint64_t AssemblerAarch64::GetOpcodeOfLdr(const MemoryOperand &operand, Scale scale) in GetOpcodeOfLdr() argument
1157 if (operand.IsImmediateOffset()) { in GetOpcodeOfLdr()
1158 switch (operand.GetAddrMode()) { in GetOpcodeOfLdr()
1217 uint32_t AssemblerAarch64::GetShiftOfLdr(const MemoryOperand &operand, Scale scale, bool isRegX) in GetShiftOfLdr() argument
1221 shift = operand.GetShiftOption() != Shift::NO_SHIFT; in GetShiftOfLdr()
1223 shift = operand.GetShiftAmount(); in GetShiftOfLdr()
1227 shift = operand.GetShiftAmount(); in GetShiftOfLdr()