Created attachment 23432 [details] Sample code. Using the embedded 64-bit floating-point unit causes an internal compiler error in combination with the small data area: powerpc-rtems4.11-gcc -c paranoia.i -mcpu=8540 -meabi -msdata -fno-common -mfloat-gprs=double -mabi=spe /home/sh/rtems-sync/c/src/../../testsuites/samples/paranoia/paranoia.c: In function 'paranoia': /home/sh/rtems-sync/c/src/../../testsuites/samples/paranoia/paranoia.c:1955:1: internal compiler error: output_operand: invalid %y value, try using the 'Z' constraint
Adding the -mspe (in addition to -mabi=spe) option helped. It seems that only few combinations of the -mcpu=8520, -mfloat-gprs=*, -mspe, and -mabi=spe flags are well tested in GCC. The following combinations worked: (1) -mcpu=8540 -msoft-float (2) -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=single (3) -mcpu=8540 -mspe -mabi=spe -mfloat-gprs=double
So, not a bug.