Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

globals.H

Go to the documentation of this file.
00001 #ifndef LEGOGLOBALS_H
00002 #define LEGOGLOBALS_H
00003 
00004 /*
00005  *  9/04/97 WAH: Fixed typo in statystypes; added more UNDEFs.
00006  *  9/23/97 WAH: Added addrStyles enum; expanded oprdTypes, dataTypes;
00007  *               changed OT_BOOLEAN to OT_LITERAL_P.
00008  * 11/12/01 MCT: Added IA-64 opcode info: class, bases, qualifiers.
00009  */
00010 
00011 #define LARGE_INTVAL 32767
00012 #define MAX_INT 32767
00013 
00014 enum oprdTypes {
00015    OT_VACANT=0,
00016    OT_LITERAL_VO,                 // void
00017    OT_LITERAL_BO,                 // boolean (not guard)
00018    OT_LITERAL_CH,                 // char
00019    OT_LITERAL_UCH,                // unsigned char
00020    OT_LITERAL_SH,                 // short
00021    OT_LITERAL_USH,                // unsigned short
00022    OT_LITERAL_I,                  // integer (original)
00023    OT_LITERAL_UI,                 // unsigned integer
00024    OT_LITERAL_LNG,                // long
00025    OT_LITERAL_ULNG,               // unsigned long
00026    OT_LITERAL_LLNG,               // long long
00027    OT_LITERAL_ULLNG,              // unsigned long long
00028    OT_LITERAL_LLLNG,              // long long long
00029    OT_LITERAL_ULLLNG,             // unsigned long long long
00030    OT_LITERAL_PTR,                // pointer
00031    OT_LITERAL_F,                  // float (original)
00032    OT_LITERAL_D,                  // double (original)
00033    OT_LITERAL_C,                  // character (deprecated?)
00034    OT_LITERAL_L,                  // label (original)
00035    OT_LITERAL_S,                  // string (original)
00036    OT_LITERAL_CB,                 // branch target/control block (original)
00037    OT_LITERAL_P,                  // used for predicate (original)
00038    OT_REG,                        // register
00039    OT_MACRO,                      // macro
00040    OT_UNDEFINED                   // u<>, also initialization type
00041 };
00042 
00043 enum regTypes {
00044    RT_R = 0,
00045    RT_VR,                         // unbounded virt reg
00046    RT_MVR,                        // memory virt reg
00047    RT_FR,                         // floating-point reg
00048    RT_BR                          // branch reg (?)
00049 };
00050 
00051 enum dataTypes {
00052    DT_VO=0,                       // Void
00053    DT_BO,                         // Boolean (not guard)
00054    DT_CH,                         // Char
00055    DT_UCH,                        // Unsigned char
00056    DT_SH,                         // Short
00057    DT_USH,                        // Unsigned short
00058    DT_I,                          // Integer (original)
00059    DT_UI,                         // Unsigned integer
00060    DT_LNG,                        // Long
00061    DT_ULNG,                       // Unsigned long
00062    DT_LLNG,                       // Long long
00063    DT_ULLNG,                      // Unsigned long long
00064    DT_LLLNG,                      // Long long long
00065    DT_ULLLNG,                     // Unsigned long long long
00066    DT_PTR,                        // Pointer
00067    DT_F,                          // Floating-point (original)
00068    DT_D,                          // Double (original)
00069    DT_P,                          // Predicate (original)
00070    DT_B                           // Branch target (original)
00071 };
00072 
00073 enum fileTypes {
00074    FT_GPR=0,                      // general purpose register
00075    FT_FPR,                        // floating-point register
00076    FT_PR,                         // predicate register
00077    FT_BTR,                        // branch target register
00078    FT_CR                          // control register ???
00079 };
00080 
00081 enum regStyles {
00082   RS_STATIC='s',                  // static registers
00083   RS_ROTATING='r'                 // rotating registers
00084 };
00085 
00086 enum addrStyles {
00087   AS_UNDEF=0,                     // undefined
00088   AS_G_ABS,                       // visible globally, absolute addressing
00089   AS_G_GP,                        //    "       "    , GP-relative addressing
00090   AS_L_ABS,                       // visible locally,  absolute addressing
00091   AS_L_GP                         //    "       "   ,  GP-relative addressing
00092 };
00093 
00094 enum attrTypes {
00095    ATTR_UNDEF,                    // undefined
00096    ATTR_LC=1,                     // lcode
00097    ATTR_MS,                       // unimplemented
00098    ATTR_BBID,                     // basic block id
00099    ATTR_FREQ,                     // frequency
00100    ATTR_LIVE,                     // live registers
00101    //   ATTR_PROF,                     // profile attribute
00102    ATTR_TBLNAME                   // jump table name
00103 };
00104 
00105 enum edgeTypes {
00106    ET_UNDEF = 0,
00107    ET_CNTL = 1,                   // control flow
00108    ET_REGFLOW,                    // flow-dependence
00109    ET_REGANTI,                    // anti-dependence
00110    ET_REGOUT,                     // output-dependence
00111    ET_MEM,                        // memory
00112    ET_LINKDEST,                   // link for dag construction
00113    ET_LINKSRC,                    // link for dag construction
00114 };
00115 
00116 enum portTypes {
00117    PT_UNDEF = 0,
00118    PT_FIRST = 1,
00119    PT_CTL,
00120    PT_MEM,
00121    PT_SRC,
00122    PT_DEST
00123 };
00124 
00125 enum usageTypes {
00126    USAGE_UNDEF = 0,
00127    USAGE_SEM = 1,
00128    USAGE_ANN
00129 };
00130 
00131 enum statusTypes {
00132    STATUS_UNDEF = -1,
00133    STATUS_CERTAIN = 0,
00134    STATUS_MAYBE
00135 };
00136 
00137 
00138 enum opCodeClass {
00139    OC_UNDEF = 0,
00140    OC_INT,              // integer alu opcodes
00141    OC_PINT,             // integer SIMD alu opcodes
00142    OC_FP,               // floating-point alu opcodes
00143    OC_PFP,              // floating-point SIMD alu opcodes
00144    OC_CMP,              // integer compare opcodes
00145    OC_FCMP,             // floating-point compare opcodes
00146    OC_BR,               // branch opcodes
00147    OC_LDST,             // integer memory/load-store opcodes
00148    OC_FPLDST,           // floating-point memory/load-store opcodes
00149    OC_MISC,             // miscellaneous opcodes
00150    OC_VSS,              // TINKER value speculation scheduling opcodes
00151    OC_DIR               // IA-64 assembly directives
00152 };
00153 
00154  
00155 
00156 enum oprdSizeQual {
00157    OS_NA = -1,
00158    OS_B = 0,    // 1 byte
00159    OS_H,        // 2 byte
00160    OS_W,        // 4 byte
00161    OS_X,        // 8 byte
00162 };
00163 
00164 enum cmpTypeQual {
00165    CT_NA = -1,
00166    CT_NONE = 0,
00167    CT_UNC,
00168    CT_OR,
00169    CT_AND,
00170    CT_ORANDCM,
00171    CT_ORCM,
00172    CT_ANDCM,
00173    CT_ANDORCM
00174 };
00175 
00176 enum cmpRelationQual {
00177    CR_NA = -1,
00178    CR_EQ = 0,
00179    CR_NE,
00180    CR_LT,
00181    CR_LE,
00182    CR_GT,
00183    CR_GE,
00184    CR_LTU,
00185    CR_LEU,
00186    CR_GTU,
00187    CR_GEU
00188 };
00189 
00190 enum pcmpRelationQual {
00191    PCR_NA = -1,
00192    PCR_EQ = 0,
00193    PCR_GT
00194 };
00195 
00196 enum testBitRelationQual {
00197    TBR_NA = -1,
00198    TBR_NZ = 0,
00199    TBR_Z
00200 };
00201 
00202 enum fpPrecCtrlQual {
00203    FPP_NA = -1,
00204    FPP_NONE = 0,
00205    FPP_S,               // 4 bytes - single precision
00206    FPP_D                // 8 bytes - double precision
00207 };
00208 
00209 enum fpStatusFieldQual {
00210    FPSF_NA = -1,
00211    FPSF_NONE = 0,
00212    FPSF_F0,
00213    FPSF_F1,
00214    FPSF_F2,
00215    FPSF_F3
00216 };
00217 
00218 enum fpClassRelationQual {
00219    FPCR_NA = -1,
00220    FPCR_M = 0,
00221    FPCR_NM
00222 };
00223 
00224 enum fpCmpTypeQual {
00225    FCT_NA = -1,
00226    FCT_NONE = 0,
00227    FCT_UNC
00228 };
00229 
00230 enum fpCmpRelationQual {
00231    FCR_NA = -1,
00232    FCR_EQ = 0,
00233    FCR_LT,
00234    FCR_LE,
00235    FCR_GT,
00236    FCR_GE,
00237    FCR_UNORD,
00238    FCR_NEQ,
00239    FCR_NLT,
00240    FCR_NLE,
00241    FCR_NGT,
00242    FCR_NGE,
00243    FCR_ORD
00244 };
00245 
00246 enum semaphoreTypeQual {
00247    FAS_NA = -1,
00248    FAS_ACQ = 0,
00249    FAS_REL
00250 };
00251 
00252 enum loadStoreTypeQual {
00253    LST_NA = -1,
00254    LST_NONE = 0,
00255 
00256    // load types
00257    LST_S,
00258    LST_A,
00259    LST_SA,
00260    LST_CNC,
00261    LST_CC,
00262    LST_CCACQ,
00263    LST_ACQ,
00264    LST_BIAS,
00265    LST_FILL,
00266 
00267    // line fetch types
00268    LST_NONEEXC,
00269    LST_FAULT,
00270    LST_FAULTEXC,
00271 
00272    // store types
00273    LST_REL,
00274    LST_SPILL
00275 };
00276 
00277 enum loadStoreHintQual {
00278    LSH_NA = -1,
00279    LSH_NONE = 0,
00280    LSH_NT1,
00281    LSH_NT2,
00282    LSH_NTA
00283 };
00284 
00285 enum fpLoadStoreSizeQual {
00286    FLSS_NA = -1,
00287    FLSS_NONE = 0,
00288    FLSS_S,              // 4 bytes
00289    FLSS_D,              // 8 bytes
00290    FLSS_E,              // 10 bytes
00291    FLSS_I               // int format
00292 };
00293 
00294 enum branchTypeQual {
00295    BT_NA = -1,
00296    BT_NONE = 0,
00297    BT_COND,
00298    BT_CALL,
00299    BT_RET,
00300    BT_IA32,
00301    BT_CLOOP,
00302    BT_CTOP,
00303    BT_CEXIT,
00304    BT_WTOP,
00305    BT_WEXIT
00306 };
00307 
00308 enum branchPredHintQual {
00309    BH_NA = -1,
00310    BH_NONE = 0,
00311    BH_SNT,
00312    BH_ST,
00313    BH_DNT,
00314    BH_DT
00315 };
00316 
00317 enum branchPrefetchHintQual {
00318    BPH = -1,
00319    BPH_NONE = 0,
00320    BPH_FEW,
00321    BPH_MANY
00322 };
00323 
00324 enum branchDeallocHintQual {
00325    BDH_NA = -1,
00326    BDH_NONE = 0,
00327    BDH_CLR
00328 };
00329 
00330 enum alatClearQual {
00331    AC_NA = -1,
00332    AC_CLR = 0,
00333    AC_NC
00334 };
00335 
00336 enum opFormLeftRightQual {
00337    OFLR_NA = -1,
00338    OFLR_NONE = 0,
00339    OFLR_L,
00340    OFLR_R,
00341    OFLR_LR
00342 };
00343 
00344 enum opFormMergeZeroQual {
00345    OFMZ_NA = -1,
00346    OFMZ_ZERO = 0,
00347    OFMZ_MERGE
00348 };
00349 
00350 enum opFormSignQual {
00351    OFS_NA = -1,
00352    OFS_SIGNED = 0,
00353    OFS_UNSIGNED
00354 };
00355 
00356 enum opFormUnitQual {
00357    OFMU_NA = -1,
00358    OFMU_NONE = 0,
00359    OFMU_I,
00360    OFMU_B,
00361    OFMU_M,
00362    OFMU_F,
00363    OFMU_X,
00364    OFMU_RET
00365 };
00366 
00367 enum opFormHighLowQual {
00368    OFHL_NA = -1,
00369    OFHL_LOW = 0,
00370    OFHL_HIGH
00371 };
00372 
00373 enum opFormFMergeQual {
00374    OFFM_NA = -1,
00375    OFFM_SIGN = 0,
00376    OFFM_NEGSIGN,
00377    OFFM_EXP,
00378 };
00379 
00380 enum opFormGetSetFormatQual {
00381    OFFC_NA = -1,
00382    OFFC_S = 0,
00383    OFFC_D,
00384    OFFC_EXP,
00385    OFFC_SIG
00386 };
00387 
00388 enum opFormTruncQual {
00389    OFT_NA = -1,
00390    OFT_NOTRUNC = 0,
00391    OFT_TRUNC
00392 };
00393 
00394 enum opFormCvtTypeQual {
00395    OFCV_NA = -1,
00396    OFCV_FX = 0,
00397    OFCV_FXU,
00398    OFCV_XF,
00399    OFCV_XUF
00400 };
00401 
00402 enum opFormFenceQual {
00403    OFMF_NA = -1,
00404    OFMF_ORD = 0,
00405    OFMF_ACC
00406 };
00407 
00408 enum opFormSaturationQual {
00409    OFSF_NA = -1,
00410    OFSF_MOD = 0,
00411    OFSF_SSS,
00412    OFSF_USS,
00413    OFSF_UUS,
00414    OFSF_UUU
00415 };
00416 
00417 enum opFormRoundQual {
00418    OFR_NA = -1,
00419    OFR_NORM = 0,
00420    OFR_RAZ   
00421 };
00422 
00423 enum opFormRegTypeQual {
00424    OFRT_NA = -1,
00425    OFRT_GR = 0,
00426    OFRT_FR
00427 };
00428 
00429 enum opFormSpecChkQual {
00430    OFSC_NA = -1,
00431    OFSC_CONTROL = 0,
00432    OFSC_DATA
00433 };
00434 
00435 enum opFormClearRRBQual {
00436    OFCR_NA = -1,
00437    OFCR_ALL = 0,
00438    OFCR_PRED
00439 };
00440 
00441 #endif /* LEGOGLOBALS_H */

Generated on Mon Jul 21 20:24:13 2003 for TINKER LEGO DOC by doxygen 1.3.2