From c0dea4956d5e53f80c9d3a35b6c7a42532f0fb35 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 17 Dec 1996 16:00:55 +0000 Subject: [PATCH] * config/tc-mips.c (mips16_ip): Check for a missing expression when using the register indirect addressing mode. --- gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index 2de7a953592..7511b4df85d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Tue Dec 17 10:59:32 1996 Ian Lance Taylor + + * config/tc-mips.c (mips16_ip): Check for a missing expression + when using the register indirect addressing mode. + Mon Dec 16 10:08:46 1996 Jeffrey A Law (law@cygnus.com) * config/tc-mn10200.c (mn10200_insert_operand): Don't diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 13f284fe095..0b1b5c945aa 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -7010,6 +7010,17 @@ mips16_ip (str, ip) /* Looks like a register name. */ break; } + + if (s[0] == '(' + && args[1] == '(' + && s[1] == '$') + { + /* It looks like the expression was omitted before a + register indirection, which means that the + expression is implicitly zero. */ + continue; + } + my_getExpression (&imm_expr, s); /* We need to relax this instruction. */ imm_reloc = (int) BFD_RELOC_UNUSED + c; -- 2.30.2