diff options
author | Derek Schuff <dschuff@chromium.org> | 2012-07-09 10:52:46 -0700 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2012-07-09 11:00:37 -0700 |
commit | 5dbcc7e0c9c12f4a4042fb4a226654aee927999c (patch) | |
tree | b316a3370e9286cb4e6f81b2f9d8bd8b54ce5123 /lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | |
parent | 86dc97be9ac3b4804528e087b04b4f4192cdee54 (diff) |
LOCALMODs from hg 0b098ca44de7 against r158408 (hg 90a87d6bfe45)
(only non-new files; new files in git 4f429c8b)
Change-Id: Ia39f818088485bd90e4d048db404f8d6ba5f836b
Diffstat (limited to 'lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp')
-rw-r--r-- | lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp b/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp index 70e4317cef..9eda04d776 100644 --- a/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp +++ b/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp @@ -166,6 +166,71 @@ void ARMInstPrinter::printInst(const MCInst *MI, raw_ostream &O, return; } + // @LOCALMOD-BEGIN + // TODO(pdox): Kill this code once we switch to MC object emission + const char *SFIInst = NULL; + unsigned SFIEmitDest = ~0; + unsigned SFIEmitPred = ~0; + switch (Opcode) { + case ARM::SFI_NOP_IF_AT_BUNDLE_END : + SFIInst = "sfi_nop_if_at_bundle_end"; + SFIEmitDest = ~0; + SFIEmitPred = ~0; + break; + case ARM::SFI_GUARD_LOADSTORE : + SFIInst = "sfi_load_store_preamble"; + SFIEmitDest = 0; + SFIEmitPred = 2; + break; + case ARM::SFI_GUARD_INDIRECT_CALL: + SFIInst = "sfi_indirect_call_preamble"; + SFIEmitDest = 0; + SFIEmitPred = 2; + break; + case ARM::SFI_GUARD_INDIRECT_JMP : + SFIInst = "sfi_indirect_jump_preamble"; + SFIEmitDest = 0; + SFIEmitPred = 2; + break; + case ARM::SFI_DATA_MASK : + SFIInst = "sfi_data_mask"; + SFIEmitDest = 0; + SFIEmitPred = 2; + break; + case ARM::SFI_GUARD_LOADSTORE_TST: + SFIInst = "sfi_cload_store_preamble"; + SFIEmitDest = 0; + SFIEmitPred = ~0; + break; + case ARM::SFI_GUARD_CALL : + SFIInst = "sfi_call_preamble"; + SFIEmitDest = ~0; + SFIEmitPred = 0; + break; + case ARM::SFI_GUARD_RETURN : + SFIInst = "sfi_return_preamble lr,"; + SFIEmitDest = ~0; + SFIEmitPred = 0; + break; + } + if (SFIInst) { + O << '\t' << SFIInst; + if (SFIEmitDest != ~0) { + O << ' '; + printOperand(MI, SFIEmitDest, O); + } + if (SFIEmitDest != ~0 && SFIEmitPred != ~0) { + O << ','; + } + if (SFIEmitPred != ~0) { + O << ' '; + printPredicateOperand(MI, SFIEmitPred, O); + } + O << '\n'; + return; + } + // @LOCALMOD-END + if (Opcode == ARM::tLDMIA) { bool Writeback = true; unsigned BaseReg = MI->getOperand(0).getReg(); |