From 667dd804e651001c60f0e0b8dc3d08ec3ebeb0ee Mon Sep 17 00:00:00 2001 From: "H. Peter Anvin" Date: Sun, 26 May 2002 19:49:41 +0000 Subject: Handle $ and $$ in ABSOLUTE sections --- eval.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index d97127c9..72bb4d03 100644 --- a/eval.c +++ b/eval.c @@ -45,6 +45,10 @@ static int *opflags; static struct eval_hints *hint; +extern int in_abs_seg; /* ABSOLUTE segment flag */ +extern long abs_seg; /* ABSOLUTE segment */ +extern long abs_offset; /* ABSOLUTE segment offset */ + /* * Unimportant cleanup is done to avoid confusing people who are trying * to debug real memory leaks @@ -701,11 +705,11 @@ static expr *expr6(int critical) type = EXPR_SIMPLE; /* might get overridden by UNKNOWN */ if (i == TOKEN_BASE) { - label_seg = location->segment; + label_seg = in_abs_seg ? abs_seg : location->segment; label_ofs = 0; } else if (i == TOKEN_HERE) { - label_seg = location->segment; - label_ofs = location->offset; + label_seg = in_abs_seg ? abs_seg : location->segment; + label_ofs = in_abs_seg ? abs_offset : location->offset; } else { if (!labelfunc(tokval->t_charptr,&label_seg,&label_ofs)) { -- cgit v1.2.1