Add support for GlobalAddress's for alkis
authorChris Lattner <sabre@nondot.org>
Tue, 17 Feb 2004 18:23:55 +0000 (18:23 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 17 Feb 2004 18:23:55 +0000 (18:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11560 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86CodeEmitter.cpp
lib/Target/X86/X86RegisterInfo.cpp

index f9de6febb7f12615ee564ae4b2577938aaa0d77e..e02fcbf16f58d2ec1ae16bdc54318be6d1009be7 100644 (file)
@@ -602,7 +602,12 @@ void Emitter::emitInstruction(MachineInstr &MI) {
 
     if (MI.getNumOperands() == 5) {
       unsigned Size = sizeOfPtr(Desc);
-      emitConstant(MI.getOperand(4).getImmedValue(), Size);
+      if (MI.getOperand(4).isImmediate())
+        emitConstant(MI.getOperand(4).getImmedValue(), Size);
+      else if (MI.getOperand(4).isGlobalAddress())
+        emitGlobalAddressForPtr(MI.getOperand(4).getGlobal());
+      else
+        assert(0 && "Unknown operand!");
     }
     break;
   }
index d94e4ac26613252b7d0236d7d19aba6e0dbd72a4..6479ad56a7ec25eb877fa7929e5dc5f2531c1aea 100644 (file)
@@ -100,8 +100,14 @@ static MachineInstr *MakeMRInst(unsigned Opcode, unsigned FrameIndex,
 
 static MachineInstr *MakeMIInst(unsigned Opcode, unsigned FrameIndex,
                                 MachineInstr *MI) {
-  return addFrameReference(BuildMI(Opcode, 5), FrameIndex)
-                 .addZImm(MI->getOperand(1).getImmedValue());
+  if (MI->getOperand(1).isImmediate())
+    return addFrameReference(BuildMI(Opcode, 5), FrameIndex)
+      .addZImm(MI->getOperand(1).getImmedValue());
+  else if (MI->getOperand(1).isGlobalAddress())
+    return addFrameReference(BuildMI(Opcode, 5), FrameIndex)
+      .addGlobalAddress(MI->getOperand(1).getGlobal());
+  assert(0 && "Unknown operand for MakeMI!");
+  return 0;
 }
 
 static MachineInstr *MakeRMInst(unsigned Opcode, unsigned FrameIndex,