diff --git a/gas/ChangeLog b/gas/ChangeLog index 9c694b4e4a..aa8f650b26 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2000-06-27 Aldy Hernandez + + * config/tc-mips.c (mips_ip): handle "(foo-.-4)" type of + expressions. Ignore the problem when handling 16 bit immediates, + because the assembler will take care of the relocation later. + 2000-06-27 Nick Clifton * config/tc-d30v.c (write_2_short): Do not allow opcodes with diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 1b5c9c8b4d..a4d25bc333 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -7746,10 +7746,8 @@ mips_ip (str, ip) if (insn + 1 < &mips_opcodes[NUMOPCODES] && !strcmp (insn->name, insn[1].name)) break; - if (imm_expr.X_op != O_constant - && imm_expr.X_op != O_big) - insn_error = _("absolute expression required"); - else + if (imm_expr.X_op == O_constant + || imm_expr.X_op == O_big) as_bad (_("16 bit expression not in range 0..65535")); } } @@ -7785,10 +7783,8 @@ mips_ip (str, ip) { if (more) break; - if (imm_expr.X_op != O_constant - && imm_expr.X_op != O_big) - insn_error = _("absolute expression required"); - else + if (imm_expr.X_op == O_constant + || imm_expr.X_op == O_big) as_bad (_("16 bit expression not in range -32768..32767")); } }