⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ic.h

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
                                //------------------------------------------
, IC( IC_DBG_LINE, BIN )        // - set debugging line number
, IC( IC_DBG_SRCFILE, SRC )     // - set source-file for line

                                // Data Initialization Codes
                                //------------------------------------------
, IC( IC_INIT_BEG, SYM )        // - indicate begin of initialization
, IC( IC_INIT_DONE, NUL )       // - indicate end of initialization
, IC( IC_INIT_TEST, SYM )       // - start of init-test for function static
//| OE_COUNT
, IC( IC_INIT_REF_BEG, SYM )    // - start init of dtor-temp for ref.init
//| OE_COUNT
, IC( IC_INIT_REF_END, NUL )    // - complete init of dtor-temp for ref.init
, IC( IC_INIT_SYM_BEG, NUL )    // - start of init of symbol
//| OE_COUNT
, IC( IC_INIT_SYM_END, SYM )    // - end of init of symbol
, IC( IC_COMPCTOR_BEG, BIN )    // - start component ctor with dtorable temp.s
//| OE_COUNT
, IC( IC_COMPCTOR_END, BIN )    // - end component ctor with dtorable temp.s
, IC( IC_DTOBJ_PUSH, TYP )      // - dtorable object: start initialization
//| OE_COUNT
, IC( IC_DTOBJ_POP, NUL )       // - dtorable object: complete initialization
, IC( IC_DTOBJ_SYM, SYM )       // - dtorable object: symbol for initialization
, IC( IC_DTOBJ_OFF, BIN )       // - dtorable object: offset for initialization
, IC( IC_DTARRAY_INDEX, BIN )   // - dtorable component: array element initialized

                                // Handling of inline arguments
                                //------------------------------------------
, IC( IC_RARG_FETCH, SYM )      // - fetch reference argument
//| OE_COUNT
, IC( IC_RARG_PARM, SYM )       // - reference arg. is an argument
, IC( IC_RARG_SYM, SYM )        // - reference arg. is a symbol
, IC( IC_RARG_FUNC, BIN )       // - corresponding symbol in function scope
, IC( IC_RARG_OFFSET, BIN )     // - set offset from a reference argument

                                // Exception Handling
                                //------------------------------------------
, IC( IC_TRY, SYM )             // - try block: start
//| OE_COUNT
, IC( IC_CTOR_END, NUL )        // - end of object CTOR
//| OE_COUNT
, IC( IC_CATCH_VAR, SYM )       // - set variable for next catch
//| OE_COUNT
, IC( IC_CATCH, TYP )           // - catch block
//| OE_COUNT
, IC( IC_EXCEPT_SPEC, TYP )     // - function exception specification (type)
//| OE_COUNT
, IC( IC_EXCEPT_FUN, NUL )      // - completion of above
//| OE_COUNT
, IC( IC_THROW_RO_BLK, TYP )    // - throw's R/O block
, IC( IC_AFTER_ABORTS, NUL )    // - reset after aborts
//| OE_COUNT
, IC( IC_AFTER_THROW, NUL )     // - reset after C++ throw
//| OE_COUNT
, IC( IC_TRY_DONE, SYM )        // - completion of try block
//| OE_COUNT
, IC( IC_SETJMP_DTOR, NUL )     // - destruction for setjmp != 0 return
//| OE_COUNT
, IC( IC_SET_LABEL_SV, NUL )    // - set state at label
, IC( IC_TRY_CATCH_DONE, SCP )  // - try/catch completed, w/o dtoring
//| OE_COUNT

                                // Based Operations
                                //------------------------------------------
, IC( IC_SEGOP_SEG, BIN )       // - set segment #
, IC( IC_SEGNAME, SYM )         // - __segname( ... ) ==> segment

                                // Operations for new and new[]
                                //-----------------------------
, IC( IC_NEW_ALLOC, NUL )       // - signal new expression (to be duplicated)
, IC( IC_NEW_CTORED, TYP )      // - signal completion of new ctor

                                // Operations for virtual bases
                                //-----------------------------
