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