powerpc: Test prefixed instructions in feature fixups
[linux-2.6-microblaze.git] / arch / powerpc / lib / feature-fixups-test.S
index b12168c..480172f 100644 (file)
@@ -7,6 +7,7 @@
 #include <asm/ppc_asm.h>
 #include <asm/synch.h>
 #include <asm/asm-compat.h>
+#include <asm/ppc-opcode.h>
 
        .text
 
@@ -791,3 +792,71 @@ globl(lwsync_fixup_test_expected_SYNC)
 1:     or      1,1,1
        sync
 
+globl(ftr_fixup_prefix1)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+globl(end_ftr_fixup_prefix1)
+
+globl(ftr_fixup_prefix1_orig)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+
+globl(ftr_fixup_prefix1_expected)
+       or      1,1,1
+       nop
+       nop
+       or      2,2,2
+
+globl(ftr_fixup_prefix2)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+globl(end_ftr_fixup_prefix2)
+
+globl(ftr_fixup_prefix2_orig)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+
+globl(ftr_fixup_prefix2_alt)
+       .long OP_PREFIX << 26
+       .long 0x0000001
+
+globl(ftr_fixup_prefix2_expected)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000001
+       or      2,2,2
+
+globl(ftr_fixup_prefix3)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+       or      3,3,3
+globl(end_ftr_fixup_prefix3)
+
+globl(ftr_fixup_prefix3_orig)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000000
+       or      2,2,2
+       or      3,3,3
+
+globl(ftr_fixup_prefix3_alt)
+       .long OP_PREFIX << 26
+       .long 0x0000001
+       nop
+
+globl(ftr_fixup_prefix3_expected)
+       or      1,1,1
+       .long OP_PREFIX << 26
+       .long 0x0000001
+       nop
+       or      3,3,3