llvm-6502/lib/Target/X86/AsmPrinter/X86MCInstLower.h
Chris Lattner e9434dbff4 X86MCInstLower::Lower should only not emit anything to OutStreamer,
this means that it can only lower one MachineInstr to one MCInst.  To
make this fly, we need to pull out handling of MO_GOT_ABSOLUTE_ADDRESS
(which generates an implicit label) out of X86MCInstLower.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81629 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12 21:01:20 +00:00

50 lines
1.5 KiB
C++

//===-- X86MCInstLower.h - Lower MachineInstr to MCInst -------------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef X86_MCINSTLOWER_H
#define X86_MCINSTLOWER_H
namespace llvm {
class MCContext;
class MCInst;
class MCOperand;
class MCSymbol;
class MachineInstr;
class MachineOperand;
class Mangler;
class X86ATTAsmPrinter;
class X86Subtarget;
/// X86MCInstLower - This class is used to lower an MachineInstr into an MCInst.
class X86MCInstLower {
MCContext &Ctx;
Mangler *Mang;
X86ATTAsmPrinter &AsmPrinter;
const X86Subtarget &getSubtarget() const;
public:
X86MCInstLower(MCContext &ctx, Mangler *mang, X86ATTAsmPrinter &asmprinter)
: Ctx(ctx), Mang(mang), AsmPrinter(asmprinter) {}
void Lower(const MachineInstr *MI, MCInst &OutMI) const;
MCSymbol *GetPICBaseSymbol() const;
MCOperand LowerMBBOperand(const MachineOperand &MO) const;
MCSymbol *GetGlobalAddressSymbol(const MachineOperand &MO) const;
MCSymbol *GetExternalSymbolSymbol(const MachineOperand &MO) const;
MCSymbol *GetJumpTableSymbol(const MachineOperand &MO) const;
MCSymbol *GetConstantPoolIndexSymbol(const MachineOperand &MO) const;
MCOperand LowerSymbolOperand(const MachineOperand &MO, MCSymbol *Sym) const;
};
}
#endif