12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #pragma once
- /* Register types */
- enum regType
- {
- BYTE_REG,
- WORD_REG
- };
- enum condId
- {
- GLOB_VAR, /* global variable */
- REGISTER, /* register */
- LOCAL_VAR, /* negative disp */
- PARAM, /* positive disp */
- GLOB_VAR_IDX, /* indexed global variable *//*** should merge w/glob-var*/
- CONSTANT, /* constant */
- STRING, /* string */
- LONG_VAR, /* long variable */
- FUNCTION, /* function */
- OTHER /* other **** tmp solution */
- };
- enum condOp
- {
- /* For conditional expressions */
- LESS_EQUAL = 0, /* <= */
- LESS, /* < */
- EQUAL, /* == */
- NOT_EQUAL, /* != */
- GREATER, /* > */
- GREATER_EQUAL, /* >= */
- /* For general expressions */
- AND, /* & */
- OR, /* | */
- XOR, /* ^ */
- NOT, /* ~ */ /* 1's complement */
- ADD, /* + */
- SUB, /* - */
- MUL, /* * */
- DIV, /* / */
- SHR, /* >> */
- SHL, /* << */
- MOD, /* % */
- DBL_AND, /* && */
- DBL_OR, /* || */
- DUMMY /* */
- };
- /* LOW_LEVEL operand location: source or destination */
- enum opLoc
- {
- SRC, /* Source operand */
- DST, /* Destination operand */
- LHS_OP /* Left-hand side operand (for HIGH_LEVEL) */
- };
- /* Conditional Expression enumeration nodes and operators */
- enum condNodeType
- {
- UNKNOWN_OP=0,
- BOOLEAN_OP, /* condOps */
- NEGATION, /* not (2's complement) */
- ADDRESSOF, /* addressOf (&) */
- DEREFERENCE, /* contents of (*) */
- IDENTIFIER, /* {register | local | param | constant | global} */
- /* The following are only available to C programs */
- POST_INC, /* ++ (post increment) */
- POST_DEC, /* -- (post decrement) */
- PRE_INC, /* ++ (pre increment) */
- PRE_DEC /* -- (pre decrement) */
- } ;
- /* Enumeration to determine whether pIcode points to the high or low part
- * of a long number */
- enum hlFirst
- {
- HIGH_FIRST, /* High value is first */
- LOW_FIRST /* Low value is first */
- };
- /* Operand is defined, used or both flag */
- enum operDu
- {
- eDEF=0x10, /* Operand is defined */
- eUSE=0x100, /* Operand is used */
- USE_DEF, /* Operand is used and defined */
- NONE /* No operation is required on this operand */
- };
|