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:
}
/* 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);
}
case VexArchX86: return "X86";
case VexArchAMD64: return "AMD64";
case VexArchARM: return "ARM";
+ case VexArchPPC32: return "PPC32";
default: return "VexArch???";
}
}
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???";
}
}
typedef
enum {
VexSubArch_INVALID,
- VexSubArch_NONE, /* Arch has no variants */
- VexSubArchX86_sse0, /* has SSE state but no insns (Pentium II) */
- VexSubArchX86_sse1, /* SSE1 support (Pentium III) */
- VexSubArchX86_sse2, /* SSE2 support (Pentium 4) */
- VexSubArchARM_v4, /* ARM version 4 */
- VexSubArchPPC32 /* CAB: ? */
+ VexSubArch_NONE, /* Arch has no variants */
+ VexSubArchX86_sse0, /* has SSE state but no insns (Pentium II) */
+ VexSubArchX86_sse1, /* SSE1 support (Pentium III) */
+ VexSubArchX86_sse2, /* SSE2 support (Pentium 4) */
+ VexSubArchARM_v4, /* ARM version 4 */
+ VexSubArchPPC32_noAV, /* 32-bit PowerPC, no Altivec */
+ VexSubArchPPC32_AV /* 32-bit PowerPC with Altivec */
}
VexSubArch;