diff options
| author | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-07-06 08:03:12 +0000 |
|---|---|---|
| committer | Sjoerd Meijer <sjoerd.meijer@arm.com> | 2018-07-06 08:03:12 +0000 |
| commit | 2a57b357a3a0de2202a3fb0272d2648a205bcdfa (patch) | |
| tree | 7a78591803955adc522b572bfac72a8ce8e58e15 /llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp | |
| parent | be4c2933a2c370d292122fc2187d75436aeaea83 (diff) | |
| download | bcm5719-llvm-2a57b357a3a0de2202a3fb0272d2648a205bcdfa.tar.gz bcm5719-llvm-2a57b357a3a0de2202a3fb0272d2648a205bcdfa.zip | |
[AArch64][ARM] Armv8.4-A: Trace synchronization barrier instruction
This adds the Armv8.4-A Trace synchronization barrier (TSB) instruction.
Differential Revision: https://reviews.llvm.org/D48918
llvm-svn: 336418
Diffstat (limited to 'llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp b/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp index 626c580663f..26e41215afc 100644 --- a/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp +++ b/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp @@ -282,6 +282,13 @@ void AArch64InstPrinter::printInst(const MCInst *MI, raw_ostream &O, return; } + // Instruction TSB is specified as a one operand instruction, but 'csync' is + // not encoded, so for printing it is treated as a special case here: + if (Opcode == AArch64::TSB) { + O << "\ttsb\tcsync"; + return; + } + if (!printAliasInstr(MI, STI, O)) printInstruction(MI, STI, O); @@ -1329,6 +1336,9 @@ void AArch64InstPrinter::printBarrierOption(const MCInst *MI, unsigned OpNo, if (Opcode == AArch64::ISB) { auto ISB = AArch64ISB::lookupISBByEncoding(Val); Name = ISB ? ISB->Name : ""; + } else if (Opcode == AArch64::TSB) { + auto TSB = AArch64TSB::lookupTSBByEncoding(Val); + Name = TSB ? TSB->Name : ""; } else { auto DB = AArch64DB::lookupDBByEncoding(Val); Name = DB ? DB->Name : ""; |

