diff options
Diffstat (limited to 'gas/config/tc-mn10300.c')
-rw-r--r-- | gas/config/tc-mn10300.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gas/config/tc-mn10300.c b/gas/config/tc-mn10300.c index 8849d1c..963b1b6 100644 --- a/gas/config/tc-mn10300.c +++ b/gas/config/tc-mn10300.c @@ -2743,9 +2743,10 @@ mn10300_end_of_match (cont, what) } int -mn10300_parse_name (name, exprP, nextcharP) +mn10300_parse_name (name, exprP, mode, nextcharP) char const *name; expressionS *exprP; + enum expr_mode mode; char *nextcharP; { char *next = input_line_pointer; @@ -2765,13 +2766,13 @@ mn10300_parse_name (name, exprP, nextcharP) /* If we have an absolute symbol or a reg, then we know its value now. */ segment = S_GET_SEGMENT (exprP->X_add_symbol); - if (segment == absolute_section) + if (mode != expr_defer && segment == absolute_section) { exprP->X_op = O_constant; exprP->X_add_number = S_GET_VALUE (exprP->X_add_symbol); exprP->X_add_symbol = NULL; } - else if (segment == reg_section) + else if (mode != expr_defer && segment == reg_section) { exprP->X_op = O_register; exprP->X_add_number = S_GET_VALUE (exprP->X_add_symbol); |