cgbackut.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,466 行 · 第 1/4 页
H
1,466 行
void CgDeclSym( // PROCESS SYMBOL IN BLOCK-OPEN SCOPE
SYMBOL sym ) // - current symbol
;
cg_name CgDestructSymOffset( // CONSTRUCT DTOR CALL FOR SYMBOL+OFFSET
FN_CTL* fctl, // - function control
SYMBOL dtor, // - destructor
SYMBOL sym, // - SYMBOL to be DTOR'ed
target_size_t offset, // - offset from "sym"
unsigned cdtor ) // - CDTOR to be used
;
cg_name CgDestructExpr( // CONSTRUCT DTOR CALL FOR EXPRESSION
SYMBOL dtor, // - destructor
cg_name var, // - expression to be DTOR'ed
unsigned cdtor ) // - CDTOR to be used
;
void CgDestructExprTemps( // DESTRUCT TEMPS IN AN EXPRESSION
DGRP_FLAGS pop_type, // - type of popping
FN_CTL* fctl ) // - current file information
;
void CgDone( // COMPLETE CODE-GENERATION OF EXPRESSION
cg_name expr, // - expression
cg_type type )
;
void CgDtorAll( // DTOR ALL IN FUNCTION
void )
;
void CgDtorSe( // DTOR UNTIL SE ENTRY
SE* bound ) // - bounding entry
;
cg_name CgDtorStatic( // DTOR STATIC OBJECT
SYMBOL sym ) // - object symbol
;
back_handle CgProfData( // HANDLE FOR PROFILING DATA
void )
;
void CgExprAttr( // SET CONST/VOLATILE/etc. ATTRIBUTES FOR EXPR
cg_sym_attr attr ) // - attribute
;
void CgExprPushWithAttr( // PUSH EXPR WITH ATTRIBUTES
cg_name expr, // - expression
cg_type type, // - expression type
cg_sym_attr attr ) // - expression attribute
;
void CgExprDtored( // DTOR CG EXPRESSION
cg_name expr, // - expression
cg_type type, // - expression type
DGRP_FLAGS pop_type, // - type of popping destruction
FN_CTL* fctl ) // - function control
;
cg_name CgExprPop( // POP CG EXPRESSION
void )
;
boolean CgExprPopGarbage( // POP EXPR STACK IF TOP EXPR IS GARBAGE
void )
;
cg_name CgExprPopType( // POP CG EXPRESSION and TYPE
cg_type* a_type ) // - addr[ type ]
;
void CgExprPush( // PUSH CG EXPRESSION RESULT
cg_name expr, // - expression
cg_type type ) // - expression type
;
unsigned CgExprStackSize( // RETURN # TEMPS STACKED
void )
;
cg_type CgExprType( // GET EXPRESSION TYPE
TYPE type ) // - C++ type
;
cg_name CgFetchPtr( // FETCH A POINTER
cg_name operand ) // - operand to be fetched
;
cg_name CgFetchSym( // FETCH A SYMBOL
SYMBOL sym ) // - symbol
;
cg_name CgFetchTemp( // FETCH A TEMPORARY
temp_handle handle, // - handle for temporary
cg_type type ) // - type of temp
;
cg_name CgFetchType( // PERFORM A FETCH
cg_name operand, // - operand to be fetched
cg_type type ) // - type of fetch
;
cg_name CgFetchSymbolAddOffset( // GENERATE RVALUE( SYMBOL ) + OFFSET
SYMBOL sym, // - symbol
unsigned offset ) // - offset
;
cg_type CgFuncRetnType( // GET CG RETURN TYPE FOR A FUNCTION
SYMBOL func ) // - function
;
#if _CPU != _AXP
void CgFunDeregister( // DE-REGISTER A FUNCTION
SYMBOL rw ) // - symbol for R/W block
;
#endif
void CgFunRegister( // REGISTER A FUNCTION
FN_CTL* fctl, // - function information
SYMBOL rw, // - symbol for R/W block
SYMBOL ro ) // - symbol for R/O block
;
cg_type CgGetCgType( // GET CODEGEN TYPE
TYPE type ) // - type
;
void CgGotoReturnLabel( // GENERATE "GOTO RETURN-LABEL"
FN_CTL* fctl ) // - function being emitted
;
void CgLabel( // EMIT A LABEL
label_handle lab ) // - the label
;
void CgLabelsFinish( // FINISH LABELS IN A VIRTUAL STACK
VSTK_CTL *stack, // - the stack
int base ) // - base for stack
;
void CgLabelPlantReturn( // PLANT RETURN LABEL, IF REQUIRED
FN_CTL* fctl ) // - function being emitted
;
void CgLabelsPop( // POP A LABELS STACK
VSTK_CTL *stack, // - the stack
unsigned count ) // - number of labels to pop
;
cg_name CgMakeDup( // MAKE A DUPLICATE
cg_name *orig, // - original
cg_type cgtype ) // - and its type
;
cg_name CgMakeTwoDups( // MAKE TWO DUPLICATES
cg_name *orig, // - original and destination for first dup
cg_name *second, // - destination for second dup
cg_type cgtype ) // - original type
;
unsigned CgNonThunkDepth( // COMPUTE INLINE DEPTH WITHOUT THUNKS
FN_CTL* fctl ) // - current function
;
cg_name CgOffset( // PASS ABSOLUTE OFFSET TO CODE GENERATOR
unsigned offset ) // - offset value
;
cg_name CgOffsetExpr( // MAKE OFFSET EXPRESSION
cg_name expr, // - lhs expression
target_offset_t offset, // - offset
cg_type type ) // - resultant type
;
target_offset_t CgOffsetRw( // COMPUTE OFFSET FROM R/W REGISTRATION
target_offset_t offset ) // - offset within stack
;
void CgPushGarbage( // PUSH GARBAGE (TO BE TRASHED/POPPED)
void )
;
boolean CgRetnOptActive // TEST IF RETURN OPTIMIZATION ACTIVE FOR FILE
( FN_CTL* fctl ) // - file-activation control
;
boolean CgRetnOptForFile // TEST IF RETURN OPTIMIZATION FOR FILE
( CGFILE* file_ctl ) // - file control
;
boolean CgRetnOptIsOptVar // TEST IF SYMBOL IS RETURN-OPTIMIZATION VAR
( FN_CTL* fctl // - file-activation control
, SYMBOL var ) // - var. to be tested
;
void CgRetnOpt_RETNOPT_BEG // PROCESS IC_RETNOPT_BEG
( FN_CTL* fctl ) // - file-activation control
;
void CgRetnOpt_RETNOPT_VAR // PROCESS IC_RETNOPT_VAR
( FN_CTL* fctl // - file-activation control
, SYMBOL var ) // - variable
;
cg_type CgReturnType( // GET CG-TYPE FOR RETURN
cg_type type ) // - code-gen type
;
cg_name CgRtCallExec( // EXECUTE R/T CALL
RT_DEF *def ) // - definition for call
;
void CgRtCallExecDone( // EXECUTE R/T CALL, THEN DONE
RT_DEF *def ) // - definition for call
;
void CgRtCallExecNoArgs( // EXECUTE R/T CALL, WITHOUT ARGUMENTS
RTF rt_code ) // - code for run/time call
;
void CgRtCallInit( // SET UP A R/T CALL
RT_DEF *def, // - definition for call
RTF rt_code ) // - code for run/time call
;
void CgRtParam( // SET UP A PARAMETER
cg_name expr, // - expression gen'ed
RT_DEF *def, // - definition for call
cg_type type ) // - argument type
;
void CgRtParamAddrSym( // SET UP PARAMETER: ADDR( SYMBOL )
RT_DEF *def, // - definition for call
SYMBOL sym ) // - symbol
;
void CgRtParamConstOffset( // SET UP PARAMETER: CONSTANT OFFSET
RT_DEF *def, // - definition for call
unsigned value ) // - parameter value
;
cg_name CgSaveAsTemp( // SAVE INTO A TEMPORARY
temp_handle* a_hand, // - addr[ temp handle ]
cg_name expr, // - expression to be saved
cg_type type ) // - and its type
;
cg_name CgSideEffect( // CONSTRUCT SIDE-EFFECT EXPRESSION
cg_name lhs, // - expression on left
cg_name rhs, // - expression on right
cg_type type ) // - type of right expression
;
label_handle CgSwitchBeg // GENERATE CODE FOR START OF SWITCH STMT
( FN_CTL* fctl ) // - function control
;
void CgSwitchCase // GENERATE CODE FOR SWITCH CASE
( long case_value ) // - case value
;
void CgSwitchCaseRange // GENERATE CODE FOR RANGE OF SWITCH CASES
( long range_start // - start of range
, long range_end ) // - end of range
;
void CgSwitchDefault // GENERATE CODE FOR DEFAULT STMT
( void )
;
void CgSwitchDefaultGen // GENERATE CODE FOR DEFAULT STMT (GEN'ED)
( label_handle lab ) // - label to be used
;
void CgSwitchEnd // GENERATE CODE FOR END OF SWITCH STMT
( void )
;
cg_name CgSymbol( // PASS SYMBOL TO CODE GENERATOR
SYMBOL sym ) // - symbol
;
cg_name CgSymbolPlusOffset( // GENERATE SYMBOL + OFFSET
SYMBOL sym, // - symbol
unsigned offset ) // - offset
;
void CgTrash( // COMPLETE TRASH OF EXPRESSION
cg_name expr, // - expression
cg_type type )
;
SYMBOL CgVarRo( // MAKE R/O CODEGEN VARIABLE
target_size_t size, // - size of variable
unsigned id, // - SC_...
char *name ) // - name or NULL
;
SYMBOL CgVarRw( // MAKE R/W CODEGEN VARIABLE
target_size_t size, // - size
unsigned id ) // - SC_...
;
SYMBOL CgVarTemp( // MAKE R/W AUTO TEMPORARY
target_size_t size ) // - size of temp
;
SYMBOL CgVarTempTyped( // MAKE R/W AUTO TEMPORARY, FOR cg_type
cg_type type ) // - type of entry
;
void CondInfoEnd( // SET UP CALL-BACK FOR IC_COND_END
void )
;
void CondInfoDirectFlags( // SET FOR DIRECT-FLAGS PROCESSING
unsigned flag_bytes ) // - # bytes of flags required
;
void CondInfoFalse( // SET UP CALL-BACK FOR IC_COND_FALSE
void )
;
void CondInfoNewCtorBeg( // CTOR OF NEW'ED OBJECT: START
FN_CTL* fctl ) // - function information
;
void CondInfoNewCtorEnd( // CTOR OF NEW'ED OBJECT: END
FN_CTL* fctl ) // - function information
;
void CondInfoPush( // PUSH COND_INFO STACK
FN_CTL* fctl ) // - function control
;
void CondInfoPop( // POP COND_INFO STACK
void )
;
void CondInfoSetCtorTest( // SET/RESET FLAG FOR CTOR-TEST
FN_CTL* fctl, // - function control
boolean set_flag ) // - TRUE ==> set the flag; FALSE ==> clear
;
void CondInfoSetFlag( // SET FLAG FOR CONDITIONAL DTOR BLOCK
FN_CTL* fctl, // - function control
boolean set_flag ) // - TRUE ==> set the flag; FALSE ==> clear
;
void CondInfoSetup( // SETUP UP CONDITIONAL INFORMATION
unsigned index, // - index of flag
COND_INFO* cond, // - conditional information
FN_CTL* fctl ) // - function information
;
void CondInfoTrue( // SET UP CALL-BACK FOR IC_COND_TRUE
void )
;
label_handle CondLabelAdd // ADD A CONDITIONAL LABEL
( COND_LABEL** a_ring // - addr[ ring of labels ]
, SE* se ) // - state entry
;
boolean CondLabelEmit // EMIT CONDITIONAL LABEL IF REQ'D
( COND_LABEL** a_ring // - addr[ ring of labels ]
, SE* se ) // - state entry at current position
;
SE* CondLabelNext // FIND STATE ENTRY FOR NEXT COND. LABEL
( COND_LABEL** a_ring // - addr[ ring of labels ]
, SE* se ) // - default state entry
;
void CondLabelsEmit( // EMIT ANY REMAINING CONDITIONAL LABELS
COND_LABEL** a_ring ) // - addr[ ring of labels ]
;
void DgByte( // DATA GENERATE A BYTE
uint_8 byte ) // - to be generated
;
void DgInitBytes( // DATA GENERATE INIT BYTES
target_size_t size, // - number of bytes
uint_8 val ) // - byte to initialize with
;
void DgOffset( // GENERATE AN OFFSET VALUE
unsigned offset ) // - offset value
;
void DgPtrSymCode( // GENERATE POINTER FOR A CODE SYMBOL
SYMBOL sym ) // - the symbol
;
void DgPtrSymData( // GENERATE POINTER FOR A DATA SYMBOL
SYMBOL sym ) // - the symbol
;
void DgPtrSymDataOffset( // GENERATE POINTER FOR A DATA SYMBOL, OFFSET
SYMBOL sym, // - the symbol
target_size_t offset ) // - the offset
;
void DgPtrSymOff( // GENERATE POINTER FOR A SYMBOL + OFFSET
SYMBOL sym, // - the symbol
target_size_t offset ) // - the offset
;
back_handle DgStringConst( // STORE STRING CONSTANT WITH NULL
STRING_CONSTANT str, // - string to store
uint_16 *psegid, // - addr(string segid)
unsigned control ) // - control mask (DSC_*)
;
#if _CPU == _AXP
void DgAlignInternal( // ALIGN INTERNAL CONTROL BLOCK
void )
;
#else
#define DgAlignInternal()
#endif
void DgAlignPad( // INSERT PADDING IN A STRUCTURE
unsigned total ) // - number of bytes emitted so far
;
void DgAlignSymbol( // ALIGN SYMBOL TO CORRECT BOUNDARY
SYMBOL sym ) // - symbol to align
;
void DgSymbolDefInit( // DATA GENERATE SYMBOL (DEFAULT DATA)
SYMBOL sym ) // - the symbol
;
void DgUninitBytes( // DATA GENERATE UNINIT BYTES
target_size_t size ) // - number of bytes
;
DT_METHOD DtmDirect( // CONVERT DTOR METHOD TO DIRECT COUNTERPART
DT_METHOD dtm ) // - default method
;
boolean DtmTabular( // DETERMINE IF SCOPE TABULAR DTOR METHOD
FN_CTL* fctl ) // - function control
;
boolean DtmTabularFunc( // DETERMINE IF SCOPE TABULAR DESTRUCTION METHOD, FUNCTION
FN_CTL* fctl ) // - function control
;
SE* DtorForDelBeg( // DTORING AREA TO BE DELETED: start
FN_CTL* fctl, // - function information
target_size_t elem_size, // - size of one element in area
unsigned dlt1, // - entry type when one arg
unsigned dlt2, // - entry type when two args
SYMBOL op_del ) // - operator delete to be used
;
void DtorForDelEnd( // DTORING AREA TO BE DELETED: end
FN_CTL* fctl, // - function information
SE* se_dlt ) // - entry
;
DTREG_OBJ* DtregActualBase( // REGISTER AN ACTUAL BASE
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?