cgbackut.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,466 行 · 第 1/4 页

H
1,466
字号
    FN_CTL* fctl )              // - current function information
;
DTREG_OBJ* DtregObj(            // LOCATE RW_DTREG_OBJ SYMBOL
    FN_CTL* fctl )              // - current function information
;
unsigned FnCtlCondFlagCtor(     // GET FLAG # FOR CTOR-TEST
    FN_CTL *fctl )              // - current function information
;
unsigned FnCtlCondFlagExpr(     // START FLAGS OFFSET FOR EXPRESSION
    FN_CTL *fctl )              // - current function information
;
unsigned FnCtlCondFlagNext(     // GET NEXT FLAG OFFSET FOR EXPRESSION
    FN_CTL *fctl )              // - current function information
;
SYMBOL FnCtlNewCtorPtr(         // GET SYMBOL FOR NEW-CTORED PTR.
    FN_CTL *fctl )              // - current function information
;
void FnCtlPop(                  // POP FILE CONTROL
    void )
;
FN_CTL *FnCtlPush(              // PUSH FILE CONTROL
    call_handle handle,         // - handle for IBRP substitution
    CGFILE *cgfile )            // - fn's CGFILE
;
FN_CTL* FnCtlPrev(              // GET PREVIOUS FN_CTL ITEM
    FN_CTL* curr )              // - current file control
;
FN_CTL* FnCtlTop(               // GET TOP FN_CTL ITEM
    void )
;
void FreeDtregObjs(             // FREE OBJECT REGISTRATIONS (FUNCTION)
    void )
;
SE* FstabActualPosn(            // GET ACTUAL POSITION IN STATE TABLE
    void )
;
SE* FstabAdd(                   // ADD STATE ENTRY TO STATE TABLE
    SE* se )                    // - state entry
;
void FstabAssignStateVar(       // EMIT CODE TO ASSIGN STATE VARIABLE
    SE* se )                    // - NULL or state entry to be set
;
SE* FstabCtorTest(              // ALLOCATE CTOR-TEST COMMAND
    FN_CTL* fctl )              // - function being emitted
;
SE* FstabCurrPosn(              // GET CURRENT STATE ENTRY FOR FUNCTION
    void )
;
void FstabDeRegister(           // DE-REGISTER FUNCTION
    FN_CTL* fctl )              // - function control
;
void FstabRegister(             // REGISTER FUNCTION
    FN_CTL* fctl )              // - function control
;
#ifndef NDEBUG
void FstabDump(                 // DEBUG ONLY: DUMP FUNCTION STATE TABLE
    void )
;
#endif
cg_name FstabEmitStateVar(      // EMIT CODE TO SET STATE VARIABLE, IF REQ'D
    SE* se,                     // - NULL or state entry to be set
    FN_CTL* fctl )              // - function being emitted
;
void FstabEmitStateVarExpr(     // EMIT EXPR'N TO SET STATE VARIABLE, IF REQ'D
    SE* se,                     // - NULL or state entry to be set
    FN_CTL* fctl )              // - function being emitted
;
cg_name FstabEmitStateVarPatch( // EMIT CODE TO PATCH STATE VARIABLE, IF REQ'D
    patch_handle* a_handle,     // - addr[ handle ]
    FN_CTL* fctl )              // - function being emitted
;
#if _CPU == _AXP
SYMBOL FstabExcData(            // ALPHA: SET EXCEPTION DATA
    void )
;
SYMBOL FstabExcHandler(         // ALPHA: SET EXCEPTION HANDLER
    void )
;
SYMBOL FstabExcRw(              // ALPHA: GET R/W DATA SYMBOL
    void )
;
#endif
SE* FstabFindAuto(              // FIND AUTO VAR ENTRY IN STATE TABLE
    SYMBOL auto_var )           // - the auto variable
;
boolean FstabGenerate(          // GENERATE FUNCTION STATE TABLE
    void )
;
boolean FstabHasStateTable(     // DETERMINE IF STATE TABLE BEING GEN'ED
    void )
