Index: src/trusted/validator_x86/testdata/32/fpu.tf |
diff --git a/src/trusted/validator_x86/testdata/32/fpu.tf b/src/trusted/validator_x86/testdata/32/fpu.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..25a38c6162f35d520d7ee00dda34ebaa333a788c |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/32/fpu.tf |
@@ -0,0 +1,88 @@ |
+BITS: 32 |
+OUTCOME: valid |
+ |
+# Load floating point value |
+# flds (%eax) |
+asm: flds (%eax) |
+hex: D9 00 |
+ |
+# fldl (%eax) |
+asm: fldl (%eax) |
+hex: DD 00 |
+ |
+# fldt (%eax) |
+asm: fldt (%eax) |
+hex: DB 28 |
+ |
+ |
+# Load integer value |
+# fildl (%eax) |
+asm: fildl (%eax) |
+hex: DB 00 |
+ |
+# fildq (%eax) |
+asm: fildll (%eax) |
+hex: DF 28 |
+ |
+ |
+# Store floating point value |
+# fsts (%eax) |
+asm: fsts (%eax) |
+hex: D9 10 |
+ |
+# fstl (%eax) |
+asm: fstl (%eax) |
+hex: DD 10 |
+ |
+# fstps (%eax) |
+asm: fstps (%eax) |
+hex: D9 18 |
+ |
+# fstpl (%eax) |
+asm: fstpl (%eax) |
+hex: DD 18 |
+ |
+# fstpt (%eax) |
+asm: fstpt (%eax) |
+hex: DB 38 |
+ |
+ |
+# Store integer value |
+# fists (%eax) |
+asm: fist (%eax) |
+hex: DF 10 |
+ |
+# fistl (%eax) |
+asm: fistl (%eax) |
+hex: DB 10 |
+ |
+# fistps (%eax) |
+asm: fistp (%eax) |
+hex: DF 18 |
+ |
+# fistpl (%eax) |
+asm: fistpl (%eax) |
+hex: DB 18 |
+ |
+# fistpq (%eax) |
+asm: fistpll (%eax) |
+hex: DF 38 |
+ |
+ |
+# 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 |
+ |
+# fadds (%eax) |
+asm: fadds (%eax) |
+hex: D8 00 |
+ |
+# faddl (%eax) |
+asm: faddl (%eax) |
+hex: DC 00 |
+ |