Home | History | Annotate | Download | only in priv

Lines Matching refs:rD

267 /* Extract RD (destination register) field, instr[25:21] */
312 /* Extract RC (3rd source register) field, instr[10:6] */
317 /* Extract XC (3rd source register) field, instr[3,10:6] */
3006 IRTemp rD = newTemp(ty);
3011 assign( rB, getIReg(rB_addr) ); // XO-Form: rD, rA, rB
3017 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3020 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
3026 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3029 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
3036 // li rD,val == addi rD,0,val
3037 // la disp(rA) == addi rD,rA,disp
3040 assign( rD, mkSzExtendS16(ty, uimm16) );
3043 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3049 // lis rD,val == addis rD,0,val
3052 assign( rD, mkSzExtendS32(ty, uimm16 << 16) );
3055 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3063 assign( rD, unop(Iop_128to64,
3067 assign( rD, unop(Iop_64to32,
3074 // rD = simm16 - rA
3075 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
3079 mkexpr(rD), mkexpr(rA), mkSzExtendS16(ty, uimm16),
3092 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3096 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3104 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3107 mkexpr(rD), mkexpr(rA), mkexpr(rB),
3111 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3120 // rD = rA + rB + XER[CA]
3122 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3126 mkexpr(rD), mkexpr(rA), mkexpr(rB),
3130 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3145 // rD = rA + (-1) + XER[CA]
3149 assign( rD, binop( mkSzOp(ty, Iop_Add8), mkexpr(rA),
3153 mkexpr(rD), mkexpr(rA), min_one,
3157 mkexpr(rD), mkexpr(rA), min_one );
3171 // rD = rA + (0) + XER[CA]
3174 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3177 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0),
3181 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0) );
3196 /* rD[hi32] are undefined: setting them to sign of lo32
3200 assign( rD, mk64lo32Uto64( binop(Iop_DivS64, dividend,
3204 mkexpr(rD), dividend, divisor );
3207 assign( rD, binop(Iop_DivS32, mkexpr(rA), mkexpr(rB)) );
3210 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3215 => rD=undef, if(flag_rC) CR7=undef, if(flag_OE) XER_OV=1
3231 assign( rD, mk64lo32Uto64( binop(Iop_DivU64, dividend,
3235 mkexpr(rD), dividend, divisor );
3238 assign( rD, binop(Iop_DivU32, mkexpr(rA), mkexpr(rB)) );
3241 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3255 /* rD[hi32] are undefined: setting them to sign of lo32
3257 assign( rD, binop(Iop_Sar64,
3263 assign( rD, unop(Iop_64HIto32,
3277 /* rD[hi32] are undefined: setting them to sign of lo32
3279 assign( rD, binop(Iop_Sar64,
3285 assign( rD, unop(Iop_64HIto32,
3296 /* rD[hi32] are undefined: setting them to sign of lo32
3300 assign( rD, binop(Iop_MullS32, a, b) );
3303 mkexpr(rD),
3307 assign( rD, unop(Iop_64to32,
3312 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3325 // rD = (~rA) + 1
3326 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3331 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3339 // rD = rB - rA
3340 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
3344 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3352 // rD = rB - rA
3353 assign( rD, binop( mkSzOp(ty, Iop_Sub8),
3356 mkexpr(rD), mkexpr(rA), mkexpr(rB),
3360 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3369 // rD = (log not)rA + rB + XER[CA]
3371 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3376 mkexpr(rD), mkexpr(rA), mkexpr(rB),
3380 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3395 // rD = (log not)rA + (-1) + XER[CA]
3399 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3404 mkexpr(rD), mkexpr(rA), min_one,
3408 mkexpr(rD), mkexpr(rA), min_one );
3422 // rD = (log not)rA + (0) + XER[CA]
3425 assign( rD, binop( mkSzOp(ty, Iop_Add8),
3429 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0),
3433 mkexpr(rD), mkexpr(rA), mkSzImm(ty, 0) );
3447 assign( rD, unop(Iop_128HIto64,
3460 assign( rD, unop(Iop_128HIto64,
3469 assign( rD, binop(Iop_Mul64, mkexpr(rA), mkexpr(rB)) );
3472 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3480 assign( rD, binop(Iop_DivS64, mkexpr(rA), mkexpr(rB)) );
3483 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3488 => rD=undef, if(flag_rC) CR7=undef, if(flag_OE) XER_OV=1
3495 assign( rD, binop(Iop_DivU64, mkexpr(rA), mkexpr(rB)) );
3498 mkexpr(rD), mkexpr(rA), mkexpr(rB) );
3508 * then the contents of register RD are undefined as are (if Rc=1) the contents of
3521 assign( rD, binop( Iop_32HLto64, mkU32( 0 ), mkexpr( res ) ) );
3526 assign( rD, mkexpr( res) );
3542 * then the contents of register RD are undefined as are (if
3556 assign( rD, binop( Iop_32HLto64, mkU32( 0 ), mkexpr( res ) ) );
3561 assign( rD, mkexpr( res) );
3577 * then the contents of register RD are undefined as are (if
3584 assign( rD, binop(Iop_DivS64E, mkexpr(rA), mkexpr(rB)) );
3586 set_XER_OV_64( PPCG_FLAG_OP_DIVDE, mkexpr( rD ),
3596 assign( rD, binop(Iop_DivU64E, mkexpr(rA), mkexpr(rB)) );
3598 set_XER_OV_64( PPCG_FLAG_OP_DIVDEU, mkexpr( rD ),
3614 putIReg( rD_addr, mkexpr(rD) );
3617 set_CR0( mkexpr(rD) );
5006 Int rD, // first dst register
5014 vassert(rD >= 0 && rD < 32);
5015 rD--; if (rD < 0) rD = 31;
5024 rD++; if (rD == 32) rD = 0;
5025 putIReg(rD, mkSzImm(ty, 0));
5028 /* rD |= (8Uto32(*(EA+i))) << shift */
5031 rD,
5036 mkNarrowTo32(ty, getIReg(rD)),
5122 /* rD = Mem[EA]; (rD+1)%32 = Mem[EA+4] */
5158 /* Mem[EA] = rD; Mem[EA+4] = (rD+1)%32 */