X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?p=rmac;a=blobdiff_plain;f=symbol.h;h=fadb8a4238d203d1f02d2701425c06c4c9f10a38;hp=f8391a02fa78a6f31cd34ac504088ef22b666985;hb=HEAD;hpb=29fa5dcf504b966803063a1c2891f58f97126d04 diff --git a/symbol.h b/symbol.h index f8391a0..4a84345 100644 --- a/symbol.h +++ b/symbol.h @@ -1,7 +1,7 @@ // -// RMAC - Reboot's Macro Assembler for all Atari computers +// RMAC - Renamed Macro Assembler for all Atari computers // SYMBOL.H - Symbol Handling -// Copyright (C) 199x Landon Dyer, 2011-2019 Reboot and Friends +// Copyright (C) 199x Landon Dyer, 2011-2022 Reboot and Friends // RMAC derived from MADMAC v1.07 Written by Landon Dyer, 1986 // Source utilised with the kind permission of Landon Dyer // @@ -35,7 +35,11 @@ SYM uint8_t * sname; // * -> Symbol's print-name LLIST * lineList; // * -> Macro's linked list of lines LLIST * last; // * -> end of macro linked list + uint16_t cfileno; // File the macro is defined in uint32_t uid; // Symbol's unique ID + uint8_t st_type; // stabs debug symbol's "type" field + uint8_t st_other; // stabs debug symbol's "other" field + uint16_t st_desc; // stabs debug symbol's "description" field }; // Exported variables @@ -45,14 +49,20 @@ extern uint32_t firstglobal;// Index of the fist global symbol in an ELF object. // Exported functions SYM * lookup(uint8_t *, int, int); void InitSymbolTable(void); -SYM * NewSymbol(uint8_t *, int, int); +SYM * NewSymbol(const uint8_t *, int, int); void AddToSymbolDeclarationList(SYM *); void ForceUndefinedSymbolsGlobal(void); int symtable(void); -uint32_t sy_assign(uint8_t *, uint8_t *(*)()); -uint32_t sy_assign_ELF(uint8_t *, uint8_t *(*)()); +uint32_t AssignSymbolNos(uint8_t *, uint8_t *(*)()); +uint32_t AssignSymbolNosELF(uint8_t *, uint8_t *(*)()); void DumpLODSymbols(void); uint8_t * GetSymbolNameByUID(uint32_t); +SYM * NewDebugSymbol(const uint8_t *, uint8_t, uint8_t, uint16_t); +void GenMainFileSym(const char *); +void GenLineNoSym(void); + +// Helper to avoid unnecessary branches: +#define GENLINENOSYM() if (dsym_flag) GenLineNoSym() #endif // __SYMBOL_H__