• Home
  • Raw
  • Download

Lines Matching refs:rn

361 inline int16_t Thumb2Assembler::CbxzEncoding16(Register rn, int32_t offset, Condition cond) {  in CbxzEncoding16()  argument
362 DCHECK(!IsHighRegister(rn)); in CbxzEncoding16()
366 return B15 | B13 | B12 | B8 | (cond == NE ? B11 : 0) | static_cast<int32_t>(rn) | in CbxzEncoding16()
371 inline int16_t Thumb2Assembler::CmpRnImm8Encoding16(Register rn, int32_t value) { in CmpRnImm8Encoding16() argument
372 DCHECK(!IsHighRegister(rn)); in CmpRnImm8Encoding16()
374 return B13 | B11 | (rn << 8) | value; in CmpRnImm8Encoding16()
418 inline int32_t Thumb2Assembler::LdrdEncoding32(Register rt, Register rt2, Register rn, int32_t offs… in LdrdEncoding32() argument
423 (static_cast<int32_t>(rn) << 16) | (static_cast<int32_t>(rt) << 12) | in LdrdEncoding32()
427 inline int32_t Thumb2Assembler::VldrsEncoding32(SRegister sd, Register rn, int32_t offset) { in VldrsEncoding32() argument
432 (static_cast<int32_t>(rn) << 16) | in VldrsEncoding32()
438 inline int32_t Thumb2Assembler::VldrdEncoding32(DRegister dd, Register rn, int32_t offset) { in VldrdEncoding32() argument
443 (rn << 16) | in VldrdEncoding32()
449 inline int16_t Thumb2Assembler::LdrRtRnImm5Encoding16(Register rt, Register rn, int32_t offset) { in LdrRtRnImm5Encoding16() argument
451 DCHECK(!IsHighRegister(rn)); in LdrRtRnImm5Encoding16()
455 (static_cast<int32_t>(rn) << 3) | static_cast<int32_t>(rt) | in LdrRtRnImm5Encoding16()
473 inline int32_t Thumb2Assembler::LdrRtRnImm12Encoding(Register rt, Register rn, int32_t offset) { in LdrRtRnImm12Encoding() argument
475 return B31 | B30 | B29 | B28 | B27 | B23 | B22 | B20 | (rn << 16) | (rt << 12) | offset; in LdrRtRnImm12Encoding()
514 Register rn ATTRIBUTE_UNUSED, in ShifterOperandCanHold()
542 void Thumb2Assembler::and_(Register rd, Register rn, const ShifterOperand& so, in and_() argument
544 EmitDataProcessing(cond, AND, set_cc, rn, rd, so); in and_()
548 void Thumb2Assembler::eor(Register rd, Register rn, const ShifterOperand& so, in eor() argument
550 EmitDataProcessing(cond, EOR, set_cc, rn, rd, so); in eor()
554 void Thumb2Assembler::sub(Register rd, Register rn, const ShifterOperand& so, in sub() argument
556 EmitDataProcessing(cond, SUB, set_cc, rn, rd, so); in sub()
560 void Thumb2Assembler::rsb(Register rd, Register rn, const ShifterOperand& so, in rsb() argument
562 EmitDataProcessing(cond, RSB, set_cc, rn, rd, so); in rsb()
566 void Thumb2Assembler::add(Register rd, Register rn, const ShifterOperand& so, in add() argument
568 EmitDataProcessing(cond, ADD, set_cc, rn, rd, so); in add()
572 void Thumb2Assembler::adc(Register rd, Register rn, const ShifterOperand& so, in adc() argument
574 EmitDataProcessing(cond, ADC, set_cc, rn, rd, so); in adc()
578 void Thumb2Assembler::sbc(Register rd, Register rn, const ShifterOperand& so, in sbc() argument
580 EmitDataProcessing(cond, SBC, set_cc, rn, rd, so); in sbc()
584 void Thumb2Assembler::rsc(Register rd, Register rn, const ShifterOperand& so, in rsc() argument
586 EmitDataProcessing(cond, RSC, set_cc, rn, rd, so); in rsc()
590 void Thumb2Assembler::tst(Register rn, const ShifterOperand& so, Condition cond) { in tst() argument
591 CHECK_NE(rn, PC); // Reserve tst pc instruction for exception handler marker. in tst()
592 EmitDataProcessing(cond, TST, kCcSet, rn, R0, so); in tst()
596 void Thumb2Assembler::teq(Register rn, const ShifterOperand& so, Condition cond) { in teq() argument
597 CHECK_NE(rn, PC); // Reserve teq pc instruction for exception handler marker. in teq()
598 EmitDataProcessing(cond, TEQ, kCcSet, rn, R0, so); in teq()
602 void Thumb2Assembler::cmp(Register rn, const ShifterOperand& so, Condition cond) { in cmp() argument
603 EmitDataProcessing(cond, CMP, kCcSet, rn, R0, so); in cmp()
607 void Thumb2Assembler::cmn(Register rn, const ShifterOperand& so, Condition cond) { in cmn() argument
608 EmitDataProcessing(cond, CMN, kCcSet, rn, R0, so); in cmn()
612 void Thumb2Assembler::orr(Register rd, Register rn, const ShifterOperand& so, in orr() argument
614 EmitDataProcessing(cond, ORR, set_cc, rn, rd, so); in orr()
618 void Thumb2Assembler::orn(Register rd, Register rn, const ShifterOperand& so, in orn() argument
620 EmitDataProcessing(cond, ORN, set_cc, rn, rd, so); in orn()
630 void Thumb2Assembler::bic(Register rd, Register rn, const ShifterOperand& so, in bic() argument
632 EmitDataProcessing(cond, BIC, set_cc, rn, rd, so); in bic()
642 void Thumb2Assembler::mul(Register rd, Register rn, Register rm, Condition cond) { in mul() argument
645 if (rd == rm && !IsHighRegister(rd) && !IsHighRegister(rn) && !force_32bit_) { in mul()
648 rn << 3 | rd; in mul()
659 static_cast<uint32_t>(rn) << 16 | in mul()
667 void Thumb2Assembler::mla(Register rd, Register rn, Register rm, Register ra, in mla() argument
678 static_cast<uint32_t>(rn) << 16 | in mla()
685 void Thumb2Assembler::mls(Register rd, Register rn, Register rm, Register ra, in mls() argument
696 static_cast<uint32_t>(rn) << 16 | in mls()
703 void Thumb2Assembler::smull(Register rd_lo, Register rd_hi, Register rn, in smull() argument
714 static_cast<uint32_t>(rn) << 16 | in smull()
721 void Thumb2Assembler::umull(Register rd_lo, Register rd_hi, Register rn, in umull() argument
732 static_cast<uint32_t>(rn) << 16 | in umull()
739 void Thumb2Assembler::sdiv(Register rd, Register rn, Register rm, Condition cond) { in sdiv() argument
749 static_cast<uint32_t>(rn) << 16 | in sdiv()
756 void Thumb2Assembler::udiv(Register rd, Register rn, Register rm, Condition cond) { in udiv() argument
766 static_cast<uint32_t>(rn) << 16 | in udiv()
773 void Thumb2Assembler::sbfx(Register rd, Register rn, uint32_t lsb, uint32_t width, Condition cond) { in sbfx() argument
784 static_cast<uint32_t>(rn) << 16 | in sbfx()
794 void Thumb2Assembler::ubfx(Register rd, Register rn, uint32_t lsb, uint32_t width, Condition cond) { in ubfx() argument
805 static_cast<uint32_t>(rn) << 16 | in ubfx()
1178 Register rn, in Is32BitDataProcessing() argument
1186 if ((opcode == ADD || opcode == SUB) && rn == SP && so.IsImmediate() && set_cc != kCcSet) { in Is32BitDataProcessing()
1202 ((opcode == ADD) && (rn == rd) && set_cc != kCcSet); in Is32BitDataProcessing()
1204 if (IsHighRegister(rd) || IsHighRegister(rn)) { in Is32BitDataProcessing()
1243 if (so.IsRegister() && rd != rn) { in Is32BitDataProcessing()
1254 } else if (rn_is_valid && rn != rd) { in Is32BitDataProcessing()
1341 Register rn, in Emit32BitDataProcessing() argument
1359 case MOV: thumb_opcode = 2U /* 0b0010 */; rn = PC; break; in Emit32BitDataProcessing()
1361 case MVN: thumb_opcode = 3U /* 0b0011 */; rn = PC; break; in Emit32BitDataProcessing()
1393 rn << 16 | in Emit32BitDataProcessing()
1408 rn << 16 | in Emit32BitDataProcessing()
1417 rn << 16 | in Emit32BitDataProcessing()
1428 Register rn, in Emit16BitDataProcessing() argument
1432 Emit16BitAddSub(cond, opcode, set_cc, rn, rd, so); in Emit16BitDataProcessing()
1454 rn = so.GetRegister(); in Emit16BitDataProcessing()
1496 if (rn == rd) { in Emit16BitDataProcessing()
1497 rn = so.GetRegister(); in Emit16BitDataProcessing()
1506 rd = rn; in Emit16BitDataProcessing()
1507 rn = so.GetRegister(); in Emit16BitDataProcessing()
1514 CHECK_EQ(rn, 0); in Emit16BitDataProcessing()
1515 rn = so.GetRegister(); in Emit16BitDataProcessing()
1521 CHECK_EQ(rn, 0); in Emit16BitDataProcessing()
1522 rn = so.GetRegister(); in Emit16BitDataProcessing()
1549 } else if (IsHighRegister(rd) || IsHighRegister(rn)) { in Emit16BitDataProcessing()
1576 rn = so.GetRegister(); in Emit16BitDataProcessing()
1585 DCHECK(!IsHighRegister(rn)); in Emit16BitDataProcessing()
1608 rn << rn_shift | in Emit16BitDataProcessing()
1619 Register rn, in Emit16BitAddSub() argument
1646 if (rn == rd && set_cc != kCcSet) { in Emit16BitAddSub()
1652 rn = static_cast<Register>(static_cast<uint32_t>(rm) | in Emit16BitAddSub()
1658 DCHECK(!IsHighRegister(rn)); in Emit16BitAddSub()
1671 if (rd == SP && rn == SP) { in Emit16BitAddSub()
1680 rn = R0; in Emit16BitAddSub()
1685 } else if (rd != SP && rn == SP) { in Emit16BitAddSub()
1694 rn = R0; in Emit16BitAddSub()
1698 } else if (rn != rd) { in Emit16BitAddSub()
1720 DCHECK(!IsHighRegister(rn)); in Emit16BitAddSub()
1731 if (rd == SP && rn == SP) { in Emit16BitAddSub()
1740 rn = R0; in Emit16BitAddSub()
1745 } else if (rn != rd) { in Emit16BitAddSub()
1769 rn << rn_shift | in Emit16BitAddSub()
1779 Register rn, in EmitDataProcessing() argument
1785 if (Is32BitDataProcessing(cond, opcode, set_cc, rn, rd, so)) { in EmitDataProcessing()
1786 Emit32BitDataProcessing(cond, opcode, set_cc, rn, rd, so); in EmitDataProcessing()
1788 Emit16BitDataProcessing(cond, opcode, set_cc, rn, rd, so); in EmitDataProcessing()
1838 Register rn, in EmitShift() argument
1845 if (IsHighRegister(rd) || IsHighRegister(rm) || IsHighRegister(rn) || rd != rn || in EmitShift()
1864 encoding |= static_cast<int16_t>(rn) << 16 | static_cast<int16_t>(rm) | in EmitShift()
2302 uint16_t Thumb2Assembler::EmitCompareAndBranch(Register rn, uint16_t prev, bool n) { in EmitCompareAndBranch() argument
2303 CHECK(IsLowRegister(rn)); in EmitCompareAndBranch()
2308 return AddFixup(Fixup::CompareAndBranch(location, rn, n ? NE : EQ)); in EmitCompareAndBranch()
2328 Register rn = ad.GetRegister(); in EmitLoadStore() local
2329 if (IsHighRegister(rn) && rn != SP && rn != PC) { in EmitLoadStore()
2342 if (rn == SP && offset >= (1 << 10)) { in EmitLoadStore()
2381 if (rn == SP) { in EmitLoadStore()
2416 encoding |= rn << 3 | offset << 6; in EmitLoadStore()
2725 void Thumb2Assembler::ldrex(Register rt, Register rn, uint16_t imm, Condition cond) { in ldrex() argument
2726 CHECK_NE(rn, kNoRegister); in ldrex()
2732 static_cast<uint32_t>(rn) << 16 | in ldrex()
2740 void Thumb2Assembler::ldrex(Register rt, Register rn, Condition cond) { in ldrex() argument
2741 ldrex(rt, rn, 0, cond); in ldrex()
2747 Register rn, in strex() argument
2750 CHECK_NE(rn, kNoRegister); in strex()
2757 static_cast<uint32_t>(rn) << 16 | in strex()
2765 void Thumb2Assembler::ldrexd(Register rt, Register rt2, Register rn, Condition cond) { in ldrexd() argument
2766 CHECK_NE(rn, kNoRegister); in ldrexd()
2773 static_cast<uint32_t>(rn) << 16 | in ldrexd()
2783 Register rn, in strex() argument
2785 strex(rd, rt, rn, 0, cond); in strex()
2789 void Thumb2Assembler::strexd(Register rd, Register rt, Register rt2, Register rn, Condition cond) { in strexd() argument
2791 CHECK_NE(rn, kNoRegister); in strexd()
2800 static_cast<uint32_t>(rn) << 16 | in strexd()
3199 void Thumb2Assembler::cbz(Register rn, Label* label) { in cbz() argument
3204 } else if (IsHighRegister(rn)) { in cbz()
3208 uint16_t branchid = EmitCompareAndBranch(rn, static_cast<uint16_t>(label->position_), false); in cbz()
3214 void Thumb2Assembler::cbnz(Register rn, Label* label) { in cbnz() argument
3219 } else if (IsHighRegister(rn)) { in cbnz()
3223 uint16_t branchid = EmitCompareAndBranch(rn, static_cast<uint16_t>(label->position_), true); in cbnz()
3317 void Thumb2Assembler::Lsl(Register rd, Register rm, Register rn, in Lsl() argument
3320 EmitShift(rd, rm, LSL, rn, cond, set_cc); in Lsl()
3324 void Thumb2Assembler::Lsr(Register rd, Register rm, Register rn, in Lsr() argument
3327 EmitShift(rd, rm, LSR, rn, cond, set_cc); in Lsr()
3331 void Thumb2Assembler::Asr(Register rd, Register rm, Register rn, in Asr() argument
3334 EmitShift(rd, rm, ASR, rn, cond, set_cc); in Asr()
3338 void Thumb2Assembler::Ror(Register rd, Register rm, Register rn, in Ror() argument
3341 EmitShift(rd, rm, ROR, rn, cond, set_cc); in Ror()
3492 void Thumb2Assembler::AddConstant(Register rd, Register rn, int32_t value, in AddConstant() argument
3495 if (rd != rn) { in AddConstant()
3496 mov(rd, ShifterOperand(rn), cond); in AddConstant()
3504 if (ShifterOperandCanHold(rd, rn, ADD, value, set_cc, &shifter_op)) { in AddConstant()
3505 add(rd, rn, shifter_op, cond, set_cc); in AddConstant()
3506 } else if (ShifterOperandCanHold(rd, rn, SUB, -value, set_cc, &shifter_op)) { in AddConstant()
3507 sub(rd, rn, shifter_op, cond, set_cc); in AddConstant()
3509 CHECK(rn != IP); in AddConstant()
3511 Register temp = (rd != rn) ? rd : IP; in AddConstant()
3514 add(rd, rn, ShifterOperand(temp), cond, set_cc); in AddConstant()
3517 sub(rd, rn, ShifterOperand(temp), cond, set_cc); in AddConstant()
3520 sub(rd, rn, ShifterOperand(temp), cond, set_cc); in AddConstant()
3527 add(rd, rn, ShifterOperand(temp), cond, set_cc); in AddConstant()
3532 void Thumb2Assembler::CmpConstant(Register rn, int32_t value, Condition cond) { in CmpConstant() argument
3536 if (ShifterOperandCanHold(kNoRegister, rn, CMP, value, kCcSet, &shifter_op)) { in CmpConstant()
3537 cmp(rn, shifter_op, cond); in CmpConstant()
3538 } else if (ShifterOperandCanHold(kNoRegister, rn, CMN, -value, kCcSet, &shifter_op)) { in CmpConstant()
3539 cmn(rn, shifter_op, cond); in CmpConstant()
3541 CHECK(rn != IP); in CmpConstant()
3544 cmp(rn, ShifterOperand(IP), cond); in CmpConstant()
3547 cmn(rn, ShifterOperand(IP), cond); in CmpConstant()
3550 cmn(rn, ShifterOperand(IP), cond); in CmpConstant()
3557 cmp(rn, ShifterOperand(IP), cond); in CmpConstant()