complex support on alpha

Jim Wilson wilson@cygnus.com
Thu Oct 2 20:35:00 GMT 1997


	egcs on alpha-dec-osf4.0 fails to generate correct code for
	gcc.c-torture/execute/complex-5.c 
	in the testsuite, because gcc does not calculate correctly the number of
	registers needed for 'float __complex__'.  Instead of 2 registers, gcc
	says only one register is needed. 

It has been broken ever since the initial implementation.  There is a general
problem that __complex__ X fails if X is half the word size or smaller.
For instance, __complex__ short will fail on any 32 bit machine in the same
way that __complex__ float fails on the alpha.  It would be nice to see this
fixed.

Hopefully it can be fixed in a way that doesn't require changes to
every target.  If the alpha.h file requires fixes to make __complex__ float
work, then that implies that every tm.h file needs fixes to fix the general
__complex__ problem.

Jim



More information about the Gcc mailing list