Lines Matching refs:rD
7842 void mk_neon_elem_load_to_one_lane( UInt rD, UInt inc, UInt index, in mk_neon_elem_load_to_one_lane() argument
7848 putDRegI64(rD, triop(Iop_SetElem8x8, getDRegI64(rD), mkU8(index), in mk_neon_elem_load_to_one_lane()
7852 putDRegI64(rD, triop(Iop_SetElem16x4, getDRegI64(rD), mkU8(index), in mk_neon_elem_load_to_one_lane()
7856 putDRegI64(rD, triop(Iop_SetElem32x2, getDRegI64(rD), mkU8(index), in mk_neon_elem_load_to_one_lane()
7865 putDRegI64(rD + i * inc, in mk_neon_elem_load_to_one_lane()
7867 getDRegI64(rD + i * inc), in mk_neon_elem_load_to_one_lane()
7875 putDRegI64(rD + i * inc, in mk_neon_elem_load_to_one_lane()
7877 getDRegI64(rD + i * inc), in mk_neon_elem_load_to_one_lane()
7885 putDRegI64(rD + i * inc, in mk_neon_elem_load_to_one_lane()
7887 getDRegI64(rD + i * inc), in mk_neon_elem_load_to_one_lane()
7903 void mk_neon_elem_store_from_one_lane( UInt rD, UInt inc, UInt index, in mk_neon_elem_store_from_one_lane() argument
7910 binop(Iop_GetElem8x8, getDRegI64(rD), mkU8(index))); in mk_neon_elem_store_from_one_lane()
7914 binop(Iop_GetElem16x4, getDRegI64(rD), mkU8(index))); in mk_neon_elem_store_from_one_lane()
7918 binop(Iop_GetElem32x2, getDRegI64(rD), mkU8(index))); in mk_neon_elem_store_from_one_lane()
7927 binop(Iop_GetElem8x8, getDRegI64(rD + i * inc), in mk_neon_elem_store_from_one_lane()
7932 binop(Iop_GetElem16x4, getDRegI64(rD + i * inc), in mk_neon_elem_store_from_one_lane()
7937 binop(Iop_GetElem32x2, getDRegI64(rD + i * inc), in mk_neon_elem_store_from_one_lane()
7955 UInt rD = (INSN(22,22) << 4) | INSN(15,12); in dis_neon_load_or_store() local
8009 mk_neon_elem_load_to_one_lane(rD, inc, i, N, size, addr); in dis_neon_load_or_store()
8011 mk_neon_elem_store_from_one_lane(rD, inc, i, N, size, addr); in dis_neon_load_or_store()
8016 DIP("d%u[%u]", rD + j * inc, i); in dis_neon_load_or_store()
8059 putDRegI64(rD + r, unop(Iop_Dup8x8, in dis_neon_load_or_store()
8064 putDRegI64(rD + r, unop(Iop_Dup16x4, in dis_neon_load_or_store()
8069 putDRegI64(rD + r, unop(Iop_Dup32x2, in dis_neon_load_or_store()
8079 putDRegI64(rD + r + i * inc, in dis_neon_load_or_store()
8087 putDRegI64(rD + r + i * inc, in dis_neon_load_or_store()
8095 putDRegI64(rD + r + i * inc, in dis_neon_load_or_store()
8112 DIP("d%u[]", rD + r + i * inc); in dis_neon_load_or_store()
8193 mk_neon_elem_load_to_one_lane(rD + r, inc, i, N, size, addr); in dis_neon_load_or_store()
8195 mk_neon_elem_store_from_one_lane(rD + r, inc, i, N, size, addr); in dis_neon_load_or_store()
8225 DIP("d%u-d%u", rD, rD + regs * (N + 1) - 1); in dis_neon_load_or_store()
8231 DIP("d%u", rD + r + i * inc); in dis_neon_load_or_store()
10223 UInt rD = 99, rN = 99, rM = 99, rA = 99; in decode_V6MEDIA_instruction() local
10230 rD = INSNT1(11,8); in decode_V6MEDIA_instruction()
10232 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM) && rA != 13) in decode_V6MEDIA_instruction()
10238 rD = INSNA(19,16); in decode_V6MEDIA_instruction()
10242 if (rD != 15 && rN != 15 && rM != 15 /* but rA can be 15 */) in decode_V6MEDIA_instruction()
10257 putIRegT( rD, res, condT ); in decode_V6MEDIA_instruction()
10259 putIRegA( rD, res, condT, Ijk_Boring ); in decode_V6MEDIA_instruction()
10263 nCC(conq), rD, rN, rM ); in decode_V6MEDIA_instruction()
10266 nCC(conq), rD, rN, rM, rA ); in decode_V6MEDIA_instruction()
11211 UInt rD = INSN(15,12); in decode_CP10_CP11_instruction() local
11214 if (rD == 15) { in decode_CP10_CP11_instruction()
11228 putIRegT(rD, e, condT); in decode_CP10_CP11_instruction()
11230 putIRegA(rD, e, condT, Ijk_Boring); in decode_CP10_CP11_instruction()
11231 DIP("fmrx%s r%u, fpscr\n", nCC(conq), rD); in decode_CP10_CP11_instruction()
11241 UInt rD = INSN(15,12); in decode_CP10_CP11_instruction() local
11245 isT ? getIRegT(rD) : getIRegA(rD), condT); in decode_CP10_CP11_instruction()
11246 DIP("fmxr%s fpscr, r%u\n", nCC(conq), rD); in decode_CP10_CP11_instruction()
11256 UInt rD = INSN(15,12); /* lo32 */ in decode_CP10_CP11_instruction() local
11258 if (rD == 15 || rN == 15 || (isT && (rD == 13 || rN == 13))) { in decode_CP10_CP11_instruction()
11265 isT ? getIRegT(rD) : getIRegA(rD))), in decode_CP10_CP11_instruction()
11267 DIP("vmov%s d%u, r%u, r%u\n", nCC(conq), dM, rD, rN); in decode_CP10_CP11_instruction()
11276 UInt rD = INSN(15,12); /* lo32 */ in decode_CP10_CP11_instruction() local
11278 if (rD == 15 || rN == 15 || (isT && (rD == 13 || rN == 13)) in decode_CP10_CP11_instruction()
11279 || rD == rN) { in decode_CP10_CP11_instruction()
11288 putIRegT(rD, lo32, condT); in decode_CP10_CP11_instruction()
11291 putIRegA(rD, lo32, condT, Ijk_Boring); in decode_CP10_CP11_instruction()
11293 DIP("vmov%s r%u, r%u, d%u\n", nCC(conq), rD, rN, dM); in decode_CP10_CP11_instruction()
11346 UInt rD = (INSN(7,7) << 4) | INSN(19,16); in decode_CP10_CP11_instruction() local
11355 putDRegI64(rD, triop(Iop_SetElem8x8, in decode_CP10_CP11_instruction()
11356 getDRegI64(rD), in decode_CP10_CP11_instruction()
11361 DIP("vmov%s.8 d%u[%u], r%u\n", nCC(conq), rD, index, rT); in decode_CP10_CP11_instruction()
11366 putDRegI64(rD, triop(Iop_SetElem16x4, in decode_CP10_CP11_instruction()
11367 getDRegI64(rD), in decode_CP10_CP11_instruction()
11372 DIP("vmov%s.16 d%u[%u], r%u\n", nCC(conq), rD, index, rT); in decode_CP10_CP11_instruction()
11377 putDRegI64(rD, triop(Iop_SetElem32x2, in decode_CP10_CP11_instruction()
11378 getDRegI64(rD), in decode_CP10_CP11_instruction()
11382 DIP("vmov%s.32 d%u[%u], r%u\n", nCC(conq), rD, index, rT); in decode_CP10_CP11_instruction()
11448 UInt rD = (INSN(15,12) << 1) | INSN(22,22); in decode_CP10_CP11_instruction() local
11455 putFReg(rD, unop(Iop_ReinterpI32asF32, mkU32(imm)), condT); in decode_CP10_CP11_instruction()
11456 DIP("fconsts%s s%u #%u", nCC(conq), rD, imm8); in decode_CP10_CP11_instruction()
11464 UInt rD = INSN(15,12) | (INSN(22,22) << 4); in decode_CP10_CP11_instruction() local
11471 putDReg(rD, unop(Iop_ReinterpI64asF64, mkU64(imm)), condT); in decode_CP10_CP11_instruction()
11472 DIP("fconstd%s d%u #%u", nCC(conq), rD, imm8); in decode_CP10_CP11_instruction()
11481 UInt rD = (INSN(7,7) << 4) | INSN(19,16); in decode_CP10_CP11_instruction() local
11485 if (rT == 15 || (isT && rT == 13) || size == 3 || (Q && (rD & 1))) { in decode_CP10_CP11_instruction()
11490 rD >>= 1; in decode_CP10_CP11_instruction()
11493 putQReg(rD, unop(Iop_Dup32x4, e), condT); in decode_CP10_CP11_instruction()
11496 putQReg(rD, unop(Iop_Dup16x8, unop(Iop_32to16, e)), in decode_CP10_CP11_instruction()
11500 putQReg(rD, unop(Iop_Dup8x16, unop(Iop_32to8, e)), in decode_CP10_CP11_instruction()
11506 DIP("vdup.%u q%u, r%u\n", 32 / (1<<size), rD, rT); in decode_CP10_CP11_instruction()
11510 putDRegI64(rD, unop(Iop_Dup32x2, e), condT); in decode_CP10_CP11_instruction()
11513 putDRegI64(rD, unop(Iop_Dup16x4, unop(Iop_32to16, e)), in decode_CP10_CP11_instruction()
11517 putDRegI64(rD, unop(Iop_Dup8x8, unop(Iop_32to8, e)), in decode_CP10_CP11_instruction()
11523 DIP("vdup.%u d%u, r%u\n", 32 / (1<<size), rD, rT); in decode_CP10_CP11_instruction()
11961 UInt rD = INSN(15,12); in decode_CP10_CP11_instruction() local
11965 if (rD == 15) { in decode_CP10_CP11_instruction()
11975 putIRegT(rD, res, condT); in decode_CP10_CP11_instruction()
11977 putIRegA(rD, res, condT, Ijk_Boring); in decode_CP10_CP11_instruction()
11978 DIP("fmrs%s r%u, s%u\n", nCC(conq), rD, fN); in decode_CP10_CP11_instruction()
11981 isT ? getIRegT(rD) : getIRegA(rD)), in decode_CP10_CP11_instruction()
11983 DIP("fmsr%s s%u, r%u\n", nCC(conq), fN, rD); in decode_CP10_CP11_instruction()
12732 UInt rD = (insn >> 12) & 0xF; /* 15:12 */ in disInstr_ARM_WRK() local
12803 putIRegA( rD, mkexpr(res), condT, Ijk_Boring ); in disInstr_ARM_WRK()
12834 name, nCC(INSN_COND), bitS ? "s" : "", rD, rN, dis_buf ); in disInstr_ARM_WRK()
12867 putIRegA( rD, mkexpr(res), condT, jk ); in disInstr_ARM_WRK()
12875 nCC(INSN_COND), bitS ? "s" : "", rD, dis_buf ); in disInstr_ARM_WRK()
12883 if (rD != 0) in disInstr_ARM_WRK()
12909 if (rD != 0) in disInstr_ARM_WRK()
12982 putIRegA( rD, mkexpr(res), condT, Ijk_Boring ); in disInstr_ARM_WRK()
13008 name, nCC(INSN_COND), bitS ? "s" : "", rD, rN, dis_buf ); in disInstr_ARM_WRK()
13067 UInt rD = (insn >> 12) & 0xF; /* 15:12 */ in disInstr_ARM_WRK() local
13087 if (bL == 1 && rN == rD) goto after_load_store_ubyte_or_word; in disInstr_ARM_WRK()
13093 if (bL == 1 && rN == rD) goto after_load_store_ubyte_or_word; in disInstr_ARM_WRK()
13148 assign(rDt, getIRegA(rD)); in disInstr_ARM_WRK()
13181 putIRegA( rD, loadLE(Ity_I32, mkexpr(taT)), in disInstr_ARM_WRK()
13185 putIRegA( rD, unop(Iop_8Uto32, loadLE(Ity_I8, mkexpr(taT))), in disInstr_ARM_WRK()
13194 vassert(rD != rN); /* since we just wrote rD */ in disInstr_ARM_WRK()
13203 bB == 0 ? "" : "b", nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13207 bB == 0 ? "" : "b", nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13211 bB == 0 ? "" : "b", nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13289 UInt rD = (insn >> 12) & 0xF; /* 15:12 */ in disInstr_ARM_WRK() local
13320 if (bL == 1 && rN == rD) goto after_load_store_sbyte_or_hword; in disInstr_ARM_WRK()
13326 if (bL == 1 && rN == rD) goto after_load_store_sbyte_or_hword; in disInstr_ARM_WRK()
13376 storeLE( mkexpr(taT), unop(Iop_32to16, getIRegA(rD)) ); in disInstr_ARM_WRK()
13380 putIRegA( rD, unop(Iop_16Uto32, loadLE(Ity_I16, mkexpr(taT))), in disInstr_ARM_WRK()
13385 putIRegA( rD, unop(Iop_16Sto32, loadLE(Ity_I16, mkexpr(taT))), in disInstr_ARM_WRK()
13390 putIRegA( rD, unop(Iop_8Sto32, loadLE(Ity_I8, mkexpr(taT))), in disInstr_ARM_WRK()
13402 vassert(rD != rN); /* since we just wrote rD */ in disInstr_ARM_WRK()
13408 case 1: DIP("%s%s r%u, %s\n", name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13411 name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13414 name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
13631 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
13642 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
13643 DIP("clz%s r%u, r%u\n", nCC(INSN_COND), rD, rM); in disInstr_ARM_WRK()
13653 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
13656 if (rD == 15 || rM == 15 || rS == 15) { in disInstr_ARM_WRK()
13674 putIRegA( rD, mkexpr(res), condT, Ijk_Boring ); in disInstr_ARM_WRK()
13683 bitS ? 's' : ' ', nCC(INSN_COND), rD, rM, rS); in disInstr_ARM_WRK()
13694 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
13697 if (rD == 15 || rM == 15 || rN == 15) { in disInstr_ARM_WRK()
13706 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
13707 DIP("sdiv r%u, r%u, r%u\n", rD, rN, rM); in disInstr_ARM_WRK()
13716 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
13719 if (rD == 15 || rM == 15 || rN == 15) { in disInstr_ARM_WRK()
13728 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
13729 DIP("udiv r%u, r%u, r%u\n", rD, rN, rM); in disInstr_ARM_WRK()
13739 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
13748 if (rD == 15 || rM == 15 || rS == 15 || rN == 15) { in disInstr_ARM_WRK()
13771 putIRegA( rD, mkexpr(res), condT, Ijk_Boring ); in disInstr_ARM_WRK()
13781 nCC(INSN_COND), rD, rM, rS, rN); in disInstr_ARM_WRK()
13931 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
13932 if (rD != 15) { in disInstr_ARM_WRK()
13934 putIRegA( rD, mkexpr(apsr), condT, Ijk_Boring ); in disInstr_ARM_WRK()
13935 DIP("mrs%s r%u, cpsr\n", nCC(INSN_COND), rD); in disInstr_ARM_WRK()
13966 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
13974 if (rD == 15 || rN == 15 || rM == 15 || rN == rM || rN == rD) { in disInstr_ARM_WRK()
14004 putIRegA(rD, isB ? unop(Iop_8Uto32, mkexpr(tOld)) : mkexpr(tOld), in disInstr_ARM_WRK()
14007 isB ? "b" : "", nCC(INSN_COND), rD, rM, rN); in disInstr_ARM_WRK()
14077 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14090 if (rD == 15 || rN == 15 || rT == 15 in disInstr_ARM_WRK()
14091 || rD == rN || rD == rT) in disInstr_ARM_WRK()
14095 if (rD == 15 || (rT & 1) == 1 || rT == 14 || rN == 15 in disInstr_ARM_WRK()
14096 || rD == rN || rD == rT || rD == rT+1) in disInstr_ARM_WRK()
14125 putIRegA(rD, mkexpr(resSC32), in disInstr_ARM_WRK()
14129 nm, nCC(INSN_COND), rD, rT, rT+1, rN); in disInstr_ARM_WRK()
14132 nm, nCC(INSN_COND), rD, rT, rN); in disInstr_ARM_WRK()
14142 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14145 if (rD == 15) { in disInstr_ARM_WRK()
14149 putIRegA(rD, in disInstr_ARM_WRK()
14151 binop(Iop_And32, getIRegA(rD), mkU32(0xFFFF)), in disInstr_ARM_WRK()
14154 DIP("movt%s r%u, #0x%04x\n", nCC(INSN_COND), rD, imm16); in disInstr_ARM_WRK()
14157 putIRegA(rD, mkU32(imm16), condT, Ijk_Boring); in disInstr_ARM_WRK()
14158 DIP("movw%s r%u, #0x%04x\n", nCC(INSN_COND), rD, imm16); in disInstr_ARM_WRK()
14176 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14227 putIRegA(rD, mkexpr(dstT), condT, Ijk_Boring); in disInstr_ARM_WRK()
14228 DIP("%s%s r%u, r%u, ROR #%u\n", nm, nCC(INSN_COND), rD, rM, rot); in disInstr_ARM_WRK()
14237 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14241 if (rD == 15 || msb < lsb) { in disInstr_ARM_WRK()
14253 assign(olddst, getIRegA(rD)); in disInstr_ARM_WRK()
14264 putIRegA(rD, mkexpr(newdst), condT, Ijk_Boring); in disInstr_ARM_WRK()
14268 nCC(INSN_COND), rD, lsb, msb-lsb+1); in disInstr_ARM_WRK()
14271 nCC(INSN_COND), rD, rN, lsb, msb-lsb+1); in disInstr_ARM_WRK()
14281 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14287 if (rD == 15 || rN == 15 || msb >= 32) { in disInstr_ARM_WRK()
14305 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
14309 nCC(INSN_COND), rD, rN, lsb, wm1 + 1); in disInstr_ARM_WRK()
14365 UInt rD = (insn >> 12) & 0xF; /* 15:12 */ in disInstr_ARM_WRK() local
14372 if ((rD & 1) != 0) in disInstr_ARM_WRK()
14390 if (bS == 0 && (rN == rD || rN == rD+1)) in disInstr_ARM_WRK()
14397 if (bS == 0 && (rN == rD || rN == rD+1)) in disInstr_ARM_WRK()
14450 storeLE( binop(Iop_Add32, mkexpr(taT), mkU32(0)), getIRegA(rD+0) ); in disInstr_ARM_WRK()
14451 storeLE( binop(Iop_Add32, mkexpr(taT), mkU32(4)), getIRegA(rD+1) ); in disInstr_ARM_WRK()
14454 putIRegA( rD+0, in disInstr_ARM_WRK()
14457 putIRegA( rD+1, in disInstr_ARM_WRK()
14468 vassert(rD+0 != rN); /* since we just wrote rD+0 */ in disInstr_ARM_WRK()
14469 vassert(rD+1 != rN); /* since we just wrote rD+1 */ in disInstr_ARM_WRK()
14476 case 1: DIP("%s%s r%u, %s\n", name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
14479 name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
14482 name, nCC(INSN_COND), rD, dis_buf); in disInstr_ARM_WRK()
14497 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14501 if (rN == 15/*it's {S,U}XTB*/ || rD == 15 || rM == 15) { in disInstr_ARM_WRK()
14514 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
14516 isU ? 'u' : 's', nCC(INSN_COND), rD, rN, rM, rot); in disInstr_ARM_WRK()
14527 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14531 if (rN == 15/*it's {S,U}XTH*/ || rD == 15 || rM == 15) { in disInstr_ARM_WRK()
14544 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
14547 isU ? 'u' : 's', nCC(INSN_COND), rD, rN, rM, rot); in disInstr_ARM_WRK()
14558 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14559 if (rM != 15 && rD != 15) { in disInstr_ARM_WRK()
14563 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
14565 nCC(INSN_COND), rD, rM); in disInstr_ARM_WRK()
14572 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14574 if (rD != 15 && rM != 15) { in disInstr_ARM_WRK()
14578 putIRegA(rD, mkexpr(res), condT, Ijk_Boring); in disInstr_ARM_WRK()
14579 DIP("rbit r%u, r%u\n", rD, rM); in disInstr_ARM_WRK()
14589 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
14592 if (rD != 15 && rM != 15 && rN != 15) { in disInstr_ARM_WRK()
14598 putIRegA(rD, res, condT, Ijk_Boring); in disInstr_ARM_WRK()
14600 nCC(INSN_COND), bitR ? "r" : "", rD, rN, rM); in disInstr_ARM_WRK()
14610 UInt rD = INSN(19,16); in disInstr_ARM_WRK() local
14614 if (rD != 15 && rM != 15 && rN != 15) { in disInstr_ARM_WRK()
14622 putIRegA(rD, res, condT, Ijk_Boring); in disInstr_ARM_WRK()
14624 nCC(INSN_COND), bitR ? "r" : "", rD, rN, rM, rA); in disInstr_ARM_WRK()
14647 UInt rD = INSN(15,12); in disInstr_ARM_WRK() local
14648 if (rD <= 14) { in disInstr_ARM_WRK()
14650 putIRegA(rD, IRExpr_Get(OFFB_TPIDRURO, Ity_I32), in disInstr_ARM_WRK()
14652 DIP("mrc%s p15,0, r%u, c13, c0, 3\n", nCC(INSN_COND), rD); in disInstr_ARM_WRK()
15319 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15325 putIRegT(rD, binop(Iop_Sub32, mkexpr(zero), mkexpr(arg)), condT); in disInstr_THUMB_WRK()
15327 DIP("negs r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15335 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15343 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15346 DIP("mvns r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15365 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15371 assign( res, binop(anOp, getIRegT(rD), getIRegT(rM) )); in disInstr_THUMB_WRK()
15374 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15377 DIP("%s r%u, r%u\n", anOpNm, rD, rM); in disInstr_THUMB_WRK()
15385 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15391 assign( res, binop(Iop_And32, getIRegT(rD), in disInstr_THUMB_WRK()
15395 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15398 DIP("bics r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15406 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15411 assign(argL, getIRegT(rD)); in disInstr_THUMB_WRK()
15418 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15421 DIP("adcs r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15429 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15434 assign(argL, getIRegT(rD)); in disInstr_THUMB_WRK()
15441 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15444 DIP("sbcs r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15452 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15453 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFF)), in disInstr_THUMB_WRK()
15455 DIP("uxtb r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15463 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15464 putIRegT(rD, binop(Iop_Sar32, in disInstr_THUMB_WRK()
15468 DIP("sxtb r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15476 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15477 putIRegT(rD, binop(Iop_And32, getIRegT(rM), mkU32(0xFFFF)), in disInstr_THUMB_WRK()
15479 DIP("uxth r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15487 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15488 putIRegT(rD, binop(Iop_Sar32, in disInstr_THUMB_WRK()
15492 DIP("sxth r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15506 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15514 assign(rDt, getIRegT(rD)); in disInstr_THUMB_WRK()
15520 dis_buf, &res, &resC, rDt, rSt, rD, rS in disInstr_THUMB_WRK()
15526 dis_buf, &res, &resC, rDt, rSt, rD, rS in disInstr_THUMB_WRK()
15532 dis_buf, &res, &resC, rDt, rSt, rD, rS in disInstr_THUMB_WRK()
15538 dis_buf, &res, &resC, rDt, rSt, rD, rS in disInstr_THUMB_WRK()
15546 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15549 DIP("%ss r%u, r%u\n", wot, rS, rD); in disInstr_THUMB_WRK()
15558 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15563 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
15564 DIP("rev%s r%u, r%u\n", isREV ? "" : "16", rD, rM); in disInstr_THUMB_WRK()
15686 UInt rD = (h1 << 3) | INSN0(2,0); in disInstr_THUMB_WRK() local
15688 if (rD == 15 && rM == 15) { in disInstr_THUMB_WRK()
15692 assign( res, binop(Iop_Add32, getIRegT(rD), getIRegT(rM) )); in disInstr_THUMB_WRK()
15693 if (rD != 15) { in disInstr_THUMB_WRK()
15694 putIRegT( rD, mkexpr(res), condT ); in disInstr_THUMB_WRK()
15707 DIP("add(hi) r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15737 UInt rD = (h1 << 3) | INSN0(2,0); in disInstr_THUMB_WRK() local
15743 if (rD != 15) { in disInstr_THUMB_WRK()
15744 putIRegT( rD, mkexpr(val), condT ); in disInstr_THUMB_WRK()
15757 DIP("mov r%u, r%u\n", rD, rM); in disInstr_THUMB_WRK()
15976 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
15982 putIRegT(rD, binop(isSub ? Iop_Sub32 : Iop_Add32, in disInstr_THUMB_WRK()
15987 DIP("%s r%u, r%u, #%u\n", isSub ? "subs" : "adds", rD, rN, uimm3); in disInstr_THUMB_WRK()
15997 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16003 putIRegT( rD, binop(isSub ? Iop_Sub32 : Iop_Add32, in disInstr_THUMB_WRK()
16008 DIP("%s r%u, r%u, r%u\n", isSub ? "subs" : "adds", rD, rN, rM); in disInstr_THUMB_WRK()
16017 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16029 putIRegT(rD, loadLE(Ity_I32, ea), IRTemp_INVALID); in disInstr_THUMB_WRK()
16031 storeLE(ea, getIRegT(rD)); in disInstr_THUMB_WRK()
16035 DIP("%s r%u, [r%u, r%u]\n", isLD ? "ldr" : "str", rD, rN, rM); in disInstr_THUMB_WRK()
16044 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16056 putIRegT(rD, unop(Iop_16Uto32, loadLE(Ity_I16, ea)), in disInstr_THUMB_WRK()
16059 storeLE( ea, unop(Iop_32to16, getIRegT(rD)) ); in disInstr_THUMB_WRK()
16063 DIP("%sh r%u, [r%u, r%u]\n", isLD ? "ldr" : "str", rD, rN, rM); in disInstr_THUMB_WRK()
16070 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16080 putIRegT(rD, unop(Iop_16Sto32, loadLE(Ity_I16, ea)), in disInstr_THUMB_WRK()
16084 DIP("ldrsh r%u, [r%u, r%u]\n", rD, rN, rM); in disInstr_THUMB_WRK()
16091 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16101 putIRegT(rD, unop(Iop_8Sto32, loadLE(Ity_I8, ea)), in disInstr_THUMB_WRK()
16105 DIP("ldrsb r%u, [r%u, r%u]\n", rD, rN, rM); in disInstr_THUMB_WRK()
16114 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16126 putIRegT(rD, unop(Iop_8Uto32, loadLE(Ity_I8, ea)), in disInstr_THUMB_WRK()
16129 storeLE( ea, unop(Iop_32to8, getIRegT(rD)) ); in disInstr_THUMB_WRK()
16133 DIP("%sb r%u, [r%u, r%u]\n", isLD ? "ldr" : "str", rD, rN, rM); in disInstr_THUMB_WRK()
16170 UInt rD = INSN0(10,8); in disInstr_THUMB_WRK() local
16172 putIRegT(rD, binop(Iop_Add32, in disInstr_THUMB_WRK()
16176 DIP("add r%u, pc, #%u\n", rD, imm8 * 4); in disInstr_THUMB_WRK()
16182 UInt rD = INSN0(10,8); in disInstr_THUMB_WRK() local
16184 putIRegT(rD, binop(Iop_Add32, getIRegT(13), mkU32(imm8 * 4)), in disInstr_THUMB_WRK()
16186 DIP("add r%u, r13, #%u\n", rD, imm8 * 4); in disInstr_THUMB_WRK()
16206 UInt rD = INSN0(10,8); in disInstr_THUMB_WRK() local
16214 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16217 DIP("movs r%u, #%u\n", rD, uimm8); in disInstr_THUMB_WRK()
16224 UInt rD = INSN0(10,8); in disInstr_THUMB_WRK() local
16236 putIRegT(rD, loadLE(Ity_I32, mkexpr(ea)), in disInstr_THUMB_WRK()
16240 DIP("ldr r%u, [pc, #%u]\n", rD, imm8 * 4); in disInstr_THUMB_WRK()
16249 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16261 putIRegT(rD, loadLE(Ity_I32, ea), IRTemp_INVALID); in disInstr_THUMB_WRK()
16263 storeLE( ea, getIRegT(rD) ); in disInstr_THUMB_WRK()
16267 DIP("%s r%u, [r%u, #%u]\n", isLD ? "ldr" : "str", rD, rN, imm5 * 4); in disInstr_THUMB_WRK()
16276 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16288 putIRegT(rD, unop(Iop_16Uto32, loadLE(Ity_I16, ea)), in disInstr_THUMB_WRK()
16291 storeLE( ea, unop(Iop_32to16, getIRegT(rD)) ); in disInstr_THUMB_WRK()
16295 DIP("%sh r%u, [r%u, #%u]\n", isLD ? "ldr" : "str", rD, rN, imm5 * 2); in disInstr_THUMB_WRK()
16304 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16316 putIRegT(rD, unop(Iop_8Uto32, loadLE(Ity_I8, ea)), in disInstr_THUMB_WRK()
16319 storeLE( ea, unop(Iop_32to8, getIRegT(rD)) ); in disInstr_THUMB_WRK()
16323 DIP("%sb r%u, [r%u, #%u]\n", isLD ? "ldr" : "str", rD, rN, imm5); in disInstr_THUMB_WRK()
16332 UInt rD = INSN0(10,8); in disInstr_THUMB_WRK() local
16343 putIRegT(rD, loadLE(Ity_I32, ea), IRTemp_INVALID); in disInstr_THUMB_WRK()
16345 storeLE(ea, getIRegT(rD)); in disInstr_THUMB_WRK()
16349 DIP("%s r%u, [sp, #%u]\n", isLD ? "ldr" : "str", rD, imm8 * 4); in disInstr_THUMB_WRK()
16451 UInt rD = INSN0(2,0); in disInstr_THUMB_WRK() local
16486 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16490 DIP("%ss r%u, r%u, #%u\n", wot, rD, rM, imm5); in disInstr_THUMB_WRK()
16712 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16713 Bool valid = !isBadRegT(rN) && !isBadRegT(rD); in disInstr_THUMB_WRK()
16715 if (!valid && rD <= 14 && rN == 13) in disInstr_THUMB_WRK()
16725 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16729 bS == 1 ? "s" : "", rD, rN, imm32); in disInstr_THUMB_WRK()
16739 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16740 Bool valid = !isBadRegT(rN) && !isBadRegT(rD); in disInstr_THUMB_WRK()
16742 if (!valid && rD <= 14 && rN == 13) in disInstr_THUMB_WRK()
16752 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16753 DIP("addw r%u, r%u, #%u\n", rD, rN, imm12); in disInstr_THUMB_WRK()
16820 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16821 Bool valid = !isBadRegT(rN) && !isBadRegT(rD); in disInstr_THUMB_WRK()
16824 if (!valid && !isRSB && rN == 13 && rD != 15) in disInstr_THUMB_WRK()
16836 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16844 isRSB ? "rsb" : "sub", bS == 1 ? "s" : "", rD, rN, imm32); in disInstr_THUMB_WRK()
16854 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16855 Bool valid = !isBadRegT(rN) && !isBadRegT(rD); in disInstr_THUMB_WRK()
16857 if (!valid && rD == 13 && rN == 13) in disInstr_THUMB_WRK()
16867 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16868 DIP("subw r%u, r%u, #%u\n", rD, rN, imm12); in disInstr_THUMB_WRK()
16883 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16884 if (!isBadRegT(rN) && !isBadRegT(rD)) { in disInstr_THUMB_WRK()
16901 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16912 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16921 nm, bS == 1 ? "s" : "", rD, rN, imm32); in disInstr_THUMB_WRK()
16939 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16940 if (!isBadRegT(rN) && !isBadRegT(rD)) { in disInstr_THUMB_WRK()
16962 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
16974 nm, bS == 1 ? "s" : "", rD, rN, imm32); in disInstr_THUMB_WRK()
16988 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
16994 Bool valid = !isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM); in disInstr_THUMB_WRK()
16998 && rD != 15 && rN == 13 && imm5 <= 3 && how == 0) { in disInstr_THUMB_WRK()
17004 && rD != 15 && rN == 13 && imm5 == 0 && how == 0) { in disInstr_THUMB_WRK()
17035 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17053 nm, bS ? "s" : "", rD, rN, dis_buf); in disInstr_THUMB_WRK()
17067 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17069 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
17097 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17108 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17118 nm, bS ? "s" : "", rD, rN, dis_buf); in disInstr_THUMB_WRK()
17136 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17138 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
17178 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17187 nm, bS ? "s" : "", rD, rN, dis_buf); in disInstr_THUMB_WRK()
17201 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17204 Bool valid = !isBadRegT(rN) && !isBadRegT(rM) && !isBadRegT(rD); in disInstr_THUMB_WRK()
17221 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17227 nm, bS ? "s" : "", rD, rN, rM); in disInstr_THUMB_WRK()
17236 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17238 if (!isBadRegT(rD) && !isBadRegT(rN)) { in disInstr_THUMB_WRK()
17257 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17264 isMVN ? "mvn" : "mov", bS ? "s" : "", rD, dis_buf); in disInstr_THUMB_WRK()
17350 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17351 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
17358 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17370 isMVN ? "mvn" : "mov", bS ? "s" : "", rD, imm32); in disInstr_THUMB_WRK()
17379 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17380 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
17383 putIRegT(rD, mkU32(imm16), condT); in disInstr_THUMB_WRK()
17384 DIP("movw r%u, #%u\n", rD, imm16); in disInstr_THUMB_WRK()
17393 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
17394 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
17400 binop(Iop_And32, getIRegT(rD), mkU32(0xFFFF)), in disInstr_THUMB_WRK()
17402 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
17403 DIP("movt r%u, #%u\n", rD, imm16); in disInstr_THUMB_WRK()
18081 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18085 if (!isBadRegT(rD) && !isBadRegT(rN) && msb <= 31) { in disInstr_THUMB_WRK()
18102 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18105 isU ? "ubfx" : "sbfx", rD, rN, lsb, wm1 + 1); in disInstr_THUMB_WRK()
18126 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18129 if (!isBadRegT(rD) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18185 putIRegT(rD, mkexpr(dstT), condT); in disInstr_THUMB_WRK()
18186 DIP("%s r%u, r%u, ror #%u\n", nm, rD, rM, 8 * rot); in disInstr_THUMB_WRK()
18195 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18197 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18200 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18201 DIP("mul.w r%u, r%u, r%u\n", rD, rN, rM); in disInstr_THUMB_WRK()
18210 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18212 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18219 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18220 DIP("sdiv.w r%u, r%u, r%u\n", rD, rN, rM); in disInstr_THUMB_WRK()
18229 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18231 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18238 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18239 DIP("udiv.w r%u, r%u, r%u\n", rD, rN, rM); in disInstr_THUMB_WRK()
18271 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18273 if (!isBadRegT(rD) && !isBadRegT(rN) in disInstr_THUMB_WRK()
18281 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18283 isMLA ? "mla" : "mls", rD, rN, rM, rA); in disInstr_THUMB_WRK()
18292 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18293 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
18296 putIRegT(rD, binop(Iop_Add32, in disInstr_THUMB_WRK()
18300 DIP("add r%u, pc, #%u\n", rD, imm32); in disInstr_THUMB_WRK()
18344 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18345 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
18348 putIRegT(rD, binop(Iop_Sub32, in disInstr_THUMB_WRK()
18352 DIP("sub r%u, pc, #%u\n", rD, imm32); in disInstr_THUMB_WRK()
18360 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18364 if (isBadRegT(rD) || rN == 13 || msb < lsb) { in disInstr_THUMB_WRK()
18376 assign(olddst, getIRegT(rD)); in disInstr_THUMB_WRK()
18387 putIRegT(rD, mkexpr(newdst), condT); in disInstr_THUMB_WRK()
18391 rD, lsb, msb-lsb+1); in disInstr_THUMB_WRK()
18394 rD, rN, lsb, msb-lsb+1); in disInstr_THUMB_WRK()
18408 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18411 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18422 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18424 isU ? 'u' : 's', rD, rN, rM, rot); in disInstr_THUMB_WRK()
18437 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18440 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18451 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18453 isU ? 'u' : 's', rD, rN, rM, rot); in disInstr_THUMB_WRK()
18463 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18465 if (!isBadRegT(rD) && !isBadRegT(rM1) && rM1 == rM2) { in disInstr_THUMB_WRK()
18476 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18477 DIP("clz r%u, r%u\n", rD, rM1); in disInstr_THUMB_WRK()
18487 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18489 if (!isBadRegT(rD) && !isBadRegT(rM1) && rM1 == rM2) { in disInstr_THUMB_WRK()
18493 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18494 DIP("rbit r%u, r%u\n", rD, rM1); in disInstr_THUMB_WRK()
18506 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18509 if (!isBadRegT(rD) && !isBadRegT(rM1) && rM1 == rM2) { in disInstr_THUMB_WRK()
18513 putIRegT(rD, mkexpr(res), condT); in disInstr_THUMB_WRK()
18514 DIP("rev%s r%u, r%u\n", isREV ? "" : "16", rD, rM1); in disInstr_THUMB_WRK()
18538 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18539 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
18541 putIRegT( rD, mkexpr(apsr), condT ); in disInstr_THUMB_WRK()
18542 DIP("mrs r%u, cpsr\n", rD); in disInstr_THUMB_WRK()
18615 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18617 if (!isBadRegT(rD) && !isBadRegT(rT) && rN != 15 in disInstr_THUMB_WRK()
18618 && rD != rN && rD != rT) { in disInstr_THUMB_WRK()
18634 putIRegT(rD, mkexpr(resSC32), IRTemp_INVALID); in disInstr_THUMB_WRK()
18635 DIP("strex r%u, r%u, [r%u, #+%u]\n", rD, rT, rN, imm8 * 4); in disInstr_THUMB_WRK()
18645 UInt rD = INSN1(3,0); in disInstr_THUMB_WRK() local
18647 if (!isBadRegT(rD) && !isBadRegT(rT) && rN != 15 in disInstr_THUMB_WRK()
18648 && rD != rN && rD != rT) { in disInstr_THUMB_WRK()
18663 putIRegT(rD, mkexpr(resSC32), IRTemp_INVALID); in disInstr_THUMB_WRK()
18664 DIP("strex%c r%u, r%u, [r%u]\n", isH ? 'h' : 'b', rD, rT, rN); in disInstr_THUMB_WRK()
18674 UInt rD = INSN1(3,0); in disInstr_THUMB_WRK() local
18675 if (!isBadRegT(rD) && !isBadRegT(rT) && !isBadRegT(rT2) in disInstr_THUMB_WRK()
18676 && rN != 15 && rD != rN && rD != rT && rD != rT) { in disInstr_THUMB_WRK()
18693 putIRegT(rD, mkexpr(resSC32), IRTemp_INVALID); in disInstr_THUMB_WRK()
18694 DIP("strexd r%u, r%u, r%u, [r%u]\n", rD, rT, rT2, rN); in disInstr_THUMB_WRK()
18781 UInt rD = INSN1(15,12); in disInstr_THUMB_WRK() local
18782 if (!isBadRegT(rD)) { in disInstr_THUMB_WRK()
18783 putIRegT(rD, IRExpr_Get(OFFB_TPIDRURO, Ity_I32), IRTemp_INVALID); in disInstr_THUMB_WRK()
18784 DIP("mrc p15,0, r%u, c13, c0, 3\n", rD); in disInstr_THUMB_WRK()
18813 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18816 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM)) { in disInstr_THUMB_WRK()
18822 putIRegT(rD, res, condT); in disInstr_THUMB_WRK()
18824 bitR ? "r" : "", rD, rN, rM); in disInstr_THUMB_WRK()
18835 UInt rD = INSN1(11,8); in disInstr_THUMB_WRK() local
18838 if (!isBadRegT(rD) && !isBadRegT(rN) && !isBadRegT(rM) && (rA != 13)) { in disInstr_THUMB_WRK()
18846 putIRegT(rD, res, condT); in disInstr_THUMB_WRK()
18848 bitR ? "r" : "", rD, rN, rM, rA); in disInstr_THUMB_WRK()