, IC( IC_VB_EXACT, BIN )        // - virtual base: type
, IC( IC_VB_DELTA, BIN )        // - virtual base: virtual delta
, IC( IC_VB_OFFSET, BIN )       // - virtual base: virtual offset
, IC( IC_VB_INDEX, BIN )        // - virtual base: exact index
, IC( IC_VB_FETCH, SYM )        // - compute virtual base from argument
//| OE_COUNT
, IC( IC_RARG_VBOFFSET, BIN )   // - set IBP offset for IC_VB_FETCH parm.

                                // Operations for virtual functions
                                //---------------------------------
, IC( IC_VF_OFFSET, BIN )       // - virtual fun: offset to vft
, IC( IC_VF_INDEX, BIN )        // - virtual fun: index in vft
, IC( IC_VF_THIS, SYM )         // - virtual fun: this arg.
, IC( IC_SETUP_VFUN, SYM )      // - virtual fun: setup for call
, IC( IC_CALL_EXEC_VFUN, NUL )  // - execute call (virtual function)
, IC( IC_VF_THIS_ADJ, NUL )     // - do "this" adjustment for virt call
, IC( IC_VF_CODED, NUL )        // - virtual call has been coded
, IC( IC_VFUN_PTR, NUL )        // - specify vfun "this"

                                // Operations on extra CTOR/DTOR arg
                                //------------------------------------------
, IC( IC_CDARG_TEST_ON, BIN )   // - code for CDARG test, branch if on
, IC( IC_CDARG_TEST_OFF, BIN )  // - code for CDARG test, branch if off
, IC( IC_CDARG_LABEL, NUL )     // - emit label for CDARG test
, IC( IC_CDARG_VAL, BIN )       // - leaf: CDTOR arg. value
//| OE_COUNT
, IC( IC_CDARG_FETCH, BIN )     // - specify CDTOR arg. value
//| OE_COUNT

                                // Decoration for scope-call optimizations
                                //----------------------------------------
, IC( IC_SCOPE_CALL_FUN, SYM )  // - function for scope-call optimization
, IC( IC_SCOPE_CALL_GEN, NUL )  // - indicate don't optimize
, IC( IC_SCOPE_CALL_TDTOR, SYM )// - temporary dtor for scope-call optimization
, IC( IC_SCOPE_CALL_BDTOR, SYM )// - scope dtor for scope-call optimization
, IC( IC_SCOPE_THROW, NUL )     // - indicate a THROW or equivalent
, IC( IC_SCOPE_CALL_CDTOR, SYM )// - component dtor for scope-call optimization
, IC( IC_STMT_SCOPE_END, NUL )  // - signal end of statement scope

                                // Operations for delete and delete[]
                                //-----------------------------------
, IC( IC_DLT_DTOR_ARR, SYM )    // - start dtoring array to be deleted
, IC( IC_DLT_DTOR_ELM, SYM )    // - start dtoring element to be deleted
, IC( IC_DLT_DTOR_SIZE, BIN)    // - size of dtoring element in delete area
, IC( IC_DLT_DTORED, NUL )      // - completed dtoring of object be deleted

                                // IC parm stack support (fixed size depth)
                                //------------------------------------------
, IC( IC_PARM_BIN, BIN )        // push an integer on the IC code parm stack
, IC( IC_PARM_SYM, SYM )        // push a SYMBOL on the IC code parm stack
, IC( IC_PARM_TYP, TYP )        // push a TYPE on the IC code parm stack
, IC( IC_PARM_SCP, SCP )        // push a SCOPE on the IC code parm stack
, IC( IC_PARM_XXX, NUL )        // padding

#if defined(_IN_ICMASK) || !defined(NDEBUG)
                                // Internal Debugging
                                //------------------------------------------
, IC( IC_TRACE_BEG, NUL )       // - start IC instruction trace
, IC( IC_TRACE_END, NUL )       // - stop IC instruction trace

#endif

                                // virtual function thunk adjustments
                                //------------------------------------------
, IC( IC_VTHUNK_MDELTA, BIN )   // - this -= delta;
//| OE_COUNT
, IC( IC_VTHUNK_PDELTA, BIN )   // - this += delta;
//| OE_COUNT
, IC( IC_VTHUNK_CDISP, NUL )    // - this -= *((unsigned*)this-sizeof(unsigned))
//| OE_COUNT
, IC( IC_VTHUNK_VBASE, BIN )    // - this += (*this)[i]
//| OE_COUNT

