Index: src/trusted/validator_x86/testdata/64/fpu.tf |
diff --git a/src/trusted/validator_x86/testdata/64/fpu.tf b/src/trusted/validator_x86/testdata/64/fpu.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3326df07c76018c9ef876bd6148ad71635ba1901 |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/64/fpu.tf |
@@ -0,0 +1,159 @@ |
+BITS: 64 |
+OUTCOME: invalid |
+ |
+# Load floating point value. |
+# mov %eax,%eax |
+# fld (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: flds (%r15,%rax,1) |
+hex: 41 D9 04 07 |
+ |
+# mov %eax,%eax |
+# fldl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fldl (%r15,%rax,1) |
+hex: 41 DD 04 07 |
+ |
+# mov %eax,%eax |
+# fldt (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fldt (%r15,%rax,1) |
+hex: 41 DB 2C 07 |
+ |
+ |
+# Load integer value. |
+# mov %eax,%eax |
+# fildl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fildl (%r15,%rax,1) |
+hex: 41 DB 04 07 |
+ |
+# mov %eax,%eax |
+# fildq (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fildll (%r15,%rax,1) |
+hex: 41 DF 2C 07 |
+ |
+ |
+# Store floating point value. |
+# mov %eax,%eax |
+# fsts (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fsts (%r15,%rax,1) |
+hex: 41 D9 14 07 |
+nc_out: Bad basic block alignment. |
+ |
+# mov %eax,%eax |
+# fstl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fstl (%r15,%rax,1) |
+hex: 41 DD 14 07 |
+ |
+# mov %eax,%eax |
+# fstps (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fstps (%r15,%rax,1) |
+hex: 41 D9 1C 07 |
+ |
+# mov %eax,%eax |
+# fstpl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fstpl (%r15,%rax,1) |
+hex: 41 DD 1C 07 |
+ |
+# mov %eax,%eax |
+# fstpt (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fstpt (%r15,%rax,1) |
+hex: 41 DB 3C 07 |
+ |
+ |
+# Store integer value |
+# mov %eax,%eax |
+# fists (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fist (%r15,%rax,1) |
+hex: 41 DF 14 07 |
+nc_out: [at +2] Bad basic block alignment. |
+ |
+# mov %eax,%eax |
+# fistl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fistl (%r15,%rax,1) |
+hex: 41 DB 14 07 |
+ |
+# mov %eax,%eax |
+# fistp (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fistp (%r15,%rax,1) |
+hex: 41 DF 1C 07 |
+ |
+# mov %eax,%eax |
+# fistpl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fistpl (%r15,%rax,1) |
+hex: 41 DB 1C 07 |
+ |
+# mov %eax,%eax |
+# fistpq (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fistpll (%r15,%rax,1) |
+hex: 41 DF 3C 07 |
+ |
+ |
+# Basic arithmetic |
+# fadd %st(1),%st(0) |
+asm: fadd %st(1),%st |
+hex: D8 C1 |
+ |
+# faddp %st(0),%st(1) |
+asm: faddp %st,%st(1) |
+hex: DE C1 |
+ |
+# mov %eax,%eax |
+# fadds (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: fadds (%r15,%rax,1) |
+hex: 41 D8 04 07 |
+nc_out: Bad basic block alignment. |
+ |
+# mov %eax,%eax |
+# faddl (%r15,%rax) |
+asm: mov %eax,%eax |
+hex: 89 C0 |
+ |
+asm: faddl (%r15,%rax,1) |
+hex: 41 DC 04 07 |
+ |