| Index: lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
|
| diff --git a/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp b/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
|
| index 03e4e0a5e17a622d05f1dfb6c8d8d9d219326818..8c7fe6dc59c97424f08abdaa963f2bb6dd11c30b 100644
|
| --- a/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
|
| +++ b/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp
|
| @@ -309,6 +309,71 @@ void ARMInstPrinter::printInst(const MCInst *MI, raw_ostream &O,
|
| }
|
| }
|
|
|
| + // @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 != (unsigned)~0) {
|
| + O << ' ';
|
| + printOperand(MI, SFIEmitDest, O);
|
| + }
|
| + if (SFIEmitDest != (unsigned)~0 && SFIEmitPred != (unsigned)~0) {
|
| + O << ',';
|
| + }
|
| + if (SFIEmitPred != (unsigned)~0) {
|
| + O << ' ';
|
| + printPredicateOperand(MI, SFIEmitPred, O);
|
| + }
|
| + O << '\n';
|
| + return;
|
| + }
|
| + // @LOCALMOD-END
|
| +
|
| printInstruction(MI, O);
|
| printAnnotation(O, Annot);
|
| }
|
|
|