Lines Matching defs:rD
338 /* Extract RD (destination register) field, instr[25:21] */
383 /* Extract RC (3rd source register) field, instr[10:6] */
388 /* Extract XC (3rd source register) field, instr[3,10:6] */
4879 IRTemp rD = newTemp( ty );
4919 assign( rD, binop( Iop_Add64,
4942 assign( rD, binop( Iop_Add64,
4954 assign( rD, binop( Iop_Add64, mkexpr( tmpLo ), mkexpr( rC ) ) );
4962 putIReg( rD_addr, mkexpr(rD) );
4983 IRTemp rD = newTemp(ty);
4988 assign( rB, getIReg(rB_addr) ); // XO-Form: rD, rA, rB
4994 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
4997 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
5003 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5006 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
5013 // li rD,val == addi rD,0,val
5014 // la disp(rA) == addi rD,rA,disp
5017 assign( rD, mkSzExtendS16(ty, uimm16) );
5020 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5026 // lis rD,val == addis rD,0,val
5029 assign( rD, mkSzExtendS32(ty, uimm16 << 16) );
5032 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5040 assign( rD, unop(Iop_128to64,
5044 assign( rD, unop(Iop_64to32,
5051 // rD = simm16 - rA
5052 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
5056 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
5069 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5073 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5081 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5084 mkexpr(rD), mkexpr(rA), mkexpr(rB),
5088 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5097 // rD = rA + rB + XER[CA]
5099 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5103 mkexpr(rD), mkexpr(rA), mkexpr(rB),
5107 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5114 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5122 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5141 // rD = rA + (-1) + XER[CA]
5145 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
5149 mkexpr(rD), mkexpr(rA), min_one,
5153 mkexpr(rD), mkexpr(rA), min_one );
5167 // rD = rA + (0) + XER[CA]
5170 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5173 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0),
5177 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0) );
5192 /* rD[hi32] are undefined: setting them to sign of lo32
5196 assign( rD, mk64lo32Uto64( binop(Iop_DivS64, dividend,
5200 mkexpr(rD), dividend, divisor );
5203 assign( rD, binop(Iop_DivS32, mkexpr(rA), mkexpr(rB)) );
5206 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5211 => rD=undef, if(flag_rC) CR7=undef, if(flag_OE) XER_OV=1
5227 assign( rD, mk64lo32Uto64( binop(Iop_DivU64, dividend,
5231 mkexpr(rD), dividend, divisor );
5234 assign( rD, binop(Iop_DivU32, mkexpr(rA), mkexpr(rB)) );
5237 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5251 /* rD[hi32] are undefined: setting them to sign of lo32
5253 assign( rD, binop(Iop_Sar64,
5259 assign( rD, unop(Iop_64HIto32,
5273 /* rD[hi32] are undefined: setting them to sign of lo32
5275 assign( rD, binop(Iop_Sar64,
5281 assign( rD, unop(Iop_64HIto32,
5292 /* rD[hi32] are undefined: setting them to sign of lo32
5296 assign( rD, binop(Iop_MullS32, a, b) );
5299 mkexpr(rD),
5303 assign( rD, unop(Iop_64to32,
5308 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5321 // rD = (~rA) + 1
5322 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5327 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5335 // rD = rB - rA
5336 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
5340 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5348 // rD = rB - rA
5349 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
5352 mkexpr(rD), mkexpr(rA), mkexpr(rB),
5356 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5365 // rD = (log not)rA + rB + XER[CA]
5367 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5372 mkexpr(rD), mkexpr(rA), mkexpr(rB),
5376 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5391 // rD = (log not)rA + (-1) + XER[CA]
5395 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5400 mkexpr(rD), mkexpr(rA), min_one,
5404 mkexpr(rD), mkexpr(rA), min_one );
5418 // rD = (log not)rA + (0) + XER[CA]
5421 assign( rD, binop( mkSzOp(ty, Iop_Add8),
5425 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0),
5429 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0) );
5443 assign( rD, unop(Iop_128HIto64,
5456 assign( rD, unop(Iop_128HIto64,
5465 assign( rD, binop(Iop_Mul64, mkexpr(rA), mkexpr(rB)) );
5468 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5482 assign( rD, binop(Iop_DivS64, mkexpr(rA), mkexpr(rB)) );
5485 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5490 => rD=undef, if(flag_rC) CR7=undef, if(flag_OE) XER_OV=1
5497 assign( rD, binop(Iop_DivU64, mkexpr(rA), mkexpr(rB)) );
5500 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
5510 * then the contents of register RD are undefined as are (if Rc=1) the contents of
5523 assign( rD, binop( Iop_32HLto64, mkU32( 0 ), mkexpr( res ) ) );
5528 assign( rD, mkexpr( res) );
5545 * then the contents of register RD are undefined as are (if
5559 assign( rD, binop( Iop_32HLto64, mkU32( 0 ), mkexpr( res ) ) );
5564 assign( rD, mkexpr( res) );
5581 * then the contents of register RD are undefined as are (if
5588 assign( rD, binop(Iop_DivS64E, mkexpr(rA), mkexpr(rB)) );
5590 set_XER_OV_64( PPCG_FLAG_OP_DIVDE, mkexpr( rD ),
5602 assign( rD, binop(Iop_DivU64E, mkexpr(rA), mkexpr(rB)) );
5604 set_XER_OV_64( PPCG_FLAG_OP_DIVDEU, mkexpr( rD ),
5622 putIReg( rD_addr, mkexpr(rD) );
5625 set_CR0( mkexpr(rD) );
5639 IRTemp rD = newTemp( ty );
5680 assign (rD, binop( Iop_And64,
5732 assign (rD, binop( Iop_32HLto64,
5877 assign( rD, binop( Iop_Or64,
5983 assign( rD, binop( Iop_Or64,
6003 putIReg( rD_addr, mkexpr( rD ) );
7701 Int rD, // first dst register
7709 vassert(rD >= 0 && rD < 32);
7710 rD--; if (rD < 0) rD = 31;
7719 rD++; if (rD == 32) rD = 0;
7720 putIReg(rD, mkSzImm(ty, 0));
7723 /* rD |= (8Uto32(*(EA+i))) << shift */
7726 rD,
7731 mkNarrowTo32(ty, getIReg(rD)),
7818 /* rD = Mem[EA]; (rD+1)%32 = Mem[EA+4] */
7854 /* Mem[EA] = rD; Mem[EA+4] = (rD+1)%32 */