From 89ca575c310457304d53be93749fdc284e424375 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 26 Jun 2009 18:55:01 +0000 Subject: [PATCH] use jump table operand flags in asm printer instead of "magic predicates" git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74310 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../X86/AsmPrinter/X86ATTAsmPrinter.cpp | 24 ++++++++++++++----- 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp index 726c1ae587f..6d277102365 100644 --- a/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp +++ b/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp @@ -455,13 +455,25 @@ void X86ATTAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo, O << TAI->getPrivateGlobalPrefix() << "JTI" << getFunctionNumber() << '_' << MO.getIndex(); - if (TM.getRelocationModel() == Reloc::PIC_) { - if (Subtarget->isPICStyleStub()) { - O << '-'; - PrintPICBaseSymbol(); - } else if (Subtarget->isPICStyleGOT()) { - O << "@GOTOFF"; + switch (MO.getTargetFlags()) { + default: + assert(0 && "Unknown target flag on jump table operand"); + case X86II::MO_NO_FLAG: + // FIXME: REMOVE EVENTUALLY. + if (TM.getRelocationModel() == Reloc::PIC_) { + assert(!Subtarget->isPICStyleStub() && + !Subtarget->isPICStyleGOT() && + "Should have operand flag!"); } + + break; + case X86II::MO_PIC_BASE_OFFSET: + O << '-'; + PrintPICBaseSymbol(); + break; + case X86II::MO_GOTOFF: + O << "@GOTOFF"; + break; } if (isMemOp && Subtarget->isPICStyleRIPRel() && !NotRIPRel)