operstrings.h

Go to the documentation of this file.
00001 // Strings for the OPER enum. Ugh! I wish C could print enums properly.
00002 // Only needed for the dotty file (a debugging nicety) so don't be
00003 // surprised if the strings become out of date.
00004 
00005 char* operStrings[] = {
00006     "opPlus",               // Binary addition
00007     "opMinus",              // Binary subtraction
00008     "opMult",               // Multiplication
00009     "opDiv",                // Integer division
00010     "opFPlus",              // Binary addition(single floats)
00011     "opFMinus",             // Binary subtraction(single floats)
00012     "opFMult",              // Multiplication(single floats)
00013     "opFDiv",               // (single floats)
00014     "opFNeg",               // Floating point negate
00015     "opFPlusd",             // addition(double floats)
00016     "opFMinusd",            // subtraction(double floats)
00017     "opFMultd",             // Multiplication(double floats)
00018     "opFDivd",              // Integer division(double floats)
00019     "opFPlusq",             // addition(quad floats)
00020     "opFMinusq",            // subtraction(quad floats)
00021     "opFMultq",             // Multiplication(quad floats)
00022     "opFDivq",              // division(quad floats)
00023     "opFMultsd",            // Multiplication(single floats--> double floats)
00024     "opFMultdq",            // Multiplication(single floats--> double floats)
00025     "opSQRTs",              // sqrt of a single
00026     "opSQRTd",              // sqrt of a double
00027     "opSQRTq",              // sqrt of a quad
00028 
00029     "opMults",              // Multiply signed
00030     "opDivs",               // Divide signed
00031     "opMod",                // Remainder of integer division
00032     "opMods",               // Remainder of signed integer division
00033     "opNeg",                // Unary minus
00034 
00035     "opAnd",                // Logical and
00036     "opOr",                 // Logical or
00037     "opEquals",             // Equality (logical)
00038     "opNotEqual",           // Logical !=
00039     "opLess",               // Logical less than (signed)
00040     "opGtr",                // Logical greater than (signed)
00041     "opLessEq",             // Logical <= (signed)
00042     "opGtrEq",              // Logical >= (signed)
00043     "opLessUns",            // Logical less than (unsigned)
00044     "opGtrUns",             // Logical greater than (unsigned)
00045     "opLessEqUns",          // Logical <= (unsigned)
00046     "opGtrEqUns",           // Logical >= (unsigned)
00047     "opUpper",              // Greater signed or unsigned; used by switch code
00048     "opLower",              // Less signed or unsigned; used by switch code
00049 
00050     "opNot",                // Bitwise inversion
00051     "opLNot",               // Logical not
00052     "opSignExt",            // Sign extend
00053     "opBitAnd",             // Bitwise and
00054     "opBitOr",              // Bitwise or
00055     "opBitXor",             // Bitwise xor
00056     "opShiftL",             // Left shift
00057     "opShiftR",             // Right shift
00058     "opShiftRA",            // Right shift arithmetic
00059     "opRotateL",            // Rotate left
00060     "opRotateR",            // Rotate right
00061     "opRotateLC",           // Rotate left through carry
00062     "opRotateRC",           // Rotate right through carry
00063     "opTargetInst",         // Target specific instruction (Unary)
00064 
00065     "opTypedExp",           // Typed expression
00066     "opNamedExp",           // Named    expression (binary, subExp1 = Const("name"), subExp2 = exp)
00067     "opGuard",              // Guarded expression (should be assignment)
00068     "opComma",              // Separate expressions in a list (e.g. params)
00069     "opFlagCall",           // A flag call (Binary with string and params)
00070     "opFlagDef",            // A flag function definition (class FlagDef)
00071     "opList",               // A binary, with expression (1) and next element
00072     "opNameTable",          // A table of strings
00073     "opExpTable",           // A table of expressions
00074     "opOpTable",            // A table of operators
00075     "opSuccessor",          // Get the successor of this register parameter
00076 
00077     "opTern",               // Ternary (i.e. ? : )
00078     "opAt",                 // Bit extraction (expr@first:last)
00079 
00080     "opRegOf",              // Represents r[]
00081     "opMemOf",              // Represents m[]
00082     "opAddrOf",             // Represents a[]
00083     "opWildMemOf",          // m[wild],
00084     "opWildRegOf",          // r[wild],
00085     "opWildAddrOf",         // a[wild],
00086     "opDefineAll",          // a wild definition
00087     "opVar",                // Represents l[] (recovered locations)
00088     "opPhi",                // Represents phi(a1, a2, a3) .. ie SSA form merging
00089     "opSubscript",          // Represents subscript(e, n) .. ie SSA renaming
00090     "opParam",              // Parameter param`'
00091     "opArg",                // Used a temporary for arguments to calls
00092     "opLocal",              // Represents a local, takes a string
00093     "opGlobal",             // Represents a global; takes a string
00094     "opExpand",             // Expandable expression
00095     "opMemberAccess",       // . and -> in C
00096     "opArrayIndex",         // [] in C
00097     "opTemp",               // Temp register name
00098     "opSize",               // Size override
00099     "opCastIntStar",        // Cast to int*
00100     "opPostVar",            // Post-instruction variable marker (unary with
00101     "opMachFtr",            // A Unary with Const(string) representing a machine specific feature (register, instruction
00102                             // or whatever; the analysis better understand it and transform it away)
00103 
00104 
00105     "opTruncu",             // Integer truncate (unsigned)
00106     "opTruncs",             // Integer truncate (signed)
00107     "opZfill",              // Integer zero fill
00108     "opSgnEx",              // Integer sign extend
00109 
00110     "opFsize",              // Floating point size conversion
00111     "opItof",               // Integer to floating point (and size) conversion
00112     "opFtoi",               // Floating point to integer (and size) conversion
00113     "opFround",             // Floating point to nearest float conversion
00114     "opFtrunc",             // Floating point to next lower e.g. 3.01 -> 3.00
00115     "opFabs",               // Floating point absolute function
00116     "opForceInt",           // Forcibly change current type to int/flt,
00117     "opForceFlt",           //  without changing any of the bits
00118     "opFpush",              // Floating point stack push
00119     "opFpop",               // Floating point stack pop
00120 
00121     "opSin",                // sine
00122     "opCos",                // cosine
00123     "opTan",                // tangent
00124     "opArcTan",             // inverse tangent
00125     "opLog2",               // logarithm to base 2
00126     "opLog10",              // logarithm to base 10
00127     "opLoge",               // logarithm to base e
00128     "opPow",                // raise to a power
00129     "opSqrt",               // square root
00130     "opExecute",            // Execute instruction at(addr)
00131 
00132     "opIntConst",           // integer constant
00133     "opLongConst",          // long integer constant
00134     "opFltConst",           // floating point constant
00135     "opStrConst",           // string constant
00136     "opFuncConst",          // function constant (pointer to function)
00137     "opWildIntConst",       // an integer constant whose value is wild
00138     "opWildStrConst",       // a string constant whose value is wild
00139 
00140 
00141     "opPC",                 // program counter
00142     "opAFP",                // abstract frame pointer
00143     "opAGP",                // abstract global pointer
00144     "opNil",                // Nil list
00145     "opFlags",              // Integer flags
00146     "opFflags",             // Floating point flags
00147 
00148     "opAnull",              // Anull "variable"
00149 
00150 
00151     "opHLCTI",              // High level Control transfer instruction
00152     "opDEFINE",             // Define Type of use with lexer
00153 
00154     "opTrue",               // Logical true
00155     "opFalse",              // Logical false
00156     "opTypeOf",             // Makes a type variable from a location
00157     "opKindOf",
00158     "opTypeVal",            // Makes a type value
00159 
00160     "opInitValueOf",        // The initial value of a location, typically the stack pointer
00161 
00162     "opZF",                 // zero flag
00163     "opCF",                 // carry flag
00164     "opNF",                 // negative flag
00165     "opOF",                 // overflow flag
00166     "opDF",                 // pentium Direction (=Down) flag
00167     "opFZF",                // floating point zero flag
00168     "opFLF",                // floating point less flag
00169     "opFGF",                // floating point greater flag
00170     "opCTI",                // Control transfer instruction (boolean)
00171     "opNEXT",               // Next PC pseudo-register
00172 };
00173 
00174 
00175 

Generated on Tue Sep 19 21:18:25 2006 for Boomerang by  doxygen 1.4.6