Index: src/trusted/validator_x86/testdata/64/extensions.tf |
diff --git a/src/trusted/validator_x86/testdata/64/extensions.tf b/src/trusted/validator_x86/testdata/64/extensions.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..74640e3176e2678cf551968023a664dba9505aed |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/64/extensions.tf |
@@ -0,0 +1,90 @@ |
+BITS: 64 |
+OUTCOME: valid |
+ |
+# check commands from various extensions |
+# fcmovb %st(1),%st |
+asm: fcmovb %st(1),%st |
+hex: DA C1 |
+ |
+# rdtsc |
+asm: rdtsc |
+hex: 0F 31 |
+ |
+# MMX or SSE2 |
+# psrlw $1, %mm0 |
+asm: psrlw $0x1,%mm0 |
+hex: 0F 71 D0 01 |
+ |
+# MMX or SSE2 |
+# psrlw $1, %xmm0 |
+asm: psrlw $0x1,%xmm0 |
+hex: 66 0F 71 D0 01 |
+ |
+# SSE 3 |
+# addsubpd %xmm0,%xmm1 |
+asm: addsubpd %xmm0,%xmm1 |
+hex: 66 0F D0 C8 |
+ |
+# SSE 4.1 |
+# pminsb %xmm0,%xmm1 |
+asm: pminsb %xmm0,%xmm1 |
+hex: 66 0F 38 38 C8 |
+ |
+# SSE 4.2 |
+# pcmpgtq %xmm0,%xmm1 |
+asm: pcmpgtq %xmm0,%xmm1 |
+hex: 66 0F 38 37 C8 |
+ |
+# SSE 4A |
+# nops |
+# movl %eax,%eax |
+# movntsd %xmm0,(%r15,%rax,1) |
+asm: nop; nop; nop; nop; nop |
+hex: 90 90 90 90 90 |
+ |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: movntsd %xmm0,(%r15,%rax,1) |
+hex: F2 41 0F 2B 04 07 |
+ |
+# popcnt %rax,%rax |
+asm: popcnt %rax,%rax |
+hex: F3 48 0F B8 C0 |
+ |
+# lzcnt %rax,%rax |
+asm: lzcnt %rax,%rax |
+hex: F3 48 0F BD C0 |
+ |
+# movl %eax,%eax |
+# movbe %rax,(%r15,%rax,1) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: movbe %rax,(%r15,%rax,1) |
+hex: 49 0f 38 f1 04 07 |
+ |
+# SSSE3 |
+# nop |
+# psignb %xmm0,%xmm1 |
+asm: nop |
+hex: 90 |
+ |
+asm: psignb %xmm0,%xmm1 |
+hex: 66 0F 38 08 C8 |
+ |
+# 3DNow |
+# pi2fd %mm0,%mm1 |
+asm: pi2fd %mm0,%mm1 |
+hex: 0F 0F C8 0D |
+ |
+# Extended 3DNow |
+# pf2iw %mm0,%mm1 |
+asm: pf2iw %mm0,%mm1 |
+hex: 0F 0F C8 1C |
+ |
+# SSE2x |
+# psrldq $1,%xmm0 |
+asm: psrldq $0x1,%xmm0 |
+hex: 66 0F 73 D8 01 |
+ |