X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=lib%2FTarget%2FX86%2FX86ATTAsmPrinter.h;h=de167e737ba6f43905868926e8ed84db1b75c153;hp=325b43d32b2cd3a5e500feb8854f567117515a30;hb=4ee451de366474b9c228b4e5fa573795a715216d;hpb=3c992d291bc67d9ce9d742d586d24ade9a577c99 diff --git a/lib/Target/X86/X86ATTAsmPrinter.h b/lib/Target/X86/X86ATTAsmPrinter.h old mode 100755 new mode 100644 index 325b43d32b2..de167e737ba --- a/lib/Target/X86/X86ATTAsmPrinter.h +++ b/lib/Target/X86/X86ATTAsmPrinter.h @@ -1,9 +1,9 @@ -//===-- X86ATTAsmPrinter.h - Convert X86 LLVM code to Intel assembly ------===// +//===-- X86ATTAsmPrinter.h - Convert X86 LLVM code to AT&T assembly -------===// // // The LLVM Compiler Infrastructure // -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // @@ -18,11 +18,12 @@ #include "llvm/CodeGen/ValueTypes.h" namespace llvm { -namespace x86 { -struct X86ATTAsmPrinter : public X86SharedAsmPrinter { - X86ATTAsmPrinter(std::ostream &O, TargetMachine &TM) - : X86SharedAsmPrinter(O, TM) { } +struct MachineJumpTableInfo; + +struct VISIBILITY_HIDDEN X86ATTAsmPrinter : public X86SharedAsmPrinter { + X86ATTAsmPrinter(std::ostream &O, X86TargetMachine &TM, const TargetAsmInfo *T) + : X86SharedAsmPrinter(O, TM, T) { } virtual const char *getPassName() const { return "X86 AT&T-Style Assembly Printer"; @@ -36,7 +37,7 @@ struct X86ATTAsmPrinter : public X86SharedAsmPrinter { // These methods are used by the tablegen'erated instruction printer. void printOperand(const MachineInstr *MI, unsigned OpNo, - const char *Modifier = 0); + const char *Modifier = 0, bool NotRIPRel = false); void printi8mem(const MachineInstr *MI, unsigned OpNo) { printMemReference(MI, OpNo); } @@ -58,18 +59,44 @@ struct X86ATTAsmPrinter : public X86SharedAsmPrinter { void printf64mem(const MachineInstr *MI, unsigned OpNo) { printMemReference(MI, OpNo); } + void printf80mem(const MachineInstr *MI, unsigned OpNo) { + printMemReference(MI, OpNo); + } void printf128mem(const MachineInstr *MI, unsigned OpNo) { printMemReference(MI, OpNo); } + void printlea64_32mem(const MachineInstr *MI, unsigned OpNo) { + printMemReference(MI, OpNo, "subreg64"); + } + + bool printAsmMRegister(const MachineOperand &MO, const char Mode); + bool PrintAsmOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode); + bool PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo, + unsigned AsmVariant, const char *ExtraCode); void printMachineInstruction(const MachineInstr *MI); void printSSECC(const MachineInstr *MI, unsigned Op); - void printMemReference(const MachineInstr *MI, unsigned Op); + void printMemReference(const MachineInstr *MI, unsigned Op, + const char *Modifier=NULL); + void printPICJumpTableSetLabel(unsigned uid, + const MachineBasicBlock *MBB) const; + void printPICJumpTableSetLabel(unsigned uid, unsigned uid2, + const MachineBasicBlock *MBB) const { + AsmPrinter::printPICJumpTableSetLabel(uid, uid2, MBB); + } + void printPICJumpTableEntry(const MachineJumpTableInfo *MJTI, + const MachineBasicBlock *MBB, + unsigned uid) const; + void printPICLabel(const MachineInstr *MI, unsigned Op); bool runOnMachineFunction(MachineFunction &F); + + /// getSectionForFunction - Return the section that we should emit the + /// specified function body into. + virtual std::string getSectionForFunction(const Function &F) const; }; -} // end namespace x86 } // end namespace llvm #endif