;
void FstabInit(                 // INITIALIZE FUNCTION STATE TABLE
    void )
;
SE* FstabMarkedPosn(            // GET MARKED POSITION
    void )
;
SE* FstabMarkedPosnSet(         // SET MARKED POSITION
    SE* se )                    // - new position
;
SE* FstabPosnGened(             // GET GENNED POSITION IF REQUIRED
    SE* src,                    // - source entry
    SE* tgt )                   // - target entry
;
SE* FstabPrecedes(              // GET PRECEDING STATE ENTRY
    SE* se )                    // - starting entry
;
SE* FstabPrevious(              // GET PREVIOUS STATE ENTRY
    SE* se )                    // - starting entry
;
void FstabPrune(                // PRUNE END OF STATE TABLE
    SE* end )                   // - actual ending position
;
void FstabRemove(               // REMOVE LAST STATE ENTRY
    void )
;
SYMBOL FstabRw(                 // GET R/W SYMBOL FOR FUNCTION STATE TABLE
    void )
;
void FstabSetDtorState(         // SET STATE VAR. FOR DTOR
    SE* se,                     // - state entry being DTOR'ed
    FN_CTL* fctl )              // - file information
;
SE* FstabSetSvSe(               // ADD SET_SV FOR SE TO STATE TABLE
    SE* tgt )                   // - state entry
;
boolean FstabSetup(             // SETUP FUNCTION STATE TABLE
    CGFILE* file_ctl,           // - current file information
    FN_CTL* fctl )              // - current file generation information
;
SE* FstabTestFlag(              // CREATE TEST-FLAG ENTRY
    unsigned flag_no,           // - flag #
    SE* se_true,                // - entry when true
    SE* se_false )              // - entry when false
;
SE* FunctionStateTablePosn(     // GET CURRENT STATE ENTRY FOR FUNCTION
    void )
;
void FunctionStateTableSetSvSe( // ADD SET_SV FOR SE TO STATE TABLE
    SE* se )                    // - state entry for SETSV command
;
void IbpAdd(                    // ADD AN IBRP ENTRY
    SYMBOL binding,             // - symbol to bind reference to
    target_offset_t offset,     // - offset into symbol
    FN_CTL* fctl )              // - current file information
;
void IbpDefineIndex(            // DEFINE CURRENT PARAMETER INDEX
    unsigned index )            // - index
;
void IbpDefineOffset(           // DEFINE OFFSET FOR BOUND REFERENCE PARAMETER
    target_offset_t offset )    // - the offset
;
void IbpDefineParms(            // START DEFINING PARAMETERS
    void )
;
void IbpDefineSym(              // DEFINE SYMBOL FOR BOUND PARAMETER
    call_handle handle,         // - handle for call
    SYMBOL sym )                // - the symbol
;
boolean IbpEmpty(               // DEBUG -- verify empty
    void )
;
cg_name IbpFetchRef(            // FETCH A REFERENCE PARAMETER
    SYMBOL orig_sym )           // - NULL or original symbol
;
cg_name IbpFetchVbRef(          // MAKE A REFERENCE FROM A BOUND PARAMETER
    SYMBOL orig_sym,            // - original symbol
    target_offset_t delta,      // - offset after vb computation
    target_offset_t vb_exact,   // - offset from original sym to base
    target_offset_t vb_offset,  // - offset to vb table
    target_offset_t vb_index )  // - index in vb table
;
cg_name IbpFetchVfRef(          // FETCH A VIRTUAL FUNCTION ADDRESS
    SYMBOL vfun,                // - virtual function
    cg_name this_expr,          // - expression for this
    SYMBOL vf_this,             // - original symbol (for access)
    target_offset_t vf_offset,  // - offset to vf table ptr
    target_offset_t vf_index,   // - index in vf table
    boolean* is_vcall,          // - addr[ TRUE ==> real virtual call ]
    target_offset_t* a_adj_this,// - addr[ this adjustment ]
    target_offset_t* a_adj_retn,// - addr[ return adjustment ]
    SYMBOL* a_exact_vfun )      // - addr[ exact vfun to be used ]
