aboutsummaryrefslogtreecommitdiff
path: root/gas
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1997-02-12 20:43:15 +0000
committerIan Lance Taylor <ian@airs.com>1997-02-12 20:43:15 +0000
commit56bb6eeef778dc297ae3875ad841ffe7c9f296a3 (patch)
tree246d05fd70e457d9d6818012c0f0de4597c7d134 /gas
parenteb17f56cf52b7f9e6974b1de6017db2d99fe5d4f (diff)
downloadgdb-56bb6eeef778dc297ae3875ad841ffe7c9f296a3.zip
gdb-56bb6eeef778dc297ae3875ad841ffe7c9f296a3.tar.gz
gdb-56bb6eeef778dc297ae3875ad841ffe7c9f296a3.tar.bz2
* config/tc-mips.c (mips16_ip): Handle an extend operand.
Diffstat (limited to 'gas')
-rw-r--r--gas/ChangeLog2
-rw-r--r--gas/config/tc-mips.c15
2 files changed, 17 insertions, 0 deletions
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 <ian@cygnus.com>
+ * 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 ();
}