aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1993-10-27 15:52:03 +0000
committerIan Lance Taylor <ian@airs.com>1993-10-27 15:52:03 +0000
commit56c96faae66060c5c7e2fb95b5b9db990bd2946e (patch)
treeb67660084ff2858db09ac15e193758b26082cdf1
parent70643dbc1331cf90a8ce9b9efaae6370565ed737 (diff)
downloadgdb-56c96faae66060c5c7e2fb95b5b9db990bd2946e.zip
gdb-56c96faae66060c5c7e2fb95b5b9db990bd2946e.tar.gz
gdb-56c96faae66060c5c7e2fb95b5b9db990bd2946e.tar.bz2
* config/tc-mips.c (macro_build): Handle '>' case (shift amount
between 32 and 63 for double shift instruction). (mips_ip): Likewise. (printInsn): Likewise.
-rw-r--r--gas/ChangeLog7
-rw-r--r--gas/config/tc-mips.c13
2 files changed, 20 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index f670ef1..f0edd30 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,10 @@
+Wed Oct 27 11:48:56 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
+
+ * config/tc-mips.c (macro_build): Handle '>' case (shift amount
+ between 32 and 63 for double shift instruction).
+ (mips_ip): Likewise.
+ (printInsn): Likewise.
+
Tue Oct 26 16:58:36 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com)
* config/tc-ns32k.c (tc_aout_fix_to_chars): Output the symbol
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 8da2027..e67731a 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -1166,6 +1166,7 @@ macro_build (counter, ep, name, fmt, va_alist)
continue;
case '<':
+ case '>':
insn.insn_opcode |= va_arg (args, int) << 6;
continue;
@@ -3060,6 +3061,17 @@ mips_ip (str, ip)
s = expr_end;
continue;
+ case '>': /* shift amount minus 32 */
+ my_getExpression (&imm_expr, s);
+ check_absolute_expr (ip, &imm_expr);
+ if ((unsigned long) imm_expr.X_add_number < 32
+ || (unsigned long) imm_expr.X_add_number > 63)
+ break;
+ ip->insn_opcode |= (imm_expr.X_add_number - 32) << 6;
+ imm_expr.X_op = O_absent;
+ s = expr_end;
+ continue;
+
case 'c': /* break code */
my_getExpression (&imm_expr, s);
check_absolute_expr (ip, &imm_expr);
@@ -4051,6 +4063,7 @@ printInsn (oc)
continue;
case '<':
+ case '>':
printf ("$%d", shamt);
continue;