PowerPC-32 has at at least two variant (with and without Altivec).
Add preliminary support for distinguishing the two.
git-svn-id: svn://svn.valgrind.org/vex/trunk@801 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/priv/main/vex_main.c b/priv/main/vex_main.c
index 43ac46d..3c99420 100644
--- a/priv/main/vex_main.c
+++ b/priv/main/vex_main.c
@@ -311,7 +311,8 @@
guest_sizeB = sizeof(VexGuestPPC32State);
guest_word_type = Ity_I32;
guest_layout = &ppc32Guest_layout;
- vassert(subarch_guest == VexSubArchPPC32);
+ vassert(subarch_guest == VexSubArchPPC32_noAV
+ || subarch_guest == VexSubArchPPC32_AV);
break;
default:
@@ -319,10 +320,10 @@
}
/* yet more sanity checks ... */
- if (arch_guest == VexArchX86 && arch_host == VexArchX86) {
+ if (arch_guest == arch_host) {
/* doesn't necessarily have to be true, but if it isn't it means
- we are simulating one flavour of x86 on a different one, which
- is pretty strange. */
+ we are simulating one flavour of an architecture a different
+ flavour of the same architecture, which is pretty strange. */
vassert(subarch_guest == subarch_host);
}
@@ -543,6 +544,7 @@
case VexArchX86: return "X86";
case VexArchAMD64: return "AMD64";
case VexArchARM: return "ARM";
+ case VexArchPPC32: return "PPC32";
default: return "VexArch???";
}
}
@@ -550,13 +552,15 @@
const HChar* LibVEX_ppVexSubArch ( VexSubArch subarch )
{
switch (subarch) {
- case VexSubArch_INVALID: return "INVALID";
- case VexSubArch_NONE: return "NONE";
- case VexSubArchX86_sse0: return "x86-sse0";
- case VexSubArchX86_sse1: return "x86-sse1";
- case VexSubArchX86_sse2: return "x86-sse2";
- case VexSubArchARM_v4: return "arm-v4";
- default: return "VexSubArch???";
+ case VexSubArch_INVALID: return "INVALID";
+ case VexSubArch_NONE: return "NONE";
+ case VexSubArchX86_sse0: return "x86-sse0";
+ case VexSubArchX86_sse1: return "x86-sse1";
+ case VexSubArchX86_sse2: return "x86-sse2";
+ case VexSubArchARM_v4: return "arm-v4";
+ case VexSubArchPPC32_noAV: return "ppc32-noAltivec";
+ case VexSubArchPPC32_AV: return "ppc32-Altivec";
+ default: return "VexSubArch???";
}
}