[Patch] [MIPS] Change opcode membership of the jalx instruction

Richard Sandiford rdsandiford@googlemail.com
Sun May 23 21:54:00 GMT 2010


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



More information about the Binutils mailing list