union label { /* actual label structures */
struct {
- int32_t segment, offset;
+ int32_t segment;
+ int64_t offset;
char *label, *special;
int is_global, is_norm;
} defn;
struct {
- int32_t movingon, dummy;
+ int32_t movingon;
+ int64_t dummy;
union label *next;
} admin;
};
return lfree++;
}
-bool lookup_label(char *label, int32_t *segment, int32_t *offset)
+bool lookup_label(char *label, int32_t *segment, int64_t *offset)
{
union label *lptr;
return (lptr && (lptr->defn.is_global & EXTERN_BIT));
}
-void redefine_label(char *label, int32_t segment, int32_t offset, char *special,
+void redefine_label(char *label, int32_t segment, int64_t offset, char *special,
bool is_norm, bool isextrn, struct ofmt *ofmt,
efunc error)
{
/* if (pass0 == 1) */
}
-void define_label(char *label, int32_t segment, int32_t offset, char *special,
+void define_label(char *label, int32_t segment, int64_t offset, char *special,
bool is_norm, bool isextrn, struct ofmt *ofmt, efunc error)
{
union label *lptr;