From 2ae7e77be88be49df7fc287199d2a7a4046f9205 Mon Sep 17 00:00:00 2001 From: Aldy Hernandez Date: Wed, 28 Jun 2000 19:06:25 +0000 Subject: [PATCH] 16 bit immediate expr support for mips --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 12 ++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 9c694b4e4a0..aa8f650b263 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 1b5c9c8b4d2..a4d25bc3331 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")); } } -- 2.30.2