#if defined(_IN_ICMASK) || _CPU == _AXP
                                // ALPHA-SPECIFIC CODES
                                //------------------------------------------
, IC( IC_ALLOCA, BIN )          // - support for alloca
//| OE_COUNT

#endif


                                // return optimizations
                                //------------------------------------------
, IC( IC_RETNOPT_BEG,NUL )      // - return sequence: start
, IC( IC_RETNOPT_END,NUL )      // - end marker
, IC( IC_RETNOPT_VAR,SYM )      // - sequence for var, not optimized away

                                // RTTI
                                //------------------------------------------
, IC( IC_RTTI_REF, SYM )        // - reference RTTI info sym

                                // PCH opcodes
                                //------------------------------------------
, IC( IC_PCH_PAD, NUL )         // - used to pad out CGFILE PCH

                                // BROWSE-INFO OPCODES
                                //------------------------------------------
, IC( IC_BR_SRC_BEG, BIN )      // - start of browse info for a source
, IC( IC_BR_SRC_END, NUL )      // - end of browse info for a source
, IC( IC_BR_INC_SRC, BIN )      // - source name for inclusion
, IC( IC_BR_DCL_CLASS, TYP )    // - declare: class
, IC( IC_BR_DCL_MACRO, BIN )    // - declare: macro
, IC( IC_BR_DCL_TDEF, SYM )     // - declare: typedef
, IC( IC_BR_DCL_VAR, SYM )      // - declare: variable
, IC( IC_BR_DCL_FUN, SYM )      // - declare: function
, IC( IC_BR_REF_LOC, BIN )      // - reference: function
, IC( IC_BR_REF_FUN, SYM )      // - reference: function
, IC( IC_BR_REF_CLM, SYM )      // - reference: class data member
, IC( IC_BR_REF_VAR, SYM )      // - reference: variable
, IC( IC_BR_REF_TYPE, TYP )     // - reference: type
, IC( IC_BR_REF_EVAL, SYM )     // - reference: enumeration value
, IC( IC_BR_REF_EVAR, SYM )     // - reference: enumeration variable
, IC( IC_BR_REF_MACRO, BIN )    // - reference: macro value
, IC( IC_BR_REF_UMACRO, BIN )   // - reference: undefined macro
, IC( IC_BR_REFTO_FILE, SRC )   // - reference to file
, IC( IC_BR_REFTO_LINE, BIN )   // - reference to line
, IC( IC_BR_REFTO_COL, BIN )    // - reference to column
, IC( IC_BR_REFTO_LINECOL, BIN) // - reference to line(3 bytes) col(1 byte)
, IC( IC_BR_SCOPE_OPN, SCP )    // - open scope
, IC( IC_BR_SCOPE_CLS, SCP )    // - close scope
, IC( IC_BR_NO_OP, NUL )        // - no operation

                                // Add new opcodes here to avoid global re-compile
                                //------------------------------------------

, IC( IC_TYPEID_REF, SYM )      // - typeid lvalue referenced
, IC( IC_BR_PCH, BIN )          // - PCH file reference

                                // Padding for patching
                                //------------------------------------------

, IC( IC_INIT_AUTO, SYM )       // - copy static init block to this auto symbol
, IC( IC_CALL_PARM_FLT, NUL )   // - define parameter for call (set float_used)
, IC( IC_DTOR_KIND, BIN )       // - kind of dtor following a ctor call
//| OE_COUNT

//, IC( IC_EXTRA1, NUL )
//, IC( IC_EXTRA2, NUL )
//, IC( IC_EXTRA3, NUL )
, IC( IC_EXTRA4, NUL )
, IC( IC_EXTRA5, NUL )
, IC( IC_EXTRA6, NUL )
, IC( IC_EXTRA7, NUL )
, IC( IC_EXTRA8, NUL )
, IC( IC_EXTRA9, NUL )

                                // End of Codes
                                //------------------------------------------
, IC( IC_END, NUL )             // - can be used as terminator
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -