extern void FEPtrBaseOffset( cg_sym_handle sym, offset plus ) { /***************************************************************/ back_handle bck; // segment_id seg; TellOptimizerByPassed(); bck = FEBack( sym ); // seg = FESegID( sym ); OutReloc( bck->lbl, OWL_RELOC_SECTION_INDEX, 0 ); ObjBytes( &plus, 4 ); // OutSegReloc( bck->lbl, seg ); OutReloc( bck->lbl, OWL_RELOC_SECTION_OFFSET, 0 ); ObjBytes( "\0\0", 2 ); TellByPassOver(); }
extern void BackBigOffset( back_handle bck, segment_id seg, offset plus ) /***************************************************************************/ { seg = seg; TellOptimizerByPassed(); OutReloc( bck->lbl, OWL_RELOC_WORD, 0 ); ObjBytes( &plus, 4 ); TellByPassOver(); }
extern void FEPtr( cg_sym_handle sym, type_def *tipe, offset plus ) { /*******************************************************************/ tipe = tipe; assert( tipe->length == 4 ); TellOptimizerByPassed(); OutReloc( FEBack( sym )->lbl, OWL_RELOC_WORD, 0 ); ObjBytes( &plus, 4 ); TellByPassOver(); }
extern void BackPtr( back_handle bck, segment_id seg, offset plus, type_def *tipe ) /*************************************************************************************/ { seg = seg; tipe = tipe; assert( tipe->length == 4 ); TellOptimizerByPassed(); OutReloc( bck->lbl, OWL_RELOC_WORD, 0 ); ObjBytes( &plus, 4 ); TellByPassOver(); }
static void doBranch( axp_ins opcode, pointer lbl, uint reg ) { opcode = _Opcode( opcode ) | _A( reg ); OutReloc( lbl, OWL_RELOC_BRANCH_REL, 0 ); ObjBytes( &opcode, sizeof( opcode ) ); }