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 + -
显示快捷键?