LLVM API Documentation
00001 //===- TableGen'erated file -------------------------------------*- C++ -*-===// 00002 // 00003 // Register Information Source Fragment 00004 // 00005 // Automatically generated file, do not edit! 00006 // 00007 //===----------------------------------------------------------------------===// 00008 00009 namespace llvm { 00010 00011 namespace { // Register classes... 00012 // FPRC Register Class... 00013 const unsigned FPRC[] = { 00014 Skeleton::F0, Skeleton::F1, Skeleton::F2, Skeleton::F3, Skeleton::F4, Skeleton::F5, Skeleton::F6, Skeleton::F7, Skeleton::F8, Skeleton::F9, Skeleton::F10, Skeleton::F11, Skeleton::F12, Skeleton::F13, Skeleton::F14, Skeleton::F15, Skeleton::F16, Skeleton::F17, Skeleton::F18, Skeleton::F19, Skeleton::F20, Skeleton::F21, Skeleton::F22, Skeleton::F23, Skeleton::F24, Skeleton::F25, Skeleton::F26, Skeleton::F27, Skeleton::F28, Skeleton::F29, Skeleton::F30, Skeleton::F31, 00015 }; 00016 00017 struct FPRCClass : public TargetRegisterClass { 00018 FPRCClass() : TargetRegisterClass(8, 8, FPRC, FPRC + 32) {} 00019 } FPRCInstance; 00020 00021 // GPRC Register Class... 00022 const unsigned GPRC[] = { 00023 Skeleton::R0, Skeleton::R1, Skeleton::R2, Skeleton::R3, Skeleton::R4, Skeleton::R5, Skeleton::R6, Skeleton::R7, Skeleton::R8, Skeleton::R9, Skeleton::R10, Skeleton::R11, Skeleton::R12, Skeleton::R13, Skeleton::R14, Skeleton::R15, Skeleton::R16, Skeleton::R17, Skeleton::R18, Skeleton::R19, Skeleton::R20, Skeleton::R21, Skeleton::R22, Skeleton::R23, Skeleton::R24, Skeleton::R25, Skeleton::R26, Skeleton::R27, Skeleton::R28, Skeleton::R29, Skeleton::R30, Skeleton::R31, 00024 }; 00025 00026 struct GPRCClass : public TargetRegisterClass { 00027 GPRCClass() : TargetRegisterClass(4, 4, GPRC, GPRC + 32) {} 00028 } GPRCInstance; 00029 00030 const TargetRegisterClass* const RegisterClasses[] = { 00031 &FPRCInstance, 00032 &GPRCInstance, 00033 }; 00034 const unsigned Empty_AliasSet[] = { 0 }; 00035 00036 const MRegisterDesc RegisterDescriptors[] = { // Descriptors 00037 { "NOREG", 0, 0, 0 }, 00038 { "CR0", Empty_AliasSet, 0, 0 }, 00039 { "CR1", Empty_AliasSet, 0, 0 }, 00040 { "CR2", Empty_AliasSet, 0, 0 }, 00041 { "CR3", Empty_AliasSet, 0, 0 }, 00042 { "CR4", Empty_AliasSet, 0, 0 }, 00043 { "CR5", Empty_AliasSet, 0, 0 }, 00044 { "CR6", Empty_AliasSet, 0, 0 }, 00045 { "CR7", Empty_AliasSet, 0, 0 }, 00046 { "CTR", Empty_AliasSet, 0, 0 }, 00047 { "F0", Empty_AliasSet, 64, 64 }, 00048 { "F1", Empty_AliasSet, 64, 64 }, 00049 { "F10", Empty_AliasSet, 64, 64 }, 00050 { "F11", Empty_AliasSet, 64, 64 }, 00051 { "F12", Empty_AliasSet, 64, 64 }, 00052 { "F13", Empty_AliasSet, 64, 64 }, 00053 { "F14", Empty_AliasSet, 64, 64 }, 00054 { "F15", Empty_AliasSet, 64, 64 }, 00055 { "F16", Empty_AliasSet, 64, 64 }, 00056 { "F17", Empty_AliasSet, 64, 64 }, 00057 { "F18", Empty_AliasSet, 64, 64 }, 00058 { "F19", Empty_AliasSet, 64, 64 }, 00059 { "F2", Empty_AliasSet, 64, 64 }, 00060 { "F20", Empty_AliasSet, 64, 64 }, 00061 { "F21", Empty_AliasSet, 64, 64 }, 00062 { "F22", Empty_AliasSet, 64, 64 }, 00063 { "F23", Empty_AliasSet, 64, 64 }, 00064 { "F24", Empty_AliasSet, 64, 64 }, 00065 { "F25", Empty_AliasSet, 64, 64 }, 00066 { "F26", Empty_AliasSet, 64, 64 }, 00067 { "F27", Empty_AliasSet, 64, 64 }, 00068 { "F28", Empty_AliasSet, 64, 64 }, 00069 { "F29", Empty_AliasSet, 64, 64 }, 00070 { "F3", Empty_AliasSet, 64, 64 }, 00071 { "F30", Empty_AliasSet, 64, 64 }, 00072 { "F31", Empty_AliasSet, 64, 64 }, 00073 { "F4", Empty_AliasSet, 64, 64 }, 00074 { "F5", Empty_AliasSet, 64, 64 }, 00075 { "F6", Empty_AliasSet, 64, 64 }, 00076 { "F7", Empty_AliasSet, 64, 64 }, 00077 { "F8", Empty_AliasSet, 64, 64 }, 00078 { "F9", Empty_AliasSet, 64, 64 }, 00079 { "FPSCR", Empty_AliasSet, 0, 0 }, 00080 { "LR", Empty_AliasSet, 0, 0 }, 00081 { "R0", Empty_AliasSet, 32, 32 }, 00082 { "R1", Empty_AliasSet, 32, 32 }, 00083 { "R10", Empty_AliasSet, 32, 32 }, 00084 { "R11", Empty_AliasSet, 32, 32 }, 00085 { "R12", Empty_AliasSet, 32, 32 }, 00086 { "R13", Empty_AliasSet, 32, 32 }, 00087 { "R14", Empty_AliasSet, 32, 32 }, 00088 { "R15", Empty_AliasSet, 32, 32 }, 00089 { "R16", Empty_AliasSet, 32, 32 }, 00090 { "R17", Empty_AliasSet, 32, 32 }, 00091 { "R18", Empty_AliasSet, 32, 32 }, 00092 { "R19", Empty_AliasSet, 32, 32 }, 00093 { "R2", Empty_AliasSet, 32, 32 }, 00094 { "R20", Empty_AliasSet, 32, 32 }, 00095 { "R21", Empty_AliasSet, 32, 32 }, 00096 { "R22", Empty_AliasSet, 32, 32 }, 00097 { "R23", Empty_AliasSet, 32, 32 }, 00098 { "R24", Empty_AliasSet, 32, 32 }, 00099 { "R25", Empty_AliasSet, 32, 32 }, 00100 { "R26", Empty_AliasSet, 32, 32 }, 00101 { "R27", Empty_AliasSet, 32, 32 }, 00102 { "R28", Empty_AliasSet, 32, 32 }, 00103 { "R29", Empty_AliasSet, 32, 32 }, 00104 { "R3", Empty_AliasSet, 32, 32 }, 00105 { "R30", Empty_AliasSet, 32, 32 }, 00106 { "R31", Empty_AliasSet, 32, 32 }, 00107 { "R4", Empty_AliasSet, 32, 32 }, 00108 { "R5", Empty_AliasSet, 32, 32 }, 00109 { "R6", Empty_AliasSet, 32, 32 }, 00110 { "R7", Empty_AliasSet, 32, 32 }, 00111 { "R8", Empty_AliasSet, 32, 32 }, 00112 { "R9", Empty_AliasSet, 32, 32 }, 00113 { "TBL", Empty_AliasSet, 0, 0 }, 00114 { "TBU", Empty_AliasSet, 0, 0 }, 00115 { "XER", Empty_AliasSet, 0, 0 }, 00116 }; 00117 } 00118 00119 namespace Skeleton { // Register classes 00120 TargetRegisterClass *FPRCRegisterClass = &FPRCInstance; 00121 TargetRegisterClass *GPRCRegisterClass = &GPRCInstance; 00122 } // end of namespace Skeleton 00123 00124 SkeletonGenRegisterInfo::SkeletonGenRegisterInfo(int CallFrameSetupOpcode, int CallFrameDestroyOpcode) 00125 : MRegisterInfo(RegisterDescriptors, 79, RegisterClasses, RegisterClasses+2, 00126 CallFrameSetupOpcode, CallFrameDestroyOpcode) {} 00127 00128 const unsigned* SkeletonGenRegisterInfo::getCalleeSaveRegs() const { 00129 static const unsigned CalleeSaveRegs[] = { 00130 Skeleton::R1, Skeleton::R13, Skeleton::R14, Skeleton::R15, Skeleton::R16, Skeleton::R17, Skeleton::R18, Skeleton::R19, Skeleton::R20, Skeleton::R21, Skeleton::R22, Skeleton::R23, Skeleton::R24, Skeleton::R25, Skeleton::R26, Skeleton::R27, Skeleton::R28, Skeleton::R29, Skeleton::R30, Skeleton::R31, Skeleton::F14, Skeleton::F15, Skeleton::F16, Skeleton::F17, Skeleton::F18, Skeleton::F19, Skeleton::F20, Skeleton::F21, Skeleton::F22, Skeleton::F23, Skeleton::F24, Skeleton::F25, Skeleton::F26, Skeleton::F27, Skeleton::F28, Skeleton::F29, Skeleton::F30, Skeleton::F31, Skeleton::CR2, Skeleton::CR3, Skeleton::CR4, 0 00131 }; 00132 return CalleeSaveRegs; 00133 } 00134 00135 } // End llvm namespace