;
void IbpFlush(                  // REMOVE ALL IBRP ENTRIES FOR THIS CALL CONTEXT
    FN_CTL* fctl )              // - current file control
;
boolean IbpReference(           // LOCATE A BOUND REFERENCE
    SYMBOL sym,                 // - original symbol
    SYMBOL *trans,              // - addr[ translated symbol ]
    SYMBOL *bound,              // - addr[ bound reference ]
    target_offset_t *offset )   // - addr[ offset from bound reference ]
;
void IbpDefineVbOffset(         // DEFINE OFFSET FOR BOUND VB-REF PARAMETER
    target_offset_t vb_exact )  // - offset from original sym to base
;
void MarkFuncsToGen(            // DETERMINE FUNCTIONS TO BE GENERATED
    unsigned bounding_depth )   // - maximum inline depth
;
cg_name MstabDtorFunStatic(     // DTOR FUNCTION-SCOPE STATIC OBJECT
    SYMBOL sym )                // - object symbol
;
void MstabGenerate(             // GENERATE MODULE STATE TABLE
    void )
;
void MstabInit(                 // INITIALIZE MODULE STATE TABLE
    void )
;
void MstabModDtor(              // DTOR MODULE (FILE-SCOPE) STATIC
    SYMBOL sym )                // - symbol to be dtor'ed
;
void MstabRegister(             // EMIT CODE TO REGISTER MODULE STATE TABLE
    void )
;
OBJ_INIT* ObjInitArray(         // GET OBJ_INIT FOR INDEXING
    void )
;
TYPE ObjInitArrayBaseType(      // GET BASE TYPE FOR ARRAY
    OBJ_INIT* curr )            // - current entry
;
cg_name ObjInitAssignBase(      // ASSIGN BASE REGISTRATION
    FN_CTL* fctl,               // - current function information
    OBJ_INIT* init )            // - initialization element
;
cg_name ObjInitAssignBaseExpr(  // ASSIGN BASE REGISTRATION, FROM EXPR'N
    FN_CTL* fctl,               // - current function information
    OBJ_INIT* init,             // - initialization element
    cg_name expr )              // - expression
;
cg_name ObjInitAssignIndex(     // ASSIGN INDEX TO RT_ARRAY_INIT
    FN_CTL* fctl,               // - current function information
    OBJ_INIT* init,             // - initialization element
    unsigned index )            // - index
;
OBJ_INIT* ObjInitClass(         // GET OBJ_INIT FOR A CLASS
    void )
;
SE* ObjInitDtorAuto(            // UPDATE OBJ_INIT FOR AUTO DTOR
    SE* se,                     // - entry for symbol
    SYMBOL sym )                // - symbol needing dtor
;
OBJ_INIT* ObjInitPush(          // PUSH INITIALIZATION OBJECT (HAS COMPONENTS)
    TYPE obj_type )             // - type of object
;
OBJ_INIT* ObjInitPop(           // POP INITIALIZATION OBJECT (HAS COMPONENTS)
    void )
;
cg_name ObjInitRegActualBase    // REGISTER FOR AN ACTUAL BASE
    ( SE* se )                  // - component for actual base
;
cg_name ObjInitRegisterObj(     // CREATE AN OBJECT REGISTRATION
    FN_CTL* fctl,               // - current function information
    cg_name base_expr,          // - base expression
    boolean use_fun_cdtor )     // - TRUE ==> use CDTOR parm of function
;
OBJ_INIT* ObjInitTop(           // GET TOP INITIALIZATION OBJECT
    void )
;
SE* SeAlloc(                    // ALLOCATE AN SE ENTRY
    uint_8 se_type )            // - code for entry
;
SE* SeSetSvPosition(            // LOCATE STATE ENTRY PAST OPTIONAL SET_SV'S
    SE* se )                    // - starting position
;
STATE_VAR SeStateVar(           // GET STATE VARIABLE AT CURRENT POSITION
    SE* se )                    // - state entry
;
STATE_VAR SeStateOptimal(       // GET STATE VALUE FOR POSITION (OPTIMAL)
    SE* se )                    // - state entry
