Cleaned up and filled out:
Added some clean helper functions to calculate CR0 and XER flags
Made a start on add and branch ops (mostly to get a feel, will prob have
to redo)
git-svn-id: svn://svn.valgrind.org/vex/trunk@755 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/pub/libvex_guest_ppc32.h b/pub/libvex_guest_ppc32.h
index bbd4ea0..ae0ba1d 100644
--- a/pub/libvex_guest_ppc32.h
+++ b/pub/libvex_guest_ppc32.h
@@ -84,18 +84,14 @@
UInt guest_LR; // Link Register
UInt guest_CTR; // Count Register
- /* CR0: Use last result for delayed calc of CR0[0,1,2] (neg,pos,zero)
- (bit3 is just a redundant copy of XER_SO) */
- UInt guest_Result; // Result of last op
+ /* thunk used to calculate CR0 flags. */
+ UChar guest_CC_OP; // boolean: 0=> dep1=result 1=> dep1=flags
+ UInt guest_CC_DEP1; // Result of last op | flags
+ UInt guest_CC_DEP2; // XER_SO
// CR1: Used for FP - don't need yet.
- // CR2:7: Used for 'compare' instructions
- UChar guest_CR2;
- UChar guest_CR3;
- UChar guest_CR4;
- UChar guest_CR5;
- UChar guest_CR6;
- UChar guest_CR7;
+ // CR2:7: Used for 'compare' instructions (bits 0:8 not used)
+ UInt guest_CR2_7;
/* XER */
UChar guest_XER_SO; // Summary Overflow