aboutsummaryrefslogtreecommitdiff
path: root/gas/config/tc-mips.c
diff options
context:
space:
mode:
authorRichard Sandiford <rdsandiford@googlemail.com>2013-07-14 13:11:03 +0000
committerRichard Sandiford <rdsandiford@googlemail.com>2013-07-14 13:11:03 +0000
commitcc537e567a207d4d5a78e2438d9d459b2ae55428 (patch)
treed29ac5325a000a7cb26a309ffe28b2c9a8999531 /gas/config/tc-mips.c
parent7a5f87ce9bd0d5facacd10424c26deb0af041630 (diff)
downloadgdb-cc537e567a207d4d5a78e2438d9d459b2ae55428.zip
gdb-cc537e567a207d4d5a78e2438d9d459b2ae55428.tar.gz
gdb-cc537e567a207d4d5a78e2438d9d459b2ae55428.tar.bz2
include/opcode/
* mips.h: Document MIPS16 "I" opcode. opcodes/ * mips16-opc.c (mips16_opcodes): Use "I" for immediate operands in macros. gas/ * config/tc-mips.c (mips16_ip): Handle "I".
Diffstat (limited to 'gas/config/tc-mips.c')
-rw-r--r--gas/config/tc-mips.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 7fb870e..ef5c466 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -14223,6 +14223,16 @@ mips16_ip (char *str, struct mips_cl_insn *ip)
s = expr_end;
continue;
+ case 'I':
+ my_getExpression (&imm_expr, s);
+ if (imm_expr.X_op != O_big
+ && imm_expr.X_op != O_constant)
+ insn_error = _("absolute expression required");
+ if (HAVE_32BIT_GPRS)
+ normalize_constant_expr (&imm_expr);
+ s = expr_end;
+ continue;
+
case 'a': /* 26 bit address */
case 'i':
my_getExpression (&offset_expr, s);