Lines Matching defs:Register
23 class Register {
25 Register(RegisterId reg, RegisterType type = RegisterType::X) : reg_(reg), type_(type) {};
27 Register W() const
29 return Register(reg_, RegisterType::W);
32 Register X() const
34 return Register(reg_, RegisterType::X);
62 inline bool operator !=(const Register &other)
67 inline bool operator ==(const Register &other)
99 return 8; // 8:Register size
101 return 16; // 16:Register size
103 return 32; // 32:Register size
105 return 64; // 64:Register size
107 return 128; // 128:Register size
164 Operand(Register reg, Shift shift = Shift::LSL, uint8_t shift_amount = 0)
168 Operand(Register reg, Extend extend, uint8_t shiftAmount = 0)
189 inline Register Reg() const
219 Register reg_;
228 MemoryOperand(Register base, Register offset, Extend extend, uint8_t shiftAmount = 0)
233 MemoryOperand(Register base, Register offset, Shift shift = Shift::NO_SHIFT, uint8_t shiftAmount = 0)
238 MemoryOperand(Register base, int64_t offset, AddrMode addrmod = AddrMode::OFFSET)
245 Register GetRegBase() const
280 Register GetRegisterOffset() const
285 Register base_;
286 Register offsetReg_;
300 void Ldp(const Register &rt, const Register &rt2, const MemoryOperand &operand);
301 void Stp(const Register &rt, const Register &rt2, const MemoryOperand &operand);
304 void Ldr(const Register &rt, const MemoryOperand &operand);
305 void Ldrh(const Register &rt, const MemoryOperand &operand);
306 void Ldrb(const Register &rt, const MemoryOperand &operand);
307 void Str(const Register &rt, const MemoryOperand &operand);
308 void Ldur(const Register &rt, const MemoryOperand &operand);
309 void Stur(const Register &rt, const MemoryOperand &operand);
310 void Mov(const Register &rd, const Immediate &imm);
311 void Mov(const Register &rd, const Register &rm);
312 void Movz(const Register &rd, uint64_t imm, int shift);
313 void Movk(const Register &rd, uint64_t imm, int shift);
314 void Movn(const Register &rd, uint64_t imm, int shift);
315 void Orr(const Register &rd, const Register &rn, const LogicalImmediate &imm);
316 void Orr(const Register &rd, const Register &rn, const Operand &operand);
317 void And(const Register &rd, const Register &rn, const Operand &operand);
318 void Ands(const Register &rd, const Register &rn, const Operand &operand);
319 void And(const Register &rd, const Register &rn, const LogicalImmediate &imm);
320 void Ands(const Register &rd, const Register &rn, const LogicalImmediate &imm);
321 void Lsr(const Register &rd, const Register &rn, unsigned shift);
322 void Lsl(const Register &rd, const Register &rn, const Register &rm);
323 void Lsr(const Register &rd, const Register &rn, const Register &rm);
324 void Ubfm(const Register &rd, const Register &rn, unsigned immr, unsigned imms);
325 void Bfm(const Register &rd, const Register &rn, unsigned immr, unsigned imms);
327 void Add(const Register &rd, const Register &rn, const Operand &operand);
328 void Adds(const Register &rd, const Register &rn, const Operand &operand);
329 void Sub(const Register &rd, const Register &rn, const Operand &operand);
330 void Subs(const Register &rd, const Register &rn, const Operand &operand);
331 void Cmp(const Register &rd, const Operand &operand);
332 void CMov(const Register &rd, const Register &rn, const Operand &operand, Condition cond);
337 void Br(const Register &rn);
338 void Blr(const Register &rn);
341 void Cbz(const Register &rt, int32_t imm);
342 void Cbz(const Register &rt, Label *label);
343 void Cbnz(const Register &rt, int32_t imm);
344 void Cbnz(const Register &rt, Label *label);
345 void Tbz(const Register &rt, int32_t bitPos, Label *label);
346 void Tbz(const Register &rt, int32_t bitPos, int32_t imm);
347 void Tbnz(const Register &rt, int32_t bitPos, Label *label);
348 void Tbnz(const Register &rt, int32_t bitPos, int32_t imm);
349 void Tst(const Register &rn, const Operand &operand);
350 void Tst(const Register &rn, const LogicalImmediate &imm);
352 void Ret(const Register &rn);
408 void AddSubImm(AddSubOpCode op, const Register &rd, const Register &rn, bool setFlags, uint64_t imm);
409 void AddSubReg(AddSubOpCode op, const Register &rd, const Register &rn, bool setFlags, const Operand &operand);
410 void MovWide(uint32_t op, const Register &rd, uint64_t imm, int shift);
411 void BitWiseOpImm(BitwiseOpCode op, const Register &rd, const Register &rn, uint64_t imm);
412 void BitWiseOpShift(BitwiseOpCode op, const Register &rd, const Register &rn, const Operand &operand);
413 bool TrySequenceOfOnes(const Register &rd, uint64_t imm);
414 bool TryReplicateHWords(const Register &rd, uint64_t imm);
415 void EmitMovInstruct(const Register &rd, uint64_t imm,
421 void Ldr(const Register &rt, const MemoryOperand &operand, Scale scale);