aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@chromium.org>2012-07-09 10:52:46 -0700
committerDerek Schuff <dschuff@chromium.org>2012-07-09 11:00:37 -0700
commit5dbcc7e0c9c12f4a4042fb4a226654aee927999c (patch)
treeb316a3370e9286cb4e6f81b2f9d8bd8b54ce5123 /lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
parent86dc97be9ac3b4804528e087b04b4f4192cdee54 (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.cpp65
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();