;
void StabCtlFreeStateTable(     // FREE A STATE TABLE
    STAB_CTL* sctl )            // - state-table information
;
STAB_CTL* StabCtlInit(          // INITIALIZE STAB_CTL
    STAB_CTL* stab,             // - control info: instance
    STAB_DEFN* defn )           // - control information: definition
;
SE* StabCtlPosnGened(           // GET GENERATED POSITION IF REQUIRED
    STAB_CTL* sctl,             // - control info
    SE* src,                    // - source entry
    SE* tgt )                   // - target entry
;
SE* StabCtlPrecedes(            // GET PRECEDING ENTRY OR NULL
    STAB_CTL* sctl,             // - control info
    SE* se )                    // - state entry
;
SE* StabCtlPrevious(            // GET PREVIOUS ENTRY OR NULL
    STAB_CTL* sctl,             // - control info
    SE* se )                    // - state entry
;
void StabCtlPrune(              // PRUNE END OF STATE STATE
    SE* se,                     // - ending entry
    STAB_CTL* sctl )            // - state table definition
;
void StabCtlRemove(             // REMOVE LAST STATE ENTRY
    STAB_CTL* sctl )            // - state-table information
;
SE* StabCtlSkipComp(            // SKIP PAST A COMPONENT
    STAB_CTL* sctl,             // - control info
    SE* se )                    // - state entry
;
SE* StabDefnAddSe(              // ADD STATE ENTRY TO STATE TABLE
    SE* se,                     // - entry to be added
    STAB_DEFN* defn )           // - state table definition
;
STAB_DEFN* StabDefnAllocate(    // ALLOCATE STAB_DEFN
    unsigned kind )             // - kind of table
;
void StabDefnFree(              // FREE AN STAB_DEFN
    STAB_DEFN* defn )           // - entry to be freed
;
void StabDefnFreeStateTable(    // FREE A STATE TABLE
    STAB_DEFN* defn )           // - definition for state table
;
STAB_DEFN* StabDefnInit(        // INITIALIZE STAB_DEFN
    STAB_DEFN* defn,            // - definition
    unsigned kind )             // - kind of table
;
boolean StabGenerate(           // GENERATE A STATE TABLE
    STAB_CTL* sctl )            // - state-table information
;
SE* StateTableActualPosn(       // GET (UN-OPTIMIZED) CURRENT STATE ENTRY
    STAB_CTL* sctl )            // - control info
;
SE* StateTableAdd(              // ADD TO STATE TABLE
    SE* se,                     // - state entry
    STAB_CTL* sctl )            // - state table information
;
SE* StateTableCurrPosn(         // GET STATE ENTRY FOR CURRENT POSITION
    STAB_CTL* sctl )            // - control info
;
void* SymTrans(                 // TRANSLATE SYMBOL/SCOPE
    void *src )                 // - source value
;
#ifndef NDEBUG
void SymTransEmpty(             // DEBUG: VERIFY SYMBOL TRANSLATIONS OVER
    void )
;
#else
    #define SymTransEmpty()
#endif
void SymTransFuncBeg(           // START NEW FUNCTION TRANSLATION
    FN_CTL* fctl )              // - function control
;
void SymTransFuncEnd(           // COMPLETE FUNCTION TRANSLATION
    FN_CTL* fctl )              // - function control
;
void SymTransNewBlock(          // START NEW BLOCK OF TRANSLATIONS
    void )
;
void SymTransPush(              // ADD A SYMBOL TO BE TRANSLATED
    SYMBOL src,                 // - source SYMBOL
    SYMBOL tgt )                // - target SYMBOL
;
cg_name ThrowRo(                // CREATE/ACCESS THROW R/O BLOCK
    TYPE type )                 // - type being thrown
;
void ThrowRoGen(                // GENERATE A THROW R/O BLOCK
    void )
;
TYPE TypeFromCgType(            // GET C++ TYPE FOR cg_type
    cg_type cgtype )            // - code-gen type
;

#endif

⌨️ 快捷键说明

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