LLVM API Documentation
00001 //===- TableGen'erated file -------------------------------------*- C++ -*-===// 00002 // 00003 // Register Information Header Fragment 00004 // 00005 // Automatically generated file, do not edit! 00006 // 00007 //===----------------------------------------------------------------------===// 00008 00009 #include "llvm/Target/TargetRegisterInfo.h" 00010 #include <string> 00011 00012 namespace llvm { 00013 00014 struct PPCGenRegisterInfo : public TargetRegisterInfo { 00015 explicit PPCGenRegisterInfo(int CallFrameSetupOpcode = -1, int CallFrameDestroyOpcode = -1); 00016 virtual int getDwarfRegNumFull(unsigned RegNum, unsigned Flavour) const; 00017 virtual int getDwarfRegNum(unsigned RegNum, bool isEH) const = 0; 00018 virtual bool needsStackRealignment(const MachineFunction &) const 00019 { return false; } 00020 unsigned getSubReg(unsigned RegNo, unsigned Index) const; 00021 }; 00022 00023 namespace PPC { // Register classes 00024 enum { 00025 CRBITRCRegClassID = 1, 00026 CRRCRegClassID = 2, 00027 CTRRCRegClassID = 3, 00028 CTRRC8RegClassID = 4, 00029 F4RCRegClassID = 5, 00030 F8RCRegClassID = 6, 00031 G8RCRegClassID = 7, 00032 GPRCRegClassID = 8, 00033 VRRCRegClassID = 9 00034 }; 00035 00036 struct CRBITRCClass : public TargetRegisterClass { 00037 CRBITRCClass(); 00038 }; 00039 extern CRBITRCClass CRBITRCRegClass; 00040 static TargetRegisterClass * const CRBITRCRegisterClass = &CRBITRCRegClass; 00041 struct CRRCClass : public TargetRegisterClass { 00042 CRRCClass(); 00043 }; 00044 extern CRRCClass CRRCRegClass; 00045 static TargetRegisterClass * const CRRCRegisterClass = &CRRCRegClass; 00046 struct CTRRCClass : public TargetRegisterClass { 00047 CTRRCClass(); 00048 }; 00049 extern CTRRCClass CTRRCRegClass; 00050 static TargetRegisterClass * const CTRRCRegisterClass = &CTRRCRegClass; 00051 struct CTRRC8Class : public TargetRegisterClass { 00052 CTRRC8Class(); 00053 }; 00054 extern CTRRC8Class CTRRC8RegClass; 00055 static TargetRegisterClass * const CTRRC8RegisterClass = &CTRRC8RegClass; 00056 struct F4RCClass : public TargetRegisterClass { 00057 F4RCClass(); 00058 }; 00059 extern F4RCClass F4RCRegClass; 00060 static TargetRegisterClass * const F4RCRegisterClass = &F4RCRegClass; 00061 struct F8RCClass : public TargetRegisterClass { 00062 F8RCClass(); 00063 }; 00064 extern F8RCClass F8RCRegClass; 00065 static TargetRegisterClass * const F8RCRegisterClass = &F8RCRegClass; 00066 struct G8RCClass : public TargetRegisterClass { 00067 G8RCClass(); 00068 00069 iterator allocation_order_begin(const MachineFunction &MF) const; 00070 iterator allocation_order_end(const MachineFunction &MF) const; 00071 }; 00072 extern G8RCClass G8RCRegClass; 00073 static TargetRegisterClass * const G8RCRegisterClass = &G8RCRegClass; 00074 struct GPRCClass : public TargetRegisterClass { 00075 GPRCClass(); 00076 00077 iterator allocation_order_begin(const MachineFunction &MF) const; 00078 iterator allocation_order_end(const MachineFunction &MF) const; 00079 }; 00080 extern GPRCClass GPRCRegClass; 00081 static TargetRegisterClass * const GPRCRegisterClass = &GPRCRegClass; 00082 struct VRRCClass : public TargetRegisterClass { 00083 VRRCClass(); 00084 }; 00085 extern VRRCClass VRRCRegClass; 00086 static TargetRegisterClass * const VRRCRegisterClass = &VRRCRegClass; 00087 } // end of namespace PPC 00088 00089 } // End llvm namespace