Replace all tables by hash tables. This allows to remove the ugly special
casing of "long addresses" and prepares the code base for use with the full address range of the 65816. Use fixed size data types for addresses and target data words of known size. Many other minor improvements.
This commit is contained in:
@@ -38,6 +38,9 @@
|
||||
|
||||
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/* da65 */
|
||||
#include "attrtab.h"
|
||||
|
||||
|
||||
@@ -48,42 +51,42 @@
|
||||
|
||||
|
||||
|
||||
void AddIntLabel (unsigned Addr);
|
||||
void AddIntLabel (uint32_t Addr);
|
||||
/* Add an internal label using the address to generate the name. */
|
||||
|
||||
void AddExtLabel (unsigned Addr, const char* Name);
|
||||
void AddExtLabel (uint32_t Addr, const char* Name);
|
||||
/* Add an external label */
|
||||
|
||||
void AddUnnamedLabel (unsigned Addr);
|
||||
void AddUnnamedLabel (uint32_t Addr);
|
||||
/* Add an unnamed label */
|
||||
|
||||
void AddDepLabel (unsigned Addr, attr_t Attr, const char* BaseName, unsigned Offs);
|
||||
void AddDepLabel (uint32_t Addr, attr_t Attr, const char* BaseName, unsigned Offs);
|
||||
/* Add a dependent label at the given address using "base name+Offs" as the new
|
||||
** name.
|
||||
*/
|
||||
|
||||
void AddIntLabelRange (unsigned Addr, const char* Name, unsigned Count);
|
||||
void AddIntLabelRange (uint32_t Addr, const char* Name, unsigned Count);
|
||||
/* Add an internal label for a range. The first entry gets the label "Name"
|
||||
** while the others get "Name+offs".
|
||||
*/
|
||||
|
||||
void AddExtLabelRange (unsigned Addr, const char* Name, unsigned Count);
|
||||
void AddExtLabelRange (uint32_t Addr, const char* Name, unsigned Count);
|
||||
/* Add an external label for a range. The first entry gets the label "Name"
|
||||
** while the others get "Name+offs".
|
||||
*/
|
||||
|
||||
int HaveLabel (unsigned Addr);
|
||||
int HaveLabel (uint32_t Addr);
|
||||
/* Check if there is a label for the given address */
|
||||
|
||||
int MustDefLabel (unsigned Addr);
|
||||
int MustDefLabel (uint32_t Addr);
|
||||
/* Return true if we must define a label for this address, that is, if there
|
||||
** is a label at this address, and it is an external or internal label.
|
||||
*/
|
||||
|
||||
const char* GetLabelName (unsigned Addr);
|
||||
const char* GetLabelName (uint32_t Addr);
|
||||
/* Return the label name for an address */
|
||||
|
||||
const char* GetLabel (unsigned Addr, unsigned RefFrom);
|
||||
const char* GetLabel (uint32_t Addr, uint32_t RefFrom);
|
||||
/* Return the label name for an address, as it is used in a label reference.
|
||||
** RefFrom is the address the label is referenced from. This is needed in case
|
||||
** of unnamed labels, to determine the name.
|
||||
|
||||
Reference in New Issue
Block a user