void ObjEmitLabel( sym_handle sym ) { //*********************************** // Stacks up the label in the list for ObjEmitData to emit owl_sym_type type; owl_sym_linkage linkage; sym_linkage symbol_linkage; owl_section_type section_type; if( ObjLabelDefined( sym ) ) { Error( SYM_ALREADY_DEFINED, SymName( sym ) ); return; } section_type = OWLTellSectionType( CurrentSection ); if( section_type & OWL_SEC_ATTR_CODE ) { type = OWL_TYPE_FUNCTION; } else { type = OWL_TYPE_OBJECT; } symbol_linkage = SymGetLinkage( sym ); if( symbol_linkage == SL_UNKNOWN ) { SymSetLinkage( sym, SL_STATIC ); // from now on it's static } linkage = linkage_table[symbol_linkage]; doStackLabel( sym, type, linkage ); }
extern void ObjInit( void ) { //*************************** CurrAlignment = 0; // alignment disabled // Here we add a label marking the beginning of the code stream. // Relocs to this label can be done by ObjEmitMetaReloc(). doStackLabel( SymAdd( ASMCODESTART, SYM_LABEL ) ); }
extern void ObjEmitLabel( sym_handle sym ) { //****************************************** // Stacks up the label in the list for ObjEmitData to emit if( ObjLabelDefined( sym ) ) { Error( SYM_ALREADY_DEFINED, SymName( sym ) ); return; } doStackLabel( sym ); }