|
From: <sv...@va...> - 2005-07-08 13:35:49
|
Author: cerion
Date: 2005-07-08 14:34:47 +0100 (Fri, 08 Jul 2005)
New Revision: 1269
Log:
Added LibVEX_GuestPPC32_put_cr7(), LibVEX_GuestPPC32_put_cr()
Modified:
trunk/priv/guest-ppc32/ghelpers.c
trunk/pub/libvex_guest_ppc32.h
Modified: trunk/priv/guest-ppc32/ghelpers.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/priv/guest-ppc32/ghelpers.c 2005-07-08 13:10:35 UTC (rev 1268)
+++ trunk/priv/guest-ppc32/ghelpers.c 2005-07-08 13:34:47 UTC (rev 1269)
@@ -191,15 +191,23 @@
/*----------------------------------------------*/
=20
/* VISIBLE TO LIBVEX CLIENT */
-#if 0
-void LibVEX_GuestPPC32_put_cr7 ( UInt flags_native,
+void LibVEX_GuestPPC32_put_cr7 ( UInt cr7_native,
/*OUT*/VexGuestPPC32State* vex_state )
{
- vassert(0); // FIXME
+ vex_state->guest_CC_OP =3D 1; /* =3D> use immediate value DEP1 */
+ vex_state->guest_CC_DEP1 =3D (cr7_native & 0xF0000000);
+ vex_state->guest_CC_DEP2 =3D 0; /* =3Dunused */
}
-#endif
=20
/* VISIBLE TO LIBVEX CLIENT */
+void LibVEX_GuestPPC32_put_cr ( UInt cr_native,
+ /*OUT*/VexGuestPPC32State* vex_state )
+{
+ LibVEX_GuestPPC32_put_cr7( cr_native, vex_state );
+ vex_state->guest_CR0to6 =3D (cr_native & 0x0FFFFFFF);
+}
+
+/* VISIBLE TO LIBVEX CLIENT */
UInt LibVEX_GuestPPC32_get_cr7 ( /*IN*/VexGuestPPC32State* vex_state )
{
UInt flags =3D ppc32g_calculate_cr7(
Modified: trunk/pub/libvex_guest_ppc32.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/pub/libvex_guest_ppc32.h 2005-07-08 13:10:35 UTC (rev 1268)
+++ trunk/pub/libvex_guest_ppc32.h 2005-07-08 13:34:47 UTC (rev 1269)
@@ -195,6 +195,17 @@
extern
void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state=
);
=20
+/* Write the given native %cr7 value to the supplied
+ VexGuestPPC32State structure */
+extern
+void LibVEX_GuestPPC32_put_cr7 ( UInt cr7_native,
+ /*OUT*/VexGuestPPC32State* vex_state );
+
+/* Ditto, but for entire %cr */
+extern
+void LibVEX_GuestPPC32_put_cr ( UInt cr_native,
+ /*OUT*/VexGuestPPC32State* vex_state );
+
/* Extract from the supplied VexGuestPPC32State structure the
corresponding native %cr7 value. */
extern
|