Lines Matching refs:Register

40   // Data-processing operands - Register
41 explicit ShifterOperand(Register rm) : type_(kRegister), rm_(rm), rs_(kNoRegister),
50 ShifterOperand(Register rm, Shift shift, uint32_t shift_imm = 0) : type_(kRegister), rm_(rm),
56 ShifterOperand(Register rm, Shift shift, Register rs) : type_(kRegister), rm_(rm),
95 Register GetRegister() const {
128 static bool CanHoldThumb(Register rd, Register rn, Opcode opcode,
134 Register rm_;
135 Register rs_;
197 Address(Register rn, int32_t offset = 0, Mode am = Offset) : rn_(rn), rm_(R0),
202 Address(Register rn, Register rm, Mode am = Offset) : rn_(rn), rm_(rm), offset_(0),
207 Address(Register rn, Register rm, Shift shift, uint32_t count, Mode am = Offset) :
233 Register GetRegister() const {
237 Register GetRegisterOffset() const {
263 Register rn_;
264 Register rm_;
347 extern std::ostream& operator<<(std::ostream& os, const Register& rhs);
363 virtual void and_(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
365 virtual void eor(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
367 virtual void sub(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
368 virtual void subs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
370 virtual void rsb(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
371 virtual void rsbs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
373 virtual void add(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
375 virtual void adds(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
377 virtual void adc(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
379 virtual void sbc(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
381 virtual void rsc(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
383 virtual void tst(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
385 virtual void teq(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
387 virtual void cmp(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
389 virtual void cmn(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
391 virtual void orr(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
392 virtual void orrs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
394 virtual void mov(Register rd, const ShifterOperand& so, Condition cond = AL) = 0;
395 virtual void movs(Register rd, const ShifterOperand& so, Condition cond = AL) = 0;
397 virtual void bic(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
399 virtual void mvn(Register rd, const ShifterOperand& so, Condition cond = AL) = 0;
400 virtual void mvns(Register rd, const ShifterOperand& so, Condition cond = AL) = 0;
403 virtual void clz(Register rd, Register rm, Condition cond = AL) = 0;
404 virtual void movw(Register rd, uint16_t imm16, Condition cond = AL) = 0;
405 virtual void movt(Register rd, uint16_t imm16, Condition cond = AL) = 0;
408 virtual void mul(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
409 virtual void mla(Register rd, Register rn, Register rm, Register ra,
411 virtual void mls(Register rd, Register rn, Register rm, Register ra,
413 virtual void umull(Register rd_lo, Register rd_hi, Register rn, Register rm,
416 virtual void sdiv(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
417 virtual void udiv(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
420 virtual void ldr(Register rd, const Address& ad, Condition cond = AL) = 0;
421 virtual void str(Register rd, const Address& ad, Condition cond = AL) = 0;
423 virtual void ldrb(Register rd, const Address& ad, Condition cond = AL) = 0;
424 virtual void strb(Register rd, const Address& ad, Condition cond = AL) = 0;
426 virtual void ldrh(Register rd, const Address& ad, Condition cond = AL) = 0;
427 virtual void strh(Register rd, const Address& ad, Condition cond = AL) = 0;
429 virtual void ldrsb(Register rd, const Address& ad, Condition cond = AL) = 0;
430 virtual void ldrsh(Register rd, const Address& ad, Condition cond = AL) = 0;
432 virtual void ldrd(Register rd, const Address& ad, Condition cond = AL) = 0;
433 virtual void strd(Register rd, const Address& ad, Condition cond = AL) = 0;
435 virtual void ldm(BlockAddressMode am, Register base,
437 virtual void stm(BlockAddressMode am, Register base,
440 virtual void ldrex(Register rd, Register rn, Condition cond = AL) = 0;
441 virtual void strex(Register rd, Register rt, Register rn, Condition cond = AL) = 0;
456 virtual void cbz(Register rn, Label* target) = 0;
457 virtual void cbnz(Register rn, Label* target) = 0;
460 virtual void vmovsr(SRegister sn, Register rt, Condition cond = AL) = 0;
461 virtual void vmovrs(Register rt, SRegister sn, Condition cond = AL) = 0;
462 virtual void vmovsrr(SRegister sm, Register rt, Register rt2, Condition cond = AL) = 0;
463 virtual void vmovrrs(Register rt, Register rt2, SRegister sm, Condition cond = AL) = 0;
464 virtual void vmovdrr(DRegister dm, Register rt, Register rt2, Condition cond = AL) = 0;
465 virtual void vmovrrd(Register rt, Register rt2, DRegister dm, Condition cond = AL) = 0;
523 virtual void blx(Register rm, Condition cond = AL) = 0;
524 virtual void bx(Register rm, Condition cond = AL) = 0;
532 virtual void AddConstant(Register rd, int32_t value, Condition cond = AL) = 0;
533 virtual void AddConstant(Register rd, Register rn, int32_t value,
535 virtual void AddConstantSetFlags(Register rd, Register rn, int32_t value,
537 virtual void AddConstantWithCarry(Register rd, Register rn, int32_t value,
541 virtual void LoadImmediate(Register rd, int32_t value, Condition cond = AL) = 0;
544 Register scratch, Condition cond = AL) = 0;
547 Register reg,
548 Register base,
552 Register reg,
553 Register base,
557 Register base,
561 Register base,
565 Register base,
569 Register base,
573 virtual void Push(Register rd, Condition cond = AL) = 0;
574 virtual void Pop(Register rd, Condition cond = AL) = 0;
579 virtual void Mov(Register rd, Register rm, Condition cond = AL) = 0;
583 virtual void Lsl(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
585 virtual void Lsr(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
587 virtual void Asr(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
589 virtual void Ror(Register rd, Register rm, uint32_t shift_imm, bool setcc = false,
591 virtual void Rrx(Register rd, Register rm, bool setcc = false,
594 virtual void Lsl(Register rd, Register rm, Register rn, bool setcc = false,
596 virtual void Lsr(Register rd, Register rm, Register rn, bool setcc = false,
598 virtual void Asr(Register rd, Register rm, Register rn, bool setcc = false,
600 virtual void Ror(Register rd, Register rm, Register rn, bool setcc = false,
607 virtual void CompareAndBranchIfZero(Register r, Label* label) = 0;
608 virtual void CompareAndBranchIfNonZero(Register r, Label* label) = 0;
726 static bool IsLowRegister(Register r) {
730 static bool IsHighRegister(Register r) {
736 static int RegisterCompare(const Register* reg1, const Register* reg2) {