This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [Patch] [MIPS] Change opcode membership of the jalx instruction
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: Catherine Moore <clm at codesourcery dot com>
- Cc: binutils at sourceware dot org
- Date: Sun, 23 May 2010 22:54:44 +0100
- Subject: Re: [Patch] [MIPS] Change opcode membership of the jalx instruction
- References: <4BF57E7C.8020205@codesourcery.com>
Catherine Moore <clm@codesourcery.com> writes:
> This patch changes the opcode membership of the jalx instruction from
> I16 to I1. As a result, the use of I16 becomes obsolete along with
> the definitions and uses of INSN_MIPS16. A new testcase is added and
> an inappropriate testcase is deleted.
Hmm, this is one of those things that someone obviously did deliberately,
but the reasons why are probably lost in the mists of time. I agree the
current behaviour makes little sense. Something like:
.set arch=vr4130
jalx foo
ought to work.
> gas/
> * config/tc-mips.c (is_opcode_valid): Remove expansionp.
> (macro_build): Don't pass expansionp to is_opcode_valid.
> (mips_ip): Likewise.
>
> gas/testsuite/
> * gas/mips/mips-jalx-2.s: New test.
> * gas/mips/mips-jalx-2.d: New test output.
> * gas/mips/mips-no-jalx.l: Delete.
> * gas/mips/mips-no-jalx.s: Delete.
> * gas/mips/mips.exp: Add mips-jalx-2. Delete mips-no-jalx.
>
> include/opcode/
> * mips.h (INSN_MIPS16): Remove.
> opcodes/
> * mips-dis.c (mips_arch_choices): Remove INSN_MIPS16 for
> CPU_MIPS32, CPU_MIPS32R2, CPU_MIPS64 and CPU_MIPS64R2.
> * mips-opc.c (I16): Remove definition.
> (mips_builtin_op): Change membership of jalx insn.
OK if no-one objects in 48 hours.
> -/* MIPS 16 ASE */
> -#define INSN_MIPS16 0x00004000
> +
Maybe leave a comment saying that 0x4000 is unused?
Richard