Index: src/trusted/validator_x86/testdata/64/rex_not_last.tf |
diff --git a/src/trusted/validator_x86/testdata/64/rex_not_last.tf b/src/trusted/validator_x86/testdata/64/rex_not_last.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..73c06b773eda09190df89fb2495888b3d82227a0 |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/64/rex_not_last.tf |
@@ -0,0 +1,16 @@ |
+BITS: 64 |
+OUTCOME: invalid |
+ |
+# Complain about instruction where REX byte is not last. |
+# Use instruction: lock cmpxchg16b (%rax) |
+# Start by showing we accept when REX is last. |
+asm: lock cmpxchg16b (%rax) |
+hex: f0 48 0f c7 08 |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# Now show that we don't accept when REX is not last. |
+asm: rex.W; lock cmpxchg8b (%rax) |
+hex: 48 f0 0f c7 08 |
+nc_out: ERROR: REX prefix byte must appear last |
+nc_out: ERROR: Invalid base register in memory offset |
+ |