|
From: <sv...@va...> - 2005-07-08 13:10:48
|
Author: cerion
Date: 2005-07-08 14:10:35 +0100 (Fri, 08 Jul 2005)
New Revision: 1268
Log:
Added LibVEX_GuestPPC32_get_cr() for easy access to entire cond reg
Filled in some missing defaults in LibVEX_GuestPPC32_initialise()
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-07 14:15:35 UTC (rev 1267)
+++ trunk/priv/guest-ppc32/ghelpers.c 2005-07-08 13:10:35 UTC (rev 1268)
@@ -211,6 +211,14 @@
}
=20
/* VISIBLE TO LIBVEX CLIENT */
+UInt LibVEX_GuestPPC32_get_cr ( /*IN*/VexGuestPPC32State* vex_state )
+{
+ UInt cr7 =3D LibVEX_GuestPPC32_get_cr7( vex_state );
+ UInt cr0to6 =3D vex_state->guest_CR0to6;
+ return (cr7 & 0xF0000000) | (cr0to6 & 0x0FFFFFFF);
+}
+
+/* VISIBLE TO LIBVEX CLIENT */
void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state=
)
{
vex_state->guest_GPR0 =3D 0;
@@ -246,6 +254,75 @@
vex_state->guest_GPR30 =3D 0;
vex_state->guest_GPR31 =3D 0;
=20
+ vex_state->guest_FPR0 =3D 0;
+ vex_state->guest_FPR1 =3D 0;
+ vex_state->guest_FPR2 =3D 0;
+ vex_state->guest_FPR3 =3D 0;
+ vex_state->guest_FPR4 =3D 0;
+ vex_state->guest_FPR5 =3D 0;
+ vex_state->guest_FPR6 =3D 0;
+ vex_state->guest_FPR7 =3D 0;
+ vex_state->guest_FPR8 =3D 0;
+ vex_state->guest_FPR9 =3D 0;
+ vex_state->guest_FPR10 =3D 0;
+ vex_state->guest_FPR11 =3D 0;
+ vex_state->guest_FPR12 =3D 0;
+ vex_state->guest_FPR13 =3D 0;
+ vex_state->guest_FPR14 =3D 0;
+ vex_state->guest_FPR15 =3D 0;
+ vex_state->guest_FPR16 =3D 0;
+ vex_state->guest_FPR17 =3D 0;
+ vex_state->guest_FPR18 =3D 0;
+ vex_state->guest_FPR19 =3D 0;
+ vex_state->guest_FPR20 =3D 0;
+ vex_state->guest_FPR21 =3D 0;
+ vex_state->guest_FPR22 =3D 0;
+ vex_state->guest_FPR23 =3D 0;
+ vex_state->guest_FPR24 =3D 0;
+ vex_state->guest_FPR25 =3D 0;
+ vex_state->guest_FPR26 =3D 0;
+ vex_state->guest_FPR27 =3D 0;
+ vex_state->guest_FPR28 =3D 0;
+ vex_state->guest_FPR29 =3D 0;
+ vex_state->guest_FPR30 =3D 0;
+ vex_state->guest_FPR31 =3D 0;
+
+ /* Initialise the vector state. */
+# define SSEZERO(_vr) _vr[0]=3D_vr[1]=3D_vr[2]=3D_vr[3] =3D 0;
+
+ SSEZERO(vex_state->guest_VR0 );
+ SSEZERO(vex_state->guest_VR1 );
+ SSEZERO(vex_state->guest_VR2 );
+ SSEZERO(vex_state->guest_VR3 );
+ SSEZERO(vex_state->guest_VR4 );
+ SSEZERO(vex_state->guest_VR5 );
+ SSEZERO(vex_state->guest_VR6 );
+ SSEZERO(vex_state->guest_VR7 );
+ SSEZERO(vex_state->guest_VR8 );
+ SSEZERO(vex_state->guest_VR9 );
+ SSEZERO(vex_state->guest_VR10);
+ SSEZERO(vex_state->guest_VR11);
+ SSEZERO(vex_state->guest_VR12);
+ SSEZERO(vex_state->guest_VR13);
+ SSEZERO(vex_state->guest_VR14);
+ SSEZERO(vex_state->guest_VR15);
+ SSEZERO(vex_state->guest_VR16);
+ SSEZERO(vex_state->guest_VR17);
+ SSEZERO(vex_state->guest_VR18);
+ SSEZERO(vex_state->guest_VR19);
+ SSEZERO(vex_state->guest_VR20);
+ SSEZERO(vex_state->guest_VR21);
+ SSEZERO(vex_state->guest_VR22);
+ SSEZERO(vex_state->guest_VR23);
+ SSEZERO(vex_state->guest_VR24);
+ SSEZERO(vex_state->guest_VR25);
+ SSEZERO(vex_state->guest_VR26);
+ SSEZERO(vex_state->guest_VR27);
+ SSEZERO(vex_state->guest_VR28);
+ SSEZERO(vex_state->guest_VR29);
+ SSEZERO(vex_state->guest_VR30);
+ SSEZERO(vex_state->guest_VR31);
+
vex_state->guest_CIA =3D 0;
vex_state->guest_LR =3D 0;
vex_state->guest_CTR =3D 0;
@@ -260,6 +337,10 @@
=20
vex_state->guest_XER =3D 0;
=20
+ vex_state->guest_VRSAVE =3D 0;
+
+ vex_state->guest_VSCR =3D 0;
+
vex_state->guest_EMWARN =3D EmWarn_NONE;
=20
vex_state->guest_TISTART =3D 0;
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-07 14:15:35 UTC (rev 1267)
+++ trunk/pub/libvex_guest_ppc32.h 2005-07-08 13:10:35 UTC (rev 1268)
@@ -197,10 +197,12 @@
=20
/* Extract from the supplied VexGuestPPC32State structure the
corresponding native %cr7 value. */
-
extern
UInt LibVEX_GuestPPC32_get_cr7 ( /*IN*/VexGuestPPC32State* vex_state );
=20
+/* Ditto, but for entire %cr */
+extern
+UInt LibVEX_GuestPPC32_get_cr ( /*IN*/VexGuestPPC32State* vex_state );
=20
#endif /* ndef __LIBVEX_PUB_GUEST_PPC32_H */
=20
|