]> granicus.if.org Git - llvm/commitdiff
[X86] Allow any 8-bit immediate to be used with bt/btc/btr/bts memory aliases.
authorCraig Topper <craig.topper@intel.com>
Wed, 7 Aug 2019 06:17:58 +0000 (06:17 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 7 Aug 2019 06:17:58 +0000 (06:17 +0000)
We have aliases that disambiguate memory forms of bt/btc/btr/bts
without suffixes to the 32-bit form. These aliases should have
been updated when the instructions were updated in r356413.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@368127 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrInfo.td
test/MC/X86/x86-32-coverage.s

index 06514b33d4183f28f934239fd9ccfae6ef24cfd6..7b765a1d30ff683359f330552a6def2bf522c1fe 100644 (file)
@@ -3219,13 +3219,13 @@ def : InstAlias<"aam", (AAM8i8 10)>, Requires<[Not64BitMode]>;
 // Disambiguate the mem/imm form of bt-without-a-suffix as btl.
 // Likewise for btc/btr/bts.
 def : InstAlias<"bt\t{$imm, $mem|$mem, $imm}",
-                (BT32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
+                (BT32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
 def : InstAlias<"btc\t{$imm, $mem|$mem, $imm}",
-                (BTC32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
+                (BTC32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
 def : InstAlias<"btr\t{$imm, $mem|$mem, $imm}",
-                (BTR32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
+                (BTR32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
 def : InstAlias<"bts\t{$imm, $mem|$mem, $imm}",
-                (BTS32mi8 i32mem:$mem, i32i8imm:$imm), 0, "att">;
+                (BTS32mi8 i32mem:$mem, i32u8imm:$imm), 0, "att">;
 
 // clr aliases.
 def : InstAlias<"clr{b}\t$reg", (XOR8rr  GR8 :$reg, GR8 :$reg), 0>;
index dbff21471a213addcc594265c45b9bf29474c3b3..1403c7cbfc345d7a9d5d49b9815c6ff8f7f9b629 100644 (file)
@@ -10576,15 +10576,19 @@ blendvps %xmm0, (%eax), %xmm1
 // CHECK: btcw $4, (%eax)
 // CHECK: btcl $4, (%eax)
 bt $4, (%eax)
+bt $255, (%eax)
 btw $4, (%eax)
 btl $4, (%eax)
 bts $4, (%eax)
+bts $255, (%eax)
 btsw $4, (%eax)
 btsl $4, (%eax)
 btr $4, (%eax)
+btr $255, (%eax)
 btrw $4, (%eax)
 btrl $4, (%eax)
 btc $4, (%eax)
+btc $255, (%eax)
 btcw $4, (%eax)
 btcl $4, (%eax)