Gcc cannot process in-lined assembler, when configured for powerpc-gnuspe target (Note: that target does not have float point registers, but it has float point sinstructions that operates on the general purpose registers). ra8797:/local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/gcc> /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/xgcc -B/local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/ -B/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/bin/ -B/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/lib/ -isystem /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/include -isystem /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/sys-include -O2 -O2 -g -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -specs=ldblspecs -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I -I../../gcc-trunk/gcc -I../../gcc-trunk/gcc/ -I../../gcc-trunk/gcc/../include -I../../gcc-trunk/gcc/../libcpp/include -I../../gcc-trunk/gcc/../libdecnumber -I../libdecnumber -fPIC -mstrict-align -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-trunk/gcc/config/rs6000/darwin-ldouble.c -o libgcc/./darwin-ldouble.o --save-temps -v Reading specs from /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/specs Reading specs from /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/ldblspecs Target: powerpc-unknown-linux-gnuspe Configured with: ../gcc-trunk/configure --prefix=/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1 --with-local-prefix=/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1 --enable-languages=c,c++ --enable-threads --target=powerpc-unknown-linux-gnuspe Thread model: posix gcc version 4.2.0 20060308 (experimental) /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/cc1 -E -quiet -v -I. -I -I../../gcc-trunk/gcc -I../../gcc-trunk/gcc/ -I../../gcc-trunk/gcc/../include -I../../gcc-trunk/gcc/../libcpp/include -I../../gcc-trunk/gcc/../libdecnumber -I../libdecnumber -iprefix /temp/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/gcc/../lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/ -isystem /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/include -D__unix__ -D__gnu_linux__ -D__linux__ -Dunix -D__unix -Dlinux -D__linux -Asystem=linux -Asystem=unix -Asystem=posix -DIN_GCC -DCROSS_COMPILE -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -DHIDE_EXPORTS -isystem /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/include -isystem /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/sys-include -isystem ./include ../../gcc-trunk/gcc/config/rs6000/darwin-ldouble.c -mstrict-align -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -fPIC -fPIC -fvisibility=hidden -fworking-directory -O2 -O2 -O2 -fpch-preprocess -o darwin-ldouble.i ignoring nonexistent directory "/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/include" ignoring duplicate directory "./include" ignoring nonexistent directory "/temp/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/gcc/../lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/include" ignoring nonexistent directory "/temp/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/gcc/../lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/sys-include" ignoring nonexistent directory "/temp/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/gcc/../lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/include" ignoring duplicate directory "/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/sys-include" ignoring nonexistent directory "/local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/../../../../powerpc-unknown-linux-gnuspe/include" ignoring nonexistent directory "-I../../gcc-trunk/gcc" #include "..." search starts here: #include <...> search starts here: . ../../gcc-trunk/gcc/ ../../gcc-trunk/gcc/../include ../../gcc-trunk/gcc/../libcpp/include ../../gcc-trunk/gcc/../libdecnumber ../libdecnumber /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/include /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/powerpc-unknown-linux-gnuspe/sys-include /local/gnu_toolchain/install-gcc-trunk-20060308-e500v1/lib/gcc/powerpc-unknown-linux-gnuspe/4.2.0/include End of search list. /local/gnu_toolchain/build_area/obj_gcc_gcc-trunk_e500v1/./gcc/cc1 -fpreprocessed darwin-ldouble.i -quiet -dumpbase darwin-ldouble.c -mstrict-align -auxbase-strip libgcc/./darwin-ldouble.o -g -g -O2 -O2 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version -fPIC -fPIC -fvisibility=hidden -mlong-double-128 -o darwin-ldouble.s GNU C version 4.2.0 20060308 (experimental) (powerpc-unknown-linux-gnuspe) compiled by GNU C version 3.4.3. GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096 Compiler executable checksum: 992a552977f881ca86a06270e1959aa6 ../../gcc-trunk/gcc/config/rs6000/darwin-ldouble.c: In function '__gcc_qdiv': ../../gcc-trunk/gcc/config/rs6000/darwin-ldouble.c:189: error: impossible constraint in 'asm'
Created attachment 10994 [details] Intermediate file for reported bug
Same error observed on gcc-4_1-branch 20060308
This was caused by the 128bit long doubles patches (well really caused by a secondary patch to work around a code gen issue).
I should had looked into this one. This is what I was afraid of when this idea 128bits long double went it. It was not the optimization which I thought was applied but instead just the compiling of darwin-ldouble.c on powerpc-linux-gnuspe which caused it: 2006-01-27 David Edelsohn <edelsohn@gnu.org> Alan Modra <amodra@bigpond.net.au> * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
Subject: Bug 26607 Author: amodra Date: Thu Mar 23 22:23:24 2006 New Revision: 112334 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112334 Log: PR target/26607 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__ or __LITTLE_ENDIAN__. Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/darwin-ldouble.c
Subject: Bug 26607 Author: amodra Date: Thu Mar 23 22:23:58 2006 New Revision: 112335 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=112335 Log: PR target/26607 * config/rs6000/darwin-ldouble.c: Don't compile when __NO_FPRS__ or __LITTLE_ENDIAN__. Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/config/rs6000/darwin-ldouble.c
fixed