From b0f59c47e4ad034f965b69d91664782c8f42dfdb Mon Sep 17 00:00:00 2001 From: Cerion Armour-Brown Date: Fri, 8 Jul 2005 13:34:47 +0000 Subject: [PATCH] Added LibVEX_GuestPPC32_put_cr7(), LibVEX_GuestPPC32_put_cr() git-svn-id: svn://svn.valgrind.org/vex/trunk@1269 --- VEX/priv/guest-ppc32/ghelpers.c | 16 ++++++++++++---- VEX/pub/libvex_guest_ppc32.h | 11 +++++++++++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/VEX/priv/guest-ppc32/ghelpers.c b/VEX/priv/guest-ppc32/ghelpers.c index 6d434e6b9e..259271d0bf 100644 --- a/VEX/priv/guest-ppc32/ghelpers.c +++ b/VEX/priv/guest-ppc32/ghelpers.c @@ -191,13 +191,21 @@ IRExpr* guest_ppc32_spechelper ( HChar* function_name, /*----------------------------------------------*/ /* 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 = 1; /* => use immediate value DEP1 */ + vex_state->guest_CC_DEP1 = (cr7_native & 0xF0000000); + vex_state->guest_CC_DEP2 = 0; /* =unused */ +} + +/* 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 = (cr_native & 0x0FFFFFFF); } -#endif /* VISIBLE TO LIBVEX CLIENT */ UInt LibVEX_GuestPPC32_get_cr7 ( /*IN*/VexGuestPPC32State* vex_state ) diff --git a/VEX/pub/libvex_guest_ppc32.h b/VEX/pub/libvex_guest_ppc32.h index b1e6890a1c..37f2598970 100644 --- a/VEX/pub/libvex_guest_ppc32.h +++ b/VEX/pub/libvex_guest_ppc32.h @@ -195,6 +195,17 @@ typedef extern void LibVEX_GuestPPC32_initialise ( /*OUT*/VexGuestPPC32State* vex_state ); +/* 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 -- 2.47.3