This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: Excessive limitation on gas for MIPS?
- From: Sean McNeil <sean at mcneil dot com>
- To: binutils at sources dot redhat dot com
- Date: 18 Mar 2003 15:36:42 -0800
- Subject: Re: Excessive limitation on gas for MIPS?
- Organization: Sean McNeil Consulting
> It is wrong. HAVE_32BIT_GPRS checks if the CPU/the ABI allows to use
> registers wider than 32 bits. The case you are observing should be
> handled by the code immediately above the part you changed.
>
> Could you provide the preprocessed assembly which triggers this case?
I am using the following switches to an older GCC:
-G0 -mips4 -mlong32 -EB -ansi -fno-builtin -O -Wall
The assembler end up getting called with:
-G0 -EB -mips4 -O2 -v -mabi=32
even though cc1 was called with:
-mfp64 -mgp64 -mexplicit-type-size -G0 -meb -quiet -dumpbase
bcm1250MacEnd.c -mips4 -mlong32
It turns out that there is a spec in the compiler that passes -mabi=32
when no abi was specified. It is this that is causing trouble as the
compiler is generating assembly like:
dli $3,0x5ee400000040000
the assembler is only displaying the lower significant 32 bits in the
message, by the way.
so,
1) an abi of 32 implies 32-bit registers? I shouldn't think so.
2) Doesn't a "dli" instruction state "double load" or 64 bits?
3) This behavior has changed from previous gas versions.
Thanks for the input. I am not on the binutils list, so I had to check
the archive to see your response.
Cheers,
Sean