From: Cerion Armour-Brown Date: Sat, 5 Feb 2005 14:01:57 +0000 (+0000) Subject: Small correction to getReg_CR() X-Git-Tag: svn/VALGRIND_3_0_1^2~486 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d533616a0404283e707dadd5f34ee2aec766cc1;p=thirdparty%2Fvalgrind.git Small correction to getReg_CR() git-svn-id: svn://svn.valgrind.org/vex/trunk@848 --- diff --git a/VEX/priv/guest-ppc32/toIR.c b/VEX/priv/guest-ppc32/toIR.c index 2654fe898e..a01af7306d 100644 --- a/VEX/priv/guest-ppc32/toIR.c +++ b/VEX/priv/guest-ppc32/toIR.c @@ -890,14 +890,12 @@ static IRExpr* getReg_CR ( ) { IRTemp cr0 = newTemp(Ity_I32); IRTemp cr1to7 = newTemp(Ity_I32); - IRTemp cr = newTemp(Ity_I32); - assign( cr0, mk_ppc32g_calculate_cr0_all() ); - assign( cr1to7, IRExpr_Get(OFFB_CR1to7, Ity_I32) ); - assign( cr, binop(Iop_Or32, - binop(Iop_And32, mkexpr(cr1to7), mkU32(-1>>4)), - binop(Iop_Shl32, mkexpr(cr0), mkU8(28))) ); - return mkexpr(cr); + assign( cr0, binop(Iop_And32, mkU32(0xF<<28) + mk_ppc32g_calculate_cr0_all()) ); + assign( cr1to7, binop(Iop_And32, mkU32(-1>>4) + IRExpr_Get(OFFB_CR1to7, Ity_I32)) ); + return binop(Iop_Or32, mkexpr(cr1to7), mkexpr(cr0)); } /* Write given flags (least sig. nibble) to given field of CR