This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Excessive limitation on gas for MIPS?


> 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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]