When compiling gcc with the --with-cpu=ep9312 and --with-fpu=maverick options Gcc was configured with: --prefix=/usr --bindir=/usr/armv4l-unknown-linux-gnu/gcc-bin/4.0.2 --includedir=/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include --datadir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2 --mandir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2/man --infodir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2/info --with-gxx-include-dir=/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include/g++-v4 --host=x86_64-pc-linux-gnu --target=armv4l-unknown-linux-gnu --with-cpu=ep9312 --with-fpu=maverick --build=x86_64-pc-linux-gnu --disable-altivec --disable-nls --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++ --with-sysroot=/usr/armv4l-unknown-linux-gnu --enable-__cxa_atexit --enable-clocale=gnu This is the error: /tmp/build/gcc/xgcc -B/tmp/build/gcc/ -B/usr/armv4l-unknown-linux-gnu/bin/ -B/usr/armv4l-unknown-linux-gnu/lib/ -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -mcpu=ep9312 -mfpu=maverick -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc-4.0.2/gcc -I../../gcc-4.0.2/gcc/. -I../../gcc-4.0.2/gcc/../include -I../../gcc-4.0.2/gcc/../libcpp/include -DL_fixunssfsi -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-4.0.2/gcc/libgcc2.c -o libgcc/./_fixunssfsi.o ../../gcc-4.0.2/gcc/libgcc2.c: In function '__fixunssfsi': ../../gcc-4.0.2/gcc/libgcc2.c:1517: error: insn does not satisfy its constraints: (insn 75 7 6 0 (set (reg:SI 28 mv1) (const_int 1325400064 [0x4f000000])) 143 {*arm_movsi_insn} (nil) (nil)) ../../gcc-4.0.2/gcc/libgcc2.c:1517: internal compiler error: in copyprop_hardreg_forward_1, at regrename.c:1570 Executing with -v: /tmp/build/gcc/xgcc -B/tmp/build/gcc/ -B/usr/armv4l-unknown-linux-gnu/bin/ -B/usr/armv4l-unknown-linux-gnu/lib/ -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -O2 -DIN_GCC -DCROSS_COMPILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fomit-frame-pointer -fPIC -mcpu=ep9312 -mfpu=maverick -g0 -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../gcc-4.0.2/gcc -I../../gcc-4.0.2/gcc/. -I../../gcc-4.0.2/gcc/../include -I../../gcc-4.0.2/gcc/../libcpp/include -DL_fixunssfsi -fvisibility=hidden -DHIDE_EXPORTS -c ../../gcc-4.0.2/gcc/libgcc2.c -o libgcc/./_fixunssfsi.o -v -save-temps -v Reading specs from /tmp/build/gcc/specs Target: armv4l-unknown-linux-gnu Configured with: ../gcc-4.0.2/configure --prefix=/usr --bindir=/usr/armv4l-unknown-linux-gnu/gcc-bin/4.0.2 --includedir=/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include --datadir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2 --mandir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2/man --infodir=/usr/share/gcc-data/armv4l-unknown-linux-gnu/4.0.2/info --with-gxx-include-dir=/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include/g++-v4 --host=x86_64-pc-linux-gnu --target=armv4l-unknown-linux-gnu --with-cpu=ep9312 --with-fpu=maverick --build=x86_64-pc-linux-gnu --disable-altivec --disable-nls --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --disable-multilib --disable-libgcj --enable-languages=c,c++ --with-sysroot=/usr/armv4l-unknown-linux-gnu --enable-__cxa_atexit --enable-clocale=gnu Thread model: posix gcc version 4.0.2 /tmp/build/gcc/cc1 -E -quiet -v -v -I. -I. -I../../gcc-4.0.2/gcc -I../../gcc-4.0.2/gcc/. -I../../gcc-4.0.2/gcc/../include -I../../gcc-4.0.2/gcc/../libcpp/include -iprefix /tmp/build/gcc/../../../lib/gcc/armv4l-unknown-linux-gnu/4.0.2/ -isystem /tmp/build/gcc/include -DIN_GCC -DCROSS_COMPILE -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -DL_fixunssfsi -DHIDE_EXPORTS -isystem /usr/armv4l-unknown-linux-gnu/include -isystem /usr/armv4l-unknown-linux-gnu/sys-include -isystem ./include ../../gcc-4.0.2/gcc/libgcc2.c -mcpu=ep9312 -mfpu=maverick -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -fomit-frame-pointer -fPIC -fvisibility=hidden -O2 -fpch-preprocess -o libgcc2.i ignoring duplicate directory "/usr/armv4l-unknown-linux-gnu/sys-include" ignoring duplicate directory "./include" ignoring nonexistent directory "/tmp/build/gcc/../../../lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include" ignoring nonexistent directory "/tmp/build/gcc/../../../lib/gcc/armv4l-unknown-linux-gnu/4.0.2/../../../../armv4l-unknown-linux-gnu/include" ignoring nonexistent directory "/usr/armv4l-unknown-linux-gnu/usr/local/include" ignoring duplicate directory "/usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/../../../../armv4l-unknown-linux-gnu/include" ignoring duplicate directory "/usr/armv4l-unknown-linux-gnu/usr/include" ignoring duplicate directory "." ignoring duplicate directory "../../gcc-4.0.2/gcc/." #include "..." search starts here: #include <...> search starts here: . ../../gcc-4.0.2/gcc ../../gcc-4.0.2/gcc/../include ../../gcc-4.0.2/gcc/../libcpp/include /tmp/build/gcc/include /usr/armv4l-unknown-linux-gnu/include /usr/lib/gcc/armv4l-unknown-linux-gnu/4.0.2/include End of search list. /tmp/build/gcc/cc1 -fpreprocessed libgcc2.i -quiet -dumpbase libgcc2.c -mcpu=ep9312 -mfpu=maverick -auxbase-strip libgcc/./_fixunssfsi.o -g0 -O2 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version -fomit-frame-pointer -fPIC -fvisibility=hidden -o libgcc2.s GNU C version 4.0.2 (armv4l-unknown-linux-gnu) compiled by GNU C version 3.4.3 20041125 (Gentoo 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7). GGC heuristics: --param ggc-min-expand=96 --param ggc-min-heapsize=124136 ../../gcc-4.0.2/gcc/libgcc2.c: In function '__fixunssfsi': ../../gcc-4.0.2/gcc/libgcc2.c:1517: error: insn does not satisfy its constraints: (insn 75 7 6 0 (set (reg:SI 28 mv1) (const_int 1325400064 [0x4f000000])) 143 {*arm_movsi_insn} (nil) (nil)) ../../gcc-4.0.2/gcc/libgcc2.c:1517: internal compiler error: in copyprop_hardreg_forward_1, at regrename.c:1570
Created attachment 10241 [details] preprocessed source, as required
There is the very same problem with gcc 4.0.0
Subject: Bug 24861 Author: rearnsha Date: Wed Nov 16 22:14:38 2005 New Revision: 107104 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107104 Log: PR target/24861 * arm.md (split for movsf with immediate): Restrict split to insns that set a general register. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm.md
Subject: Bug 24861 Author: rearnsha Date: Wed Nov 16 22:31:14 2005 New Revision: 107105 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=107105 Log: PR target/24861 * arm.md (split for movsf with immediate): Restrict split to insns that set a general register. Modified: branches/gcc-4_0-branch/gcc/ChangeLog branches/gcc-4_0-branch/gcc/config/arm/arm.md
There was a split pattern that was converting a set of a floating point value into a set of an integer value. This doesn't match anything if the register being set is a Maverick Co-pro register, and in general we only want to do this if setting an ARM core register. Having restricted the pattern in this way, the extra constraint that disabled the pattern for the FPA is no-longer relevant.