Printing support for more stuff
[oota-llvm.git] / lib / Target / SparcV9 / SparcV9Internals.h
index 2399a1e68b3971c6873eb6e48845c5f9fa90d040..31ec6a25b2a283965b18b106205730f2bdc266cc 100644 (file)
@@ -22,13 +22,6 @@ class UltraSparc;
 class PhyRegAlloc;
 class Pass;
 
-// OpCodeMask definitions for the Sparc V9
-// 
-const OpCodeMask       Immed           = 0x00002000; // immed or reg operand?
-const OpCodeMask       Annul           = 0x20000000; // annul delay instr?
-const OpCodeMask       PredictTaken    = 0x00080000; // predict branch taken?
-
-
 enum SparcInstrSchedClass {
   SPARC_NONE,          /* Instructions with no scheduling restrictions */
   SPARC_IEUN,          /* Integer class that can use IEU0 or IEU1 */
@@ -83,7 +76,7 @@ extern const MachineInstrDescriptor SparcMachineInstrDesc[];
 //---------------------------------------------------------------------------
 
 struct UltraSparcInstrInfo : public MachineInstrInfo {
-  UltraSparcInstrInfo(const TargetMachine& tgt);
+  UltraSparcInstrInfo();
 
   //
   // All immediate constants are in position 1 except the
@@ -560,32 +553,32 @@ public:
   // particular function.  The frame contents are obtained from the
   // MachineCodeInfoForMethod object for the given function.
   // 
-  int getFirstIncomingArgOffset  (MachineCodeForMethod& mcInfo,
+  int getFirstIncomingArgOffset  (MachineFunction& mcInfo,
                                   bool& growUp) const
   {
     growUp = true;                         // arguments area grows upwards
     return FirstIncomingArgOffsetFromFP;
   }
-  int getFirstOutgoingArgOffset  (MachineCodeForMethod& mcInfo,
+  int getFirstOutgoingArgOffset  (MachineFunction& mcInfo,
                                   bool& growUp) const
   {
     growUp = true;                         // arguments area grows upwards
     return FirstOutgoingArgOffsetFromSP;
   }
-  int getFirstOptionalOutgoingArgOffset(MachineCodeForMethod& mcInfo,
+  int getFirstOptionalOutgoingArgOffset(MachineFunction& mcInfo,
                                         bool& growUp)const
   {
     growUp = true;                         // arguments area grows upwards
     return FirstOptionalOutgoingArgOffsetFromSP;
   }
   
-  int getFirstAutomaticVarOffset (MachineCodeForMethod& mcInfo,
+  int getFirstAutomaticVarOffset (MachineFunction& mcInfo,
                                   bool& growUp) const;
-  int getRegSpillAreaOffset      (MachineCodeForMethod& mcInfo,
+  int getRegSpillAreaOffset      (MachineFunction& mcInfo,
                                   bool& growUp) const;
-  int getTmpAreaOffset           (MachineCodeForMethod& mcInfo,
+  int getTmpAreaOffset           (MachineFunction& mcInfo,
                                   bool& growUp) const;
-  int getDynamicAreaOffset       (MachineCodeForMethod& mcInfo,
+  int getDynamicAreaOffset       (MachineFunction& mcInfo,
                                   bool& growUp) const;
 
   //
@@ -709,7 +702,6 @@ public:
 //---------------------------------------------------------------------------
 
 class UltraSparc : public TargetMachine {
-private:
   UltraSparcInstrInfo instrInfo;
   UltraSparcSchedInfo schedInfo;
   UltraSparcRegInfo   regInfo;
@@ -726,17 +718,19 @@ public:
   virtual const MachineCacheInfo &getCacheInfo() const { return cacheInfo; }
   virtual const MachineOptInfo   &getOptInfo()   const { return optInfo; }
 
-  // getPrologEpilogCodeInserter - Inserts prolog/epilog code.
-  virtual Pass* getPrologEpilogInsertionPass();
+  virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out);
+
+  // getPrologEpilogInsertionPass - Inserts prolog/epilog code.
+  Pass* getPrologEpilogInsertionPass();
 
   // getFunctionAsmPrinterPass - Writes out machine code for a single function
-  virtual Pass* getFunctionAsmPrinterPass(std::ostream &Out);
+  Pass* getFunctionAsmPrinterPass(std::ostream &Out);
 
   // getModuleAsmPrinterPass - Writes generated machine code to assembly file.
-  virtual Pass* getModuleAsmPrinterPass(std::ostream &Out);
+  Pass* getModuleAsmPrinterPass(std::ostream &Out);
 
   // getEmitBytecodeToAsmPass - Emits final LLVM bytecode to assembly file.
-  virtual Pass* getEmitBytecodeToAsmPass(std::ostream &Out);
+  Pass* getEmitBytecodeToAsmPass(std::ostream &Out);
 };
 
 #endif