Patch to add -mfp32 support to MIPS gas

Richard Sandiford r.sandiford@redhat.com
Tue Jul 31 06:02:00 GMT 2001


Eric Christopher <echristo@redhat.com> writes:

> Since no one has any further objections...

Sorry, I screwed up the mime stuff, so the text part didn't come through...

The patch below includes the documentation.

In the second patch, I failed to pick up on the fact that the way the "move"
instruction is expanded depends on mips_gp32.  The patch below makes it
depend on HAVE_32BIT_GPRS instead, so that the 32-bit version gets used when
a 32-bit ABI is selected.  I've added a move test to the testcases.

But, can anyone explain these entries in mips-opc.c:

{"move",    "d,s",	0x00000025, 0xfc1f07ff,	WR_d|RD_s,		M1|G6	},/* or */
{"move",    "d,s",	0x0000002d, 0xfc1f07ff, WR_d|RD_s,		M3	},/* daddu */
{"move",    "d,s",	0x00000021, 0xfc1f07ff, WR_d|RD_s,		M1	},/* addu */
{"move",    "d,s",	0x00000025, 0xfc1f07ff,	WR_d|RD_s,		M1	},/* or */

The archives say that "addu" is preferred to "or" because some processors
have two addition units but only a single logic unit:

     < http://sources.redhat.com/ml/binutils/1999-10/msg00132.html >

But why that last entry?  And why not use "addu" for -mgp32 as well?

Richard



More information about the Binutils mailing list