Added support for disassembling unpredictable swp/swpb ARM instructions.
[oota-llvm.git] / lib / Target / ARM / Disassembler / ARMDisassembler.cpp
index 87a5f019d4a937946478f5841c872b685c6c08c7..912935db17ac8d375a067e7d7fb561a12ef65358 100644 (file)
@@ -4310,6 +4310,10 @@ static DecodeStatus DecodeSwap(MCInst &Inst, unsigned Insn,
     return DecodeCPSInstruction(Inst, Insn, Address, Decoder);
 
   DecodeStatus S = MCDisassembler::Success;
+
+  if (Rt == Rn || Rn == Rt2)
+    S = MCDisassembler::SoftFail;
+
   if (!Check(S, DecodeGPRnopcRegisterClass(Inst, Rt, Address, Decoder)))
     return MCDisassembler::Fail;
   if (!Check(S, DecodeGPRnopcRegisterClass(Inst, Rt2, Address, Decoder)))