This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH 05/20] MIPS/GAS: Use EXTRACT_OPERAND to get at the registers
- From: "Maciej W. Rozycki" <macro at codesourcery dot com>
- To: Richard Sandiford <rdsandiford at googlemail dot com>
- Cc: Catherine Moore <clm at codesourcery dot com>, binutils at sourceware dot org
- Date: Thu, 2 Dec 2010 19:18:02 +0000 (GMT)
- Subject: [PATCH 05/20] MIPS/GAS: Use EXTRACT_OPERAND to get at the registers
Hi,
Here is a small change to macro() that makes it extract register numbers
from the instruction being handled with the EXTRACT_OPERAND() macro rather
than by handcoding the respective operations. This is no different to
what mips16_macro() already does BTW.
2010-12-02 Maciej W. Rozycki <macro@codesourcery.com>
gas/
* config/tc-mips.c (macro): Use EXTRACT_OPERAND to get register
numbers.
OK to apply?
Maciej
binutils-gas-mips-extract-operand.diff
Index: binutils-fsf-trunk-quilt/gas/config/tc-mips.c
===================================================================
--- binutils-fsf-trunk-quilt.orig/gas/config/tc-mips.c 2010-12-01 21:05:49.000000000 +0000
+++ binutils-fsf-trunk-quilt/gas/config/tc-mips.c 2010-12-01 21:05:50.000000000 +0000
@@ -4829,9 +4829,9 @@ macro (struct mips_cl_insn *ip)
gas_assert (! mips_opts.mips16);
- treg = (ip->insn_opcode >> 16) & 0x1f;
- dreg = (ip->insn_opcode >> 11) & 0x1f;
- sreg = breg = (ip->insn_opcode >> 21) & 0x1f;
+ treg = EXTRACT_OPERAND (RT, *ip);
+ dreg = EXTRACT_OPERAND (RD, *ip);
+ sreg = breg = EXTRACT_OPERAND (RS, *ip);
mask = ip->insn_mo->mask;
expr1.X_op = O_constant;