[llvm-commits] [llvm] r54536 - /llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp

Anton Korobeynikov asl at math.spbu.ru
Fri Aug 8 11:23:00 PDT 2008


Author: asl
Date: Fri Aug  8 13:22:59 2008
New Revision: 54536

URL: http://llvm.org/viewvc/llvm-project?rev=54536&view=rev
Log:
Cleanup

Modified:
    llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp

Modified: llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp?rev=54536&r1=54535&r2=54536&view=diff

==============================================================================
--- llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp (original)
+++ llvm/trunk/lib/Target/PowerPC/PPCAsmPrinter.cpp Fri Aug  8 13:22:59 2008
@@ -87,7 +87,7 @@
 
     void printMachineInstruction(const MachineInstr *MI);
     void printOp(const MachineOperand &MO);
-    
+
     /// stripRegisterPrefix - This method strips the character prefix from a
     /// register name so that only the number is left.  Used by for linux asm.
     const char *stripRegisterPrefix(const char *RegName) {
@@ -97,22 +97,22 @@
       case 'v': return RegName + 1;
       case 'c': if (RegName[1] == 'r') return RegName + 2;
       }
-       
+
       return RegName;
     }
-    
+
     /// printRegister - Print register according to target requirements.
     ///
     void printRegister(const MachineOperand &MO, bool R0AsZero) {
       unsigned RegNo = MO.getReg();
       assert(TargetRegisterInfo::isPhysicalRegister(RegNo) && "Not physreg??");
-      
+
       // If we should use 0 for R0.
       if (R0AsZero && RegNo == PPC::R0) {
         O << "0";
         return;
       }
-      
+
       const char *RegName = TM.getRegisterInfo()->get(RegNo).AsmName;
       // Linux assembler (Others?) does not take register mnemonics.
       // FIXME - What about special registers used in mfspr/mtspr?
@@ -130,13 +130,13 @@
         printOp(MO);
       }
     }
-    
+
     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 printS5ImmOperand(const MachineInstr *MI, unsigned OpNo) {
       char value = MI->getOperand(OpNo).getImm();
       value = (value << (32-5)) >> (32-5);
@@ -202,7 +202,7 @@
           return;
         }
       }
-      
+
       printOp(MI->getOperand(OpNo));
     }
     void printAbsAddrOperand(const MachineInstr *MI, unsigned OpNo) {
@@ -249,7 +249,7 @@
     void printMemRegImm(const MachineInstr *MI, unsigned OpNo) {
       printSymbolLo(MI, OpNo);
       O << '(';
-      if (MI->getOperand(OpNo+1).isRegister() && 
+      if (MI->getOperand(OpNo+1).isRegister() &&
           MI->getOperand(OpNo+1).getReg() == PPC::R0)
         O << "0";
       else
@@ -259,17 +259,17 @@
     void printMemRegImmShifted(const MachineInstr *MI, unsigned OpNo) {
       if (MI->getOperand(OpNo).isImmediate())
         printS16X4ImmOperand(MI, OpNo);
-      else 
+      else
         printSymbolLo(MI, OpNo);
       O << '(';
-      if (MI->getOperand(OpNo+1).isRegister() && 
+      if (MI->getOperand(OpNo+1).isRegister() &&
           MI->getOperand(OpNo+1).getReg() == PPC::R0)
         O << "0";
       else
         printOperand(MI, OpNo+1);
       O << ')';
     }
-    
+
     void printMemRegReg(const MachineInstr *MI, unsigned OpNo) {
       // When used as the base register, r0 reads constant zero rather than
       // the value contained in the register.  For this reason, the darwin
@@ -279,23 +279,23 @@
       O << ", ";
       printOperand(MI, OpNo+1);
     }
-    
-    void printPredicateOperand(const MachineInstr *MI, unsigned OpNo, 
+
+    void printPredicateOperand(const MachineInstr *MI, unsigned OpNo,
                                const char *Modifier);
-    
+
     virtual bool runOnMachineFunction(MachineFunction &F) = 0;
     virtual bool doFinalization(Module &M) = 0;
 
     virtual void EmitExternalGlobal(const GlobalVariable *GV);
   };
 
-  /// LinuxAsmPrinter - PowerPC assembly printer, customized for Linux
-  struct VISIBILITY_HIDDEN LinuxAsmPrinter : public PPCAsmPrinter {
+  /// PPCLinuxAsmPrinter - PowerPC assembly printer, customized for Linux
+  struct VISIBILITY_HIDDEN PPCLinuxAsmPrinter : public PPCAsmPrinter {
 
     DwarfWriter DW;
     MachineModuleInfo *MMI;
 
-    LinuxAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
+    PPCLinuxAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
                     const TargetAsmInfo *T)
       : PPCAsmPrinter(O, TM, T), DW(O, this, T), MMI(0) {
     }
@@ -307,7 +307,7 @@
     bool runOnMachineFunction(MachineFunction &F);
     bool doInitialization(Module &M);
     bool doFinalization(Module &M);
-    
+
     void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.setPreservesAll();
       AU.addRequired<MachineModuleInfo>();
@@ -319,26 +319,26 @@
     virtual std::string getSectionForFunction(const Function &F) const;
   };
 
-  /// DarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac OS
-  /// X
-  struct VISIBILITY_HIDDEN DarwinAsmPrinter : public PPCAsmPrinter {
-  
+  /// PPCDarwinAsmPrinter - PowerPC assembly printer, customized for Darwin/Mac
+  /// OS X
+  struct VISIBILITY_HIDDEN PPCDarwinAsmPrinter : public PPCAsmPrinter {
+
     DwarfWriter DW;
     MachineModuleInfo *MMI;
 
-    DarwinAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
-                     const TargetAsmInfo *T)
+    PPCDarwinAsmPrinter(std::ostream &O, PPCTargetMachine &TM,
+                        const TargetAsmInfo *T)
       : PPCAsmPrinter(O, TM, T), DW(O, this, T), MMI(0) {
     }
 
     virtual const char *getPassName() const {
       return "Darwin PPC Assembly Printer";
     }
-    
+
     bool runOnMachineFunction(MachineFunction &F);
     bool doInitialization(Module &M);
     bool doFinalization(Module &M);
-    
+
     void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.setPreservesAll();
       AU.addRequired<MachineModuleInfo>();
@@ -400,12 +400,12 @@
       }
     }
     O << Name;
-    
+
     if (MO.getOffset() > 0)
       O << "+" << MO.getOffset();
     else if (MO.getOffset() < 0)
       O << MO.getOffset();
-    
+
     if (GV->hasExternalWeakLinkage())
       ExtWeakSymbols.insert(GV);
     return;
@@ -432,19 +432,19 @@
 /// PrintAsmOperand - Print out an operand for an inline asm expression.
 ///
 bool PPCAsmPrinter::PrintAsmOperand(const MachineInstr *MI, unsigned OpNo,
-                                    unsigned AsmVariant, 
+                                    unsigned AsmVariant,
                                     const char *ExtraCode) {
   // Does this asm operand have a single letter operand modifier?
   if (ExtraCode && ExtraCode[0]) {
     if (ExtraCode[1] != 0) return true; // Unknown modifier.
-    
+
     switch (ExtraCode[0]) {
     default: return true;  // Unknown modifier.
     case 'c': // Don't print "$" before a global var name or constant.
       // PPC never has a prefix.
       printOperand(MI, OpNo);
       return false;
-    case 'L': // Write second word of DImode reference.  
+    case 'L': // Write second word of DImode reference.
       // Verify that this operand has two consecutive registers.
       if (!MI->getOperand(OpNo).isRegister() ||
           OpNo+1 == MI->getNumOperands() ||
@@ -460,13 +460,13 @@
       return false;
     }
   }
-  
+
   printOperand(MI, OpNo);
   return false;
 }
 
 bool PPCAsmPrinter::PrintAsmMemoryOperand(const MachineInstr *MI, unsigned OpNo,
-                                          unsigned AsmVariant, 
+                                          unsigned AsmVariant,
                                           const char *ExtraCode) {
   if (ExtraCode && ExtraCode[0])
     return true; // Unknown modifier.
@@ -477,7 +477,7 @@
   return false;
 }
 
-void PPCAsmPrinter::printPredicateOperand(const MachineInstr *MI, unsigned OpNo, 
+void PPCAsmPrinter::printPredicateOperand(const MachineInstr *MI, unsigned OpNo,
                                           const char *Modifier) {
   assert(Modifier && "Must specify 'cc' or 'reg' as predicate op modifier!");
   unsigned Code = MI->getOperand(OpNo).getImm();
@@ -493,7 +493,7 @@
     case PPC::PRED_UN: O << "un"; return;
     case PPC::PRED_NU: O << "nu"; return;
     }
-      
+
   } else {
     assert(!strcmp(Modifier, "reg") &&
            "Need to specify 'cc' or 'reg' as predicate op modifier!");
@@ -564,18 +564,18 @@
 /// runOnMachineFunction - This uses the printMachineInstruction()
 /// method to print assembly for each instruction.
 ///
-bool LinuxAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
+bool PPCLinuxAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
 
   SetupMachineFunction(MF);
   O << "\n\n";
-  
+
   // Print out constants referenced by the function
   EmitConstantPool(MF.getConstantPool());
 
   // Print out labels for the function.
   const Function *F = MF.getFunction();
   SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
-  
+
   switch (F->getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::InternalLinkage:  // Symbols default to internal.
@@ -590,11 +590,11 @@
     O << "\t.weak\t" << CurrentFnName << '\n';
     break;
   }
-  
+
   if (F->hasHiddenVisibility())
     if (const char *Directive = TAI->getHiddenDirective())
       O << Directive << CurrentFnName << "\n";
-  
+
   EmitAlignment(2, F);
   O << CurrentFnName << ":\n";
 
@@ -620,17 +620,17 @@
 
   // Print out jump tables referenced by the function.
   EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-  
+
   // Emit post-function debug information.
   DW.EndFunction();
-  
+
   // We didn't modify anything.
   return false;
 }
 
-bool LinuxAsmPrinter::doInitialization(Module &M) {
+bool PPCLinuxAsmPrinter::doInitialization(Module &M) {
   bool Result = AsmPrinter::doInitialization(M);
-  
+
   // Emit initial debug information.
   DW.BeginModule(&M);
 
@@ -643,7 +643,7 @@
   Mang->setUseQuotes(true);
 
   SwitchToTextSection(TAI->getTextSection());
-  
+
   return Result;
 }
 
@@ -656,14 +656,14 @@
       OS << *Name;
 }
 
-bool LinuxAsmPrinter::doFinalization(Module &M) {
+bool PPCLinuxAsmPrinter::doFinalization(Module &M) {
   const TargetData *TD = TM.getTargetData();
 
   // Print out module-level global variables here.
   for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
        I != E; ++I) {
     if (!I->hasInitializer()) continue;   // External global require no code
-    
+
     // Check to see if this is a special global used by LLVM, if so, emit it.
     if (EmitSpecialLLVMGlobal(I))
       continue;
@@ -673,7 +673,7 @@
     if (I->hasHiddenVisibility())
       if (const char *Directive = TAI->getHiddenDirective())
         O << Directive << name << "\n";
-    
+
     Constant *C = I->getInitializer();
     unsigned Size = TD->getABITypeSize(C->getType());
     unsigned Align = TD->getPreferredAlignmentLog(I);
@@ -770,7 +770,7 @@
   return AsmPrinter::doFinalization(M);
 }
 
-std::string LinuxAsmPrinter::getSectionForFunction(const Function &F) const {
+std::string PPCLinuxAsmPrinter::getSectionForFunction(const Function &F) const {
   switch (F.getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::ExternalLinkage:
@@ -781,7 +781,7 @@
   }
 }
 
-std::string DarwinAsmPrinter::getSectionForFunction(const Function &F) const {
+std::string PPCDarwinAsmPrinter::getSectionForFunction(const Function &F) const {
   switch (F.getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::ExternalLinkage:
@@ -795,7 +795,7 @@
 /// runOnMachineFunction - This uses the printMachineInstruction()
 /// method to print assembly for each instruction.
 ///
-bool DarwinAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
+bool PPCDarwinAsmPrinter::runOnMachineFunction(MachineFunction &MF) {
 
   SetupMachineFunction(MF);
   O << "\n\n";
@@ -806,7 +806,7 @@
   // Print out labels for the function.
   const Function *F = MF.getFunction();
   SwitchToTextSection(getSectionForFunction(*F).c_str(), F);
-  
+
   switch (F->getLinkage()) {
   default: assert(0 && "Unknown linkage type!");
   case Function::InternalLinkage:  // Symbols default to internal.
@@ -820,11 +820,11 @@
     O << "\t.weak_definition\t" << CurrentFnName << "\n";
     break;
   }
-  
+
   if (F->hasHiddenVisibility())
     if (const char *Directive = TAI->getHiddenDirective())
       O << Directive << CurrentFnName << "\n";
-  
+
   EmitAlignment(OptimizeForSize ? 2 : 4, F);
   O << CurrentFnName << ":\n";
 
@@ -856,16 +856,16 @@
 
   // Print out jump tables referenced by the function.
   EmitJumpTableInfo(MF.getJumpTableInfo(), MF);
-  
+
   // Emit post-function debug information.
   DW.EndFunction();
-  
+
   // We didn't modify anything.
   return false;
 }
 
 
-bool DarwinAsmPrinter::doInitialization(Module &M) {
+bool PPCDarwinAsmPrinter::doInitialization(Module &M) {
   static const char *const CPUDirectives[] = {
     "",
     "ppc",
@@ -887,9 +887,9 @@
     Directive = PPC::DIR_64;
   assert(Directive <= PPC::DIR_64 && "Directive out of range.");
   O << "\t.machine " << CPUDirectives[Directive] << "\n";
-     
+
   bool Result = AsmPrinter::doInitialization(M);
-  
+
   // Emit initial debug information.
   DW.BeginModule(&M);
 
@@ -901,7 +901,7 @@
 
   // Darwin wants symbols to be quoted if they have complex names.
   Mang->setUseQuotes(true);
-  
+
   // Prime text sections so they are adjacent.  This reduces the likelihood a
   // large data or debug section causes a branch to exceed 16M limit.
   SwitchToTextSection("\t.section __TEXT,__textcoal_nt,coalesced,"
@@ -914,18 +914,18 @@
                         "pure_instructions,16");
   }
   SwitchToTextSection(TAI->getTextSection());
-  
+
   return Result;
 }
 
-bool DarwinAsmPrinter::doFinalization(Module &M) {
+bool PPCDarwinAsmPrinter::doFinalization(Module &M) {
   const TargetData *TD = TM.getTargetData();
 
   // Print out module-level global variables here.
   for (Module::const_global_iterator I = M.global_begin(), E = M.global_end();
        I != E; ++I) {
     if (!I->hasInitializer()) continue;   // External global require no code
-    
+
     // Check to see if this is a special global used by LLVM, if so, emit it.
     if (EmitSpecialLLVMGlobal(I)) {
       if (TM.getRelocationModel() == Reloc::Static) {
@@ -936,13 +936,13 @@
       }
       continue;
     }
-    
+
     std::string name = Mang->getValueName(I);
-    
+
     if (I->hasHiddenVisibility())
       if (const char *Directive = TAI->getHiddenDirective())
         O << Directive << name << "\n";
-    
+
     Constant *C = I->getInitializer();
     const Type *Type = C->getType();
     unsigned Size = TD->getABITypeSize(Type);
@@ -1156,7 +1156,6 @@
         O << "\t.quad\t0\n";
       else
         O << "\t.long\t0\n";
-        
     }
   }
 
@@ -1184,9 +1183,8 @@
   const PPCSubtarget *Subtarget = &tm.getSubtarget<PPCSubtarget>();
 
   if (Subtarget->isDarwin()) {
-    return new DarwinAsmPrinter(o, tm, tm.getTargetAsmInfo());
+    return new PPCDarwinAsmPrinter(o, tm, tm.getTargetAsmInfo());
   } else {
-    return new LinuxAsmPrinter(o, tm, tm.getTargetAsmInfo());
+    return new PPCLinuxAsmPrinter(o, tm, tm.getTargetAsmInfo());
   }
 }
-





More information about the llvm-commits mailing list