static void brinfIcPtr // WRITE IC, PTR OPERAND ( CGINTEROP opcode // - opcode , void const *ptr ) // - operand { if( canWriteIc() ) { BrinfWriteIns( opcode, ptr ); } }
static void writeIns // WRITE AN INSTRUCTION ( CGINTEROP opcode // - opcode , void const * parm // - parm for instruction , TOKEN_LOCN const * locn ) // - location for instruction { TOKEN_LOCN* curr_locn; // - location SRCDEP const* sd; // - dependency for open switch( opcode ) { case IC_BR_SRC_BEG : curr_locn = VstkPush( &open_src ); TokenLocnAssign( *curr_locn, cursor ); sd = parm; cursor.src_file = BrinfDepSrcfile( sd ); cursor.line = 0; cursor.column = 0; BrinfWriteIns( opcode, parm ); break; case IC_BR_SRC_END : locn = VstkPop( &open_src ); if( NULL == locn ) { cursor.src_file = NULL; } else { TokenLocnAssign( cursor, *locn ); } BrinfWriteIns( opcode, parm ); break; case IC_BR_REF_MACRO : TokenLocnAssign( cursor, *locn ); BrinfIcReference( opcode, parm, locn ); break; default : TokenLocnAssign( cursor, *locn ); BrinfWriteIns( opcode, parm ); break; } }