Lines Matching refs:Register

130   // Data-processing operands - Register
131 explicit ShifterOperand(Register rm) : type_(kRegister), rm_(rm), rs_(kNoRegister),
140 ShifterOperand(Register rm, Shift shift, uint32_t shift_imm = 0) : type_(kRegister), rm_(rm),
146 ShifterOperand(Register rm, Shift shift, Register rs) : type_(kRegister), rm_(rm),
185 Register GetRegister() const {
189 Register GetSecondRegister() const {
201 Register rm_;
202 Register rs_;
271 Address(Register rn, int32_t offset = 0, Mode am = Offset) : rn_(rn), rm_(R0),
276 Address(Register rn, Register rm, Mode am = Offset) : rn_(rn), rm_(rm), offset_(0),
281 Address(Register rn, Register rm, Shift shift, uint32_t count, Mode am = Offset) :
307 Register GetRegister() const {
311 Register GetRegisterOffset() const {
337 const Register rn_;
338 const Register rm_;
444 virtual void and_(Register rd, Register rn, const ShifterOperand& so,
447 virtual void ands(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
451 virtual void eor(Register rd, Register rn, const ShifterOperand& so,
454 virtual void eors(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
458 virtual void sub(Register rd, Register rn, const ShifterOperand& so,
461 virtual void subs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
465 virtual void rsb(Register rd, Register rn, const ShifterOperand& so,
468 virtual void rsbs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
472 virtual void add(Register rd, Register rn, const ShifterOperand& so,
475 virtual void adds(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
479 virtual void adc(Register rd, Register rn, const ShifterOperand& so,
482 virtual void adcs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
486 virtual void sbc(Register rd, Register rn, const ShifterOperand& so,
489 virtual void sbcs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
493 virtual void rsc(Register rd, Register rn, const ShifterOperand& so,
496 virtual void rscs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
500 virtual void tst(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
502 virtual void teq(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
504 virtual void cmp(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
508 virtual void cmn(Register rn, const ShifterOperand& so, Condition cond = AL) = 0;
510 virtual void orr(Register rd, Register rn, const ShifterOperand& so,
513 virtual void orrs(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
517 virtual void orn(Register rd, Register rn, const ShifterOperand& so,
520 virtual void orns(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
524 virtual void mov(Register rd, const ShifterOperand& so,
527 virtual void movs(Register rd, const ShifterOperand& so, Condition cond = AL) {
531 virtual void bic(Register rd, Register rn, const ShifterOperand& so,
534 virtual void bics(Register rd, Register rn, const ShifterOperand& so, Condition cond = AL) {
538 virtual void mvn(Register rd, const ShifterOperand& so,
541 virtual void mvns(Register rd, const ShifterOperand& so, Condition cond = AL) {
546 virtual void clz(Register rd, Register rm, Condition cond = AL) = 0;
547 virtual void movw(Register rd, uint16_t imm16, Condition cond = AL) = 0;
548 virtual void movt(Register rd, uint16_t imm16, Condition cond = AL) = 0;
549 virtual void rbit(Register rd, Register rm, Condition cond = AL) = 0;
550 virtual void rev(Register rd, Register rm, Condition cond = AL) = 0;
551 virtual void rev16(Register rd, Register rm, Condition cond = AL) = 0;
552 virtual void revsh(Register rd, Register rm, Condition cond = AL) = 0;
555 virtual void mul(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
556 virtual void mla(Register rd, Register rn, Register rm, Register ra,
558 virtual void mls(Register rd, Register rn, Register rm, Register ra,
560 virtual void smull(Register rd_lo, Register rd_hi, Register rn, Register rm,
562 virtual void umull(Register rd_lo, Register rd_hi, Register rn, Register rm,
565 virtual void sdiv(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
566 virtual void udiv(Register rd, Register rn, Register rm, Condition cond = AL) = 0;
569 virtual void sbfx(Register rd, Register rn, uint32_t lsb, uint32_t width,
571 virtual void ubfx(Register rd, Register rn, uint32_t lsb, uint32_t width,
575 virtual void ldr(Register rd, const Address& ad, Condition cond = AL) = 0;
576 virtual void str(Register rd, const Address& ad, Condition cond = AL) = 0;
578 virtual void ldrb(Register rd, const Address& ad, Condition cond = AL) = 0;
579 virtual void strb(Register rd, const Address& ad, Condition cond = AL) = 0;
581 virtual void ldrh(Register rd, const Address& ad, Condition cond = AL) = 0;
582 virtual void strh(Register rd, const Address& ad, Condition cond = AL) = 0;
584 virtual void ldrsb(Register rd, const Address& ad, Condition cond = AL) = 0;
585 virtual void ldrsh(Register rd, const Address& ad, Condition cond = AL) = 0;
587 virtual void ldrd(Register rd, const Address& ad, Condition cond = AL) = 0;
588 virtual void strd(Register rd, const Address& ad, Condition cond = AL) = 0;
590 virtual void ldm(BlockAddressMode am, Register base,
592 virtual void stm(BlockAddressMode am, Register base,
595 virtual void ldrex(Register rd, Register rn, Condition cond = AL) = 0;
596 virtual void strex(Register rd, Register rt, Register rn, Condition cond = AL) = 0;
597 virtual void ldrexd(Register rt, Register rt2, Register rn, Condition cond = AL) = 0;
598 virtual void strexd(Register rd, Register rt, Register rt2, Register rn, Condition cond = AL) = 0;
615 virtual void cbz(Register rn, Label* target) = 0;
616 virtual void cbnz(Register rn, Label* target) = 0;
619 virtual void vmovsr(SRegister sn, Register rt, Condition cond = AL) = 0;
620 virtual void vmovrs(Register rt, SRegister sn, Condition cond = AL) = 0;
621 virtual void vmovsrr(SRegister sm, Register rt, Register rt2, Condition cond = AL) = 0;
622 virtual void vmovrrs(Register rt, Register rt2, SRegister sm, Condition cond = AL) = 0;
623 virtual void vmovdrr(DRegister dm, Register rt, Register rt2, Condition cond = AL) = 0;
624 virtual void vmovrrd(Register rt, Register rt2, DRegister dm, Condition cond = AL) = 0;
682 virtual void blx(Register rm, Condition cond = AL) = 0;
683 virtual void bx(Register rm, Condition cond = AL) = 0;
719 virtual void LoadLiteral(Register rt, Literal* literal) = 0;
720 virtual void LoadLiteral(Register rt, Register rt2, Literal* literal) = 0;
725 virtual void AddConstant(Register rd, Register rn, int32_t value,
727 void AddConstantSetFlags(Register rd, Register rn, int32_t value, Condition cond = AL) {
730 void AddConstant(Register rd, int32_t value, Condition cond = AL, SetCc set_cc = kCcDontCare) {
734 virtual void CmpConstant(Register rn, int32_t value, Condition cond = AL) = 0;
737 virtual void LoadImmediate(Register rd, int32_t value, Condition cond = AL) = 0;
783 Register reg,
784 Register base,
788 Register reg,
789 Register base,
793 Register base,
797 Register base,
801 Register base,
805 Register base,
809 virtual void Push(Register rd, Condition cond = AL) = 0;
810 virtual void Pop(Register rd, Condition cond = AL) = 0;
815 virtual void Mov(Register rd, Register rm, Condition cond = AL) = 0;
819 virtual void Lsl(Register rd, Register rm, uint32_t shift_imm,
822 void Lsls(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL) {
826 virtual void Lsr(Register rd, Register rm, uint32_t shift_imm,
829 void Lsrs(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL) {
833 virtual void Asr(Register rd, Register rm, uint32_t shift_imm,
836 void Asrs(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL) {
840 virtual void Ror(Register rd, Register rm, uint32_t shift_imm,
843 void Rors(Register rd, Register rm, uint32_t shift_imm, Condition cond = AL) {
847 virtual void Rrx(Register rd, Register rm,
850 void Rrxs(Register rd, Register rm, Condition cond = AL) {
854 virtual void Lsl(Register rd, Register rm, Register rn,
857 void Lsls(Register rd, Register rm, Register rn, Condition cond = AL) {
861 virtual void Lsr(Register rd, Register rm, Register rn,
864 void Lsrs(Register rd, Register rm, Register rn, Condition cond = AL) {
868 virtual void Asr(Register rd, Register rm, Register rn,
871 void Asrs(Register rd, Register rm, Register rn, Condition cond = AL) {
875 virtual void Ror(Register rd, Register rm, Register rn,
878 void Rors(Register rd, Register rm, Register rn, Condition cond = AL) {
884 virtual bool ShifterOperandCanHold(Register rd,
885 Register rn,
890 bool ShifterOperandCanHold(Register rd,
891 Register rn,
902 virtual void CompareAndBranchIfZero(Register r, Label* label) = 0;
903 virtual void CompareAndBranchIfNonZero(Register r, Label* label) = 0;
1022 static bool IsLowRegister(Register r) {
1026 static bool IsHighRegister(Register r) {
1035 void PoisonHeapReference(Register reg) {
1040 void UnpoisonHeapReference(Register reg) {
1045 void MaybeUnpoisonHeapReference(Register reg) {
1070 virtual JumpTable* CreateJumpTable(std::vector<Label*>&& labels, Register base_reg) = 0;
1073 virtual void EmitJumpTableDispatch(JumpTable* jump_table, Register displacement_reg) = 0;
1087 static int RegisterCompare(const Register* reg1, const Register* reg2) {