diff options
| author | Chris Lattner <sabre@nondot.org> | 2009-06-26 18:55:01 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2009-06-26 18:55:01 +0000 |
| commit | 08d734448ec0806cfef8edf588ce43cbe00dd4a5 (patch) | |
| tree | 1a8b383020c4f0c4dc3526bd2efcdb95d83446e3 /llvm/lib | |
| parent | 082acded4425ed6812c71f989ba91cf6b665d329 (diff) | |
| download | bcm5719-llvm-08d734448ec0806cfef8edf588ce43cbe00dd4a5.tar.gz bcm5719-llvm-08d734448ec0806cfef8edf588ce43cbe00dd4a5.zip | |
use jump table operand flags in asm printer instead of "magic predicates"
llvm-svn: 74310
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp b/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp index 726c1ae587f..6d277102365 100644 --- a/llvm/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp +++ b/llvm/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) |

