www.pudn.com > ASM86_64.rar > label.h
#ifndef _LABLE_H_
#define _LABLE_H_
/* label struct */
struct label_struct {
char *name;
unsigned long long addr;
unsigned long line;
};
/* label link */
struct label_link {
struct label_struct *label;
struct label_link *next, *prev;
};
/* indicate the lable direction of pc-relative instruction */
enum lable_direction {
LABLE_UNKNOWN,
LABLE_THIS,
LABLE_UP,
LABLE_DOWN
};
/************************************/
typedef struct transfer_hole_struct {
char *hole_label;
i_key_t *hole_i_key;
unsigned int bits;
unsigned long long hole_addr;
unsigned int hole_line;
unsigned int hole_size;
struct transfer_hole_struct *next;
} hole_pos_t;
struct label_link *label_table;
struct transfer_hole_struct *hole_link;
int is_label(char *s);
struct label_link *get_label_node(char *label);
void release_label_link();
void release_hole_link();
#endif