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