]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Small correction to getReg_CR()
authorCerion Armour-Brown <cerion@valgrind.org>
Sat, 5 Feb 2005 14:01:57 +0000 (14:01 +0000)
committerCerion Armour-Brown <cerion@valgrind.org>
Sat, 5 Feb 2005 14:01:57 +0000 (14:01 +0000)
git-svn-id: svn://svn.valgrind.org/vex/trunk@848

VEX/priv/guest-ppc32/toIR.c

index 2654fe898e2b7d490ab107069dfa90991a2acc50..a01af7306d2f7ec0f2ba9f655bd1c26977c014d2 100644 (file)
@@ -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