[ARM64] Correctly disassemble ISB operand as ISB not DBarrier.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@205897 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bradley Smith 2014-04-09 14:44:54 +00:00
parent c669ad900d
commit 62293d1147
2 changed files with 8 additions and 1 deletions

View File

@ -1459,9 +1459,14 @@ void ARM64InstPrinter::printAdrpLabel(const MCInst *MI, unsigned OpNum,
void ARM64InstPrinter::printBarrierOption(const MCInst *MI, unsigned OpNo,
raw_ostream &O) {
unsigned Val = MI->getOperand(OpNo).getImm();
unsigned Opcode = MI->getOpcode();
bool Valid;
StringRef Name = ARM64DB::DBarrierMapper().toString(Val, Valid);
StringRef Name;
if (Opcode == ARM64::ISB)
Name = ARM64ISB::ISBMapper().toString(Val, Valid);
else
Name = ARM64DB::DBarrierMapper().toString(Val, Valid);
if (Valid)
O << Name;
else

View File

@ -26,6 +26,8 @@
# CHECK: clrex #10
0xdf 0x3f 0x03 0xd5
# CHECK: isb{{$}}
0xdf 0x31 0x03 0xd5
# CHECK: isb #1
0xbf 0x33 0x03 0xd5
# CHECK: dmb osh
0x9f 0x37 0x03 0xd5