Hello, Patch in the bottom adds support of IA MCU psABI to libgcc (enables soft-fp) and libdecnumber (enables it for IA MCU).
Bootstrapped and regtested on top of [1/3] patch. config/ * dfp.m4 (enable_decimal_float): Also set to yes for i?86*-*-elfiamcu target. gcc/ * configure: Regenerated. libdecnumber/ * configure: Regenerated. libgcc/ * config.host: Support i[34567]86-*-elfiamcu target. * config/i386/32/t-iamcu: New file. * configure: Regenerated. Is it OK for trunk? -- Thanks, K diff --git a/config/dfp.m4 b/config/dfp.m4 index 48683f0..5b29089 100644 --- a/config/dfp.m4 +++ b/config/dfp.m4 @@ -21,7 +21,7 @@ Valid choices are 'yes', 'bid', 'dpd', and 'no'.]) ;; [ case $1 in powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ - i?86*-*-gnu* | \ + i?86*-*-elfiamcu | i?86*-*-gnu* | \ i?86*-*-mingw* | x86_64*-*-mingw* | \ i?86*-*-cygwin* | x86_64*-*-cygwin*) enable_decimal_float=yes diff --git a/gcc/configure b/gcc/configure index b26a86f..64eeac6 100755 --- a/gcc/configure +++ b/gcc/configure @@ -7317,7 +7317,7 @@ else case $target in powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ - i?86*-*-gnu* | \ + i?86*-*-elfiamcu | i?86*-*-gnu* | \ i?86*-*-mingw* | x86_64*-*-mingw* | \ i?86*-*-cygwin* | x86_64*-*-cygwin*) enable_decimal_float=yes diff --git a/libdecnumber/configure b/libdecnumber/configure index 2720f46..964837d 100755 --- a/libdecnumber/configure +++ b/libdecnumber/configure @@ -4614,7 +4614,7 @@ else case $target in powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ - i?86*-*-gnu* | \ + i?86*-*-elfiamcu | i?86*-*-gnu* | \ i?86*-*-mingw* | x86_64*-*-mingw* | \ i?86*-*-cygwin* | x86_64*-*-cygwin*) enable_decimal_float=yes diff --git a/libgcc/config.host b/libgcc/config.host index 46666df..dd8e356 100644 --- a/libgcc/config.host +++ b/libgcc/config.host @@ -562,6 +562,9 @@ x86_64-*-darwin*) tm_file="$tm_file i386/darwin-lib.h" extra_parts="$extra_parts crtprec32.o crtprec64.o crtprec80.o crtfastmath.o" ;; +i[34567]86-*-elfiamcu) + tmake_file="$tmake_file i386/t-crtstuff t-softfp-sfdf i386/32/t-softfp i386/32/t-iamcu i386/t-softfp t-softfp t-dfprules" + ;; i[34567]86-*-elf*) tmake_file="$tmake_file i386/t-crtstuff t-crtstuff-pic t-libgcc-pic" ;; diff --git a/libgcc/config/i386/32/t-iamcu b/libgcc/config/i386/32/t-iamcu new file mode 100644 index 0000000..0752bff --- /dev/null +++ b/libgcc/config/i386/32/t-iamcu @@ -0,0 +1,6 @@ +softfp_float_modes += tf +softfp_extensions += sftf dftf xftf +softfp_truncations += tfsf tfdf tfxf +softfp_exclude_libgcc2 := n + +HOST_LIBGCC2_CFLAGS += -mlong-double-80 diff --git a/libgcc/configure b/libgcc/configure index ce66d1d..e22cbcb 100644 --- a/libgcc/configure +++ b/libgcc/configure @@ -4436,7 +4436,7 @@ else case $host in powerpc*-*-linux* | i?86*-*-linux* | x86_64*-*-linux* | s390*-*-linux* | \ - i?86*-*-gnu* | \ + i?86*-*-elfiamcu | i?86*-*-gnu* | \ i?86*-*-mingw* | x86_64*-*-mingw* | \ i?86*-*-cygwin* | x86_64*-*-cygwin*) enable_decimal_float=yes