Handle the added VBICiv*i* NEON instructions, too.
authorJohnny Chen <johnny.chen@apple.com>
Thu, 24 Mar 2011 22:04:39 +0000 (22:04 +0000)
committerJohnny Chen <johnny.chen@apple.com>
Thu, 24 Mar 2011 22:04:39 +0000 (22:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128243 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/ARM/Disassembler/ARMDisassemblerCore.cpp
test/MC/Disassembler/ARM/neon-tests.txt

index 5930e9e7db8f33bd09b5e6b5b90d5bd692a4045d..b839a02d6a1636c5e286653cf36c1d433284f9e5 100644 (file)
@@ -2302,6 +2302,7 @@ static bool DisassembleNLdSt(MCInst &MI, unsigned Opcode, uint32_t insn,
 
 // VMOV (immediate)
 //   Qd/Dd imm
+// VBIC (immediate)
 // VORR (immediate)
 //   Qd/Dd imm src(=Qd/Dd)
 static bool DisassembleN1RegModImmFrm(MCInst &MI, unsigned Opcode,
@@ -2330,6 +2331,8 @@ static bool DisassembleN1RegModImmFrm(MCInst &MI, unsigned Opcode,
   case ARM::VMOVv8i16:
   case ARM::VMVNv4i16:
   case ARM::VMVNv8i16:
+  case ARM::VBICiv4i16:
+  case ARM::VBICiv8i16:
   case ARM::VORRiv4i16:
   case ARM::VORRiv8i16:
     esize = ESize16;
@@ -2338,6 +2341,8 @@ static bool DisassembleN1RegModImmFrm(MCInst &MI, unsigned Opcode,
   case ARM::VMOVv4i32:
   case ARM::VMVNv2i32:
   case ARM::VMVNv4i32:
+  case ARM::VBICiv2i32:
+  case ARM::VBICiv4i32:
   case ARM::VORRiv2i32:
   case ARM::VORRiv4i32:
     esize = ESize32;
@@ -2347,7 +2352,7 @@ static bool DisassembleN1RegModImmFrm(MCInst &MI, unsigned Opcode,
     esize = ESize64;
     break;
   default:
-    assert(0 && "Unreachable code!");
+    assert(0 && "Unexpected opcode!");
     return false;
   }
 
@@ -2357,7 +2362,7 @@ static bool DisassembleN1RegModImmFrm(MCInst &MI, unsigned Opcode,
 
   NumOpsAdded = 2;
 
-  // VORRiv*i* variants have an extra $src = $Vd to be filled in.
+  // VBIC/VORRiv*i* variants have an extra $src = $Vd to be filled in.
   if (NumOps >= 3 &&
       (OpInfo[2].RegClass == ARM::DPRRegClassID ||
        OpInfo[2].RegClass == ARM::QPRRegClassID)) {
index 421a8e4a5ba0db248bfcf6f420aeeeb2e3262687..bd3b7d326c9c2d7f22429db60809fd2cb11f8791 100644 (file)
@@ -65,3 +65,6 @@
 
 # CHECK:       vorr.i32        q15, #0x4F0000
 0x5f 0xe5 0xc4 0xf2
+
+# CHECK:       vbic.i32        q2, #0xA900
+0x79 0x53 0x82 0xf3