From be22008b2c2b17c0a704800f387f444c360053a8 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Fri, 11 Mar 1994 23:00:17 +0000 Subject: [PATCH] * config/tc-mips.c (mips_ip): Accept numbers between 0x8000 and 0xffff for 'j' to be compatible with MIPS assembler. These numbers are actually treated as negative. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 7ecc6492bf1..2ad77a7f249 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +Fri Mar 11 17:56:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Accept numbers between 0x8000 and + 0xffff for 'j' to be compatible with MIPS assembler. These + numbers are actually treated as negative. + Thu Mar 10 13:36:29 1994 Doug Evans (dje@canuck.cygnus.com) * config/tc-sparc.h (LOCAL_LABEL): Local labels are .Lfoo. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index b60266e7b39..77a72c044b9 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -4359,8 +4359,12 @@ mips_ip (str, ip) } else { + /* The upper bound should be 0x8000, but + unfortunately the MIPS assembler accepts numbers + from 0x8000 to 0xffff and sign extends them, and + we want to be compatible. */ if (imm_expr.X_add_number < -0x8000 || - imm_expr.X_add_number >= 0x8000) + imm_expr.X_add_number >= 0x10000) { if (insn + 1 < &mips_opcodes[NUMOPCODES] && !strcmp (insn->name, insn[1].name)) -- 2.30.2