This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Patch to add -mfp32 support to MIPS gas
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