Index: src/trusted/validator_x86/testdata/64/bt.tf |
diff --git a/src/trusted/validator_x86/testdata/64/bt.tf b/src/trusted/validator_x86/testdata/64/bt.tf |
new file mode 100644 |
index 0000000000000000000000000000000000000000..cd89b2e0acbb2b57bb889c98a6ed80f290c3914c |
--- /dev/null |
+++ b/src/trusted/validator_x86/testdata/64/bt.tf |
@@ -0,0 +1,68 @@ |
+BITS: 64 |
+OUTCOME: invalid |
+ |
+# Test illegal bit commands. |
+# btr %rax,(%rax) |
+asm: btr %rax,(%rax) |
+hex: 48 0F B3 00 |
+nc_out: ERROR: This instruction has been marked illegal by Native Client |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# bts %rax,(%rax) |
+asm: bts %rax,(%rax) |
+hex: 48 0F AB 00 |
+nc_out: ERROR: This instruction has been marked illegal by Native Client |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# btc %rax,(%rax) |
+asm: btc %rax,(%rax) |
+hex: 48 0F BB 00 |
+nc_out: ERROR: This instruction has been marked illegal by Native Client |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# btrl $0x1,(%rax) |
+asm: btrl $0x1,(%rax) |
+hex: 0F BA 30 01 |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# btsl $0x1,(%rax) |
+asm: btsl $0x1,(%rax) |
+hex: 0F BA 28 01 |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# btcl $0x1,(%rax) |
+asm: btcl $0x1,(%rax) |
+hex: 0F BA 38 01 |
+nc_out: ERROR: Invalid base register in memory offset |
+ |
+# Test legal bit commands |
+# btw $0x1,(%rsp) |
+asm: btw $0x1,(%rsp) |
+hex: 66 0F BA 24 24 01 |
+ |
+ |
+# Align so that next instruction does not cross bundle boundary. |
+asm: nop; nop |
+hex: 90 90 |
+ |
+ |
+# btl $0x1,(%rsp) |
+asm: btl $0x1,(%rsp) |
+hex: 0F BA 24 24 01 |
+ |
+# btq $0x1,(%rsp) |
+asm: btq $0x1,(%rsp) |
+hex: 48 0F BA 24 24 01 |
+ |
+# btrl $0x1,(%rsp) |
+asm: btrl $0x1,(%rsp) |
+hex: 0F BA 34 24 01 |
+ |
+# btsl $0x1,(%rsp) |
+asm: btsl $0x1,(%rsp) |
+hex: 0F BA 2C 24 01 |
+ |
+# btcl $0x1,(%rsp) |
+asm: btcl $0x1,(%rsp) |
+hex: 0F BA 3C 24 01 |
+ |