diff options
author | Chris Lattner <sabre@nondot.org> | 2002-12-04 06:45:19 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2002-12-04 06:45:19 +0000 |
commit | dbf30f7b02e23a19eaa4f7b437a1f5682e4ee74c (patch) | |
tree | a85a3d57b6f32515849ad982eace3e044e619881 /lib/Target/X86/Printer.cpp | |
parent | b72d221d619211335780b90f43bb129cf15fe0e7 (diff) |
Add support for referencing global variables/functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4907 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/Printer.cpp')
-rw-r--r-- | lib/Target/X86/Printer.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/Target/X86/Printer.cpp b/lib/Target/X86/Printer.cpp index 3ab75065d1..6206059486 100644 --- a/lib/Target/X86/Printer.cpp +++ b/lib/Target/X86/Printer.cpp @@ -96,6 +96,10 @@ static void printOp(std::ostream &O, const MachineOperand &MO, const MRegisterInfo &RI) { switch (MO.getType()) { case MachineOperand::MO_VirtualRegister: + if (Value *V = MO.getVRegValue()) { + O << "<" << V->getName() << ">"; + return; + } case MachineOperand::MO_MachineRegister: if (MO.getReg() < MRegisterInfo::FirstVirtualRegister) O << RI.get(MO.getReg()).Name; @@ -172,11 +176,15 @@ void X86InstrInfo::print(const MachineInstr *MI, std::ostream &O, // There are currently two forms of acceptable AddRegFrm instructions. // Either the instruction JUST takes a single register (like inc, dec, etc), // or it takes a register and an immediate of the same size as the register - // (move immediate f.e.). + // (move immediate f.e.). Note that this immediate value might be stored as + // an LLVM value, to represent, for example, loading the address of a global + // into a register. // assert(isReg(MI->getOperand(0)) && (MI->getNumOperands() == 1 || - (MI->getNumOperands() == 2 && isImmediate(MI->getOperand(1)))) && + (MI->getNumOperands() == 2 && + (MI->getOperand(1).getVRegValue() || + isImmediate(MI->getOperand(1))))) && "Illegal form for AddRegFrm instruction!"); unsigned Reg = MI->getOperand(0).getReg(); |