From: Ian Lance Taylor Date: Wed, 12 Feb 1997 20:43:15 +0000 (+0000) Subject: * config/tc-mips.c (mips16_ip): Handle an extend operand. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=56bb6eeef778dc297ae3875ad841ffe7c9f296a3;p=binutils-gdb.git * config/tc-mips.c (mips16_ip): Handle an extend operand. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index a9b7c4ca020..d350f7b0b5f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,7 @@ Wed Feb 12 14:36:29 1997 Ian Lance Taylor + * config/tc-mips.c (mips16_ip): Handle an extend operand. + * config/tc-mips.c (my_getExpression): In mips16 mode, if it looks like the expression was based on `.', adjust the value of the symbol. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index c3ced95168f..f80cfcdc61c 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -7396,6 +7396,21 @@ mips16_ip (str, ip) } continue; + case 'e': /* extend code */ + my_getExpression (&imm_expr, s); + check_absolute_expr (ip, &imm_expr); + if ((unsigned long) imm_expr.X_add_number > 0x7ff) + { + as_warn ("Invalid value for `%s' (%lu)", + ip->insn_mo->name, + (unsigned long) imm_expr.X_add_number); + imm_expr.X_add_number &= 0x7ff; + } + ip->insn_opcode |= imm_expr.X_add_number; + imm_expr.X_op = O_absent; + s = expr_end; + continue; + default: internalError (); }