* config/tc-mips.c (macro_build): Handle '>' case (shift amount

between 32 and 63 for double shift instruction).
	(mips_ip): Likewise.
	(printInsn): Likewise.
This commit is contained in:
Ian Lance Taylor
1993-10-27 15:52:03 +00:00
parent 70643dbc13
commit 56c96faae6
2 changed files with 20 additions and 0 deletions

View File

@@ -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;