From 56bb6eeef778dc297ae3875ad841ffe7c9f296a3 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 12 Feb 1997 20:43:15 +0000 Subject: [PATCH] * config/tc-mips.c (mips16_ip): Handle an extend operand. --- gas/ChangeLog | 2 ++ gas/config/tc-mips.c | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/gas/ChangeLog b/gas/ChangeLog index a9b7c4c..d350f7b 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 c3ced95..f80cfcd 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 (); } -- 2.7.4