Temporary revert my last commit: it seems it's triggering some subtle bug in backend
authorAnton Korobeynikov <asl@math.spbu.ru>
Sat, 8 Nov 2008 23:05:05 +0000 (23:05 +0000)
committerAnton Korobeynikov <asl@math.spbu.ru>
Sat, 8 Nov 2008 23:05:05 +0000 (23:05 +0000)
and breaks llvm-gcc

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@58926 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/AsmPrinter.h
lib/CodeGen/AsmPrinter/AsmPrinter.cpp
lib/Target/ARM/AsmPrinter/ARMAsmPrinter.cpp
lib/Target/PowerPC/AsmPrinter/PPCAsmPrinter.cpp
lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp
lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp

index 3b79b11f9d9fa5d17f2fa24c88b882da05289a2c..d3850a5fb3602ee55eda6fdf3cd612f4112efaa7 100644 (file)
@@ -362,9 +362,6 @@ namespace llvm {
     /// this is suported by the target.
     void printVisibility(const std::string& Name, unsigned Visibility) const;
 
-    /// printOffset - This is just convenient handler for printing offsets.
-    void printOffset(int64_t Offset) const;
-
   private:
     const GlobalValue *findGlobalValue(const Constant* CV);
     void EmitLLVMUsedList(Constant *List);
index c75957a677840dd8253831b4242222bad13e4400..018544150902066b594c91ec690e531e1752fd30 100644 (file)
@@ -1520,13 +1520,6 @@ void AsmPrinter::printVisibility(const std::string& Name,
   }
 }
 
-void AsmPrinter::printOffset(int64_t Offset) const {
-  if (Offset > 0)
-    O << '+' << Offset;
-  else if (Offset < 0)
-    O << Offset;
-}
-
 GCMetadataPrinter *AsmPrinter::GetOrCreateGCPrinter(GCStrategy *S) {
   if (!S->usesMetadata())
     return 0;
index ae6c3544bb9577fc047ca419520db1488f1ef56a..36cd98eb927472af7e6b376b5ad20ab64a498608 100644 (file)
@@ -300,9 +300,12 @@ void ARMAsmPrinter::printOperand(const MachineInstr *MI, int opNum,
       FnStubs.insert(Name);
     } else
       O << Name;
-
-    printOffset(MO.getOffset());
-
+    
+    if (MO.getOffset() > 0)
+      O << '+' << MO.getOffset();
+    else if (MO.getOffset() < 0)
+      O << MO.getOffset();
+    
     if (isCallOp && Subtarget->isTargetELF() &&
         TM.getRelocationModel() == Reloc::PIC_)
       O << "(PLT)";
@@ -342,7 +345,7 @@ static void printSOImm(raw_ostream &O, int64_t V, const TargetAsmInfo *TAI) {
   assert(V < (1 << 12) && "Not a valid so_imm value!");
   unsigned Imm = ARM_AM::getSOImmValImm(V);
   unsigned Rot = ARM_AM::getSOImmValRot(V);
-
+  
   // Print low-level immediate formation info, per
   // A5.1.3: "Data-processing operands - Immediate".
   if (Rot) {
index 280003a776aa9e8fe7e0243166dcb5323ee33b98..6c17dbece07e673ea419c8e0209c3c01486dbcb9 100644 (file)
@@ -398,7 +398,10 @@ void PPCAsmPrinter::printOp(const MachineOperand &MO) {
     }
     O << Name;
 
-    printOffset(MO.getOffset());
+    if (MO.getOffset() > 0)
+      O << "+" << MO.getOffset();
+    else if (MO.getOffset() < 0)
+      O << MO.getOffset();
 
     if (GV->hasExternalWeakLinkage())
       ExtWeakSymbols.insert(GV);
index 66319c398161ef286079d5213ff04ab8b7dc4cdd..556757aaabf3b31c0a434827b1f0a32fb0c9fdbc 100644 (file)
@@ -344,7 +344,11 @@ void X86ATTAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
         O << "@GOTOFF";
     }
 
-    printOffset(MO.getOffset());
+    int Offset = MO.getOffset();
+    if (Offset > 0)
+      O << '+' << Offset;
+    else if (Offset < 0)
+      O << Offset;
 
     if (isMemOp && Subtarget->isPICStyleRIPRel() && !NotRIPRel)
       O << "(%rip)";
@@ -425,7 +429,11 @@ void X86ATTAsmPrinter::printOperand(const MachineInstr *MI, unsigned OpNo,
     if (GV->hasExternalWeakLinkage())
       ExtWeakSymbols.insert(GV);
 
-    printOffset(MO.getOffset());
+    int Offset = MO.getOffset();
+    if (Offset > 0)
+      O << '+' << Offset;
+    else if (Offset < 0)
+      O << Offset;
 
     if (isThreadLocal) {
       if (TM.getRelocationModel() == Reloc::PIC_ || Subtarget->is64Bit())
index 1d4a695bfc969b9aea0c8fe3141e53f1db3c622f..4868906a041644d211515d43de358842f58a9aa6 100644 (file)
@@ -235,7 +235,11 @@ void X86IntelAsmPrinter::printOp(const MachineOperand &MO,
     if (!isMemOp) O << "OFFSET ";
     O << "[" << TAI->getPrivateGlobalPrefix() << "CPI"
       << getFunctionNumber() << "_" << MO.getIndex();
-    printOffset(MO.getOffset());
+    int Offset = MO.getOffset();
+    if (Offset > 0)
+      O << " + " << Offset;
+    else if (Offset < 0)
+      O << Offset;
     O << "]";
     return;
   }
@@ -254,7 +258,11 @@ void X86IntelAsmPrinter::printOp(const MachineOperand &MO,
       O << "__imp_";
     }
     O << Name;
-    printOffset(MO.getOffset());
+    int Offset = MO.getOffset();
+    if (Offset > 0)
+      O << " + " << Offset;
+    else if (Offset < 0)
+      O << Offset;
     return;
   }
   case MachineOperand::MO_ExternalSymbol: {