summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-06-26 18:55:01 +0000
committerChris Lattner <sabre@nondot.org>2009-06-26 18:55:01 +0000
commit08d734448ec0806cfef8edf588ce43cbe00dd4a5 (patch)
tree1a8b383020c4f0c4dc3526bd2efcdb95d83446e3 /llvm/lib
parent082acded4425ed6812c71f989ba91cf6b665d329 (diff)
downloadbcm5719-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.cpp24
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)
OpenPOWER on IntegriCloud