From b83565def8ba85bbac0b946b14fe0219602da410 Mon Sep 17 00:00:00 2001 From: Martin Hunt Date: Fri, 10 Oct 1997 18:22:59 +0000 Subject: [PATCH] Fri Oct 10 11:22:45 1997 Martin M. Hunt * config/tc-d10v.c: Fixes to make sure the AT_WORD expression is not confused with -1. --- gas/ChangeLog | 5 +++++ gas/config/tc-d10v.c | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index bd6d766..fce464c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 10 11:22:45 1997 Martin M. Hunt + + * config/tc-d10v.c: Fixes to make sure the AT_WORD + expression is not confused with -1. + Fri Oct 10 11:54:50 1997 Andrew Cagney * config/tc-d10v.c (parallel_ok): Flag SP as modified for @-sp diff --git a/gas/config/tc-d10v.c b/gas/config/tc-d10v.c index bc20d32..ec47194 100644 --- a/gas/config/tc-d10v.c +++ b/gas/config/tc-d10v.c @@ -433,8 +433,8 @@ get_operands (exp) /* then it was really a symbol, so change it to one */ exp[numops].X_op = O_symbol; exp[numops].X_add_symbol = symbol_find_or_make ((char *)exp[numops].X_op_symbol); - exp[numops].X_op_symbol = NULL; } + exp[numops].X_op_symbol = (struct symbol *)-1; exp[numops].X_add_number = AT_WORD; input_line_pointer += 5; } @@ -533,7 +533,8 @@ build_insn (opcode, opers, insn) if (fixups->fc >= MAX_INSN_FIXUPS) as_fatal ("too many fixups"); - if (opers[i].X_op == O_symbol && number == AT_WORD) + if (opers[i].X_op == O_symbol && number == AT_WORD && + opers[i].X_op_symbol == (struct symbol *)-1 ) { number = opers[i].X_add_number = 0; fixups->fix[fixups->fc].reloc = BFD_RELOC_D10V_18; @@ -1120,7 +1121,8 @@ find_opcode (opcode, myops) else value = S_GET_VALUE(myops[opnum].X_add_symbol); - if (myops[opnum].X_add_number == AT_WORD) + if (myops[opnum].X_add_number == AT_WORD && + myops[opnum].X_op_symbol == (struct symbol *)-1) { if (bits > 4) { -- 2.7.4