2009-06-22 Kai Tietz <kai.tietz@onevision.com>
* config.gcc: Add for x86 and x64 mingw targets t-fprules-soft
and t-softfp support.
* config/i386/mingw32.h (LIBGCC2_HAS_TF_MODE): Enable TFmode.
(LIBGCC2_TF_CEXT): Define.
(TF_SIZE): Define.
ChangeLog for libgcc
2009-06-22 Kai Tietz <kai.tietz@onevision.com>
* config.host: Add soft emulation for x86 and x64 mingw targets.
* config/i386/64/_divtc3.c: Disable for mingw targets usage of
.symver assembly symbol.
* config/i386/64/_multc3.c: Likewise.
* config/i386/64/_powitf2.c: Likewise.
* config/i386/64/eqtf2.c: Likewise.
* config/i386/64/getf2.c: Likewise.
* config/i386/64/letf2.c: Likewise.
* config/i386/64/letf2.c: Likewise.
* config/i386/64/sfp-machine.h (_FP_W_TYPE): Define it
for x64 mingw target as unsigned long long.
(_FP_WS_TYPE): Define it for x64 mingw target as signed long
long.
(_FP_I_TYPE): Define it for x64 mingw target as long long.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@148798
138bc75d-0d04-0410-961f-
82ee72b054a4
i[34567]86-*-linux* | x86_64-*-linux* | i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp i386/t-linux"
;;
- i[34567]86-*-cygwin*)
+ i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
tmake_file="${tmake_file} i386/t-fprules-softfp soft-fp/t-softfp"
;;
ia64*-*-linux*)
#define STANDARD_STARTFILE_PREFIX_2 ""
#endif
+/* Put all *tf routines in libgcc. */
+#undef LIBGCC2_HAS_TF_MODE
+#define LIBGCC2_HAS_TF_MODE 1
+#undef LIBGCC2_TF_CEXT
+#define LIBGCC2_TF_CEXT q
+#undef TF_SIZE
+#define TF_SIZE 113
+
/* Output STRING, a string representing a filename, to FILE.
We canonicalize it to be in Unix format (backslashes are replaced
forward slashes. */
i[34567]86-*-darwin* | x86_64-*-darwin* | \
i[34567]86-*-kfreebsd*-gnu | x86_64-*-kfreebsd*-gnu | \
i[34567]86-*-linux* | x86_64-*-linux* | \
- i[34567]86-*-cygwin*)
+ i[34567]86-*-cygwin* | i[34567]86-*-mingw* | x86_64-*-mingw*)
if test "${host_address}" = 32; then
tmake_file="${tmake_file} t-softfp i386/${host_address}/t-fprules-softfp"
fi
#undef __divtc3
extern __typeof__ (__divtc3_shared) __divtc3_compat __attribute__((alias ("__divtc3_shared")));
+#ifndef _WIN32
asm (".symver __divtc3_compat,__divtc3@GCC_4.0.0");
asm (".symver __divtc3_shared,__divtc3@@GCC_4.3.0");
#endif
+#endif
#undef __multc3
extern __typeof__ (__multc3_shared) __multc3_compat __attribute__((alias ("__multc3_shared")));
+#ifndef _WIN32
asm (".symver __multc3_compat,__multc3@GCC_4.0.0");
asm (".symver __multc3_shared,__multc3@@GCC_4.3.0");
#endif
+#endif
#undef __powitf2
extern __typeof__ (__powitf2_shared) __powitf2_compat __attribute__((alias ("__powitf2_shared")));
+#ifndef _WIN32
asm (".symver __powitf2_compat,__powitf2@GCC_4.0.0");
asm (".symver __powitf2_shared,__powitf2@@GCC_4.3.0");
#endif
+#endif
#undef __netf2
strong_alias (__netf2_shared, __netf2_compat);
+#ifndef _WIN32
asm (".symver __netf2_compat,__netf2@GCC_3.0");
asm (".symver __netf2_shared,__netf2@@GCC_4.3.0");
#endif
+#endif
#undef __gttf2
strong_alias (__gttf2_shared, __gttf2_compat);
+#ifndef _WIN32
asm (".symver __gttf2_compat,__gttf2@GCC_3.0");
asm (".symver __gttf2_shared,__gttf2@@GCC_4.3.0");
#endif
+#endif
#undef __lttf2
strong_alias (__lttf2_shared, __lttf2_compat);
+#ifndef _WIN32
asm (".symver __lttf2_compat,__lttf2@GCC_3.0");
asm (".symver __lttf2_shared,__lttf2@@GCC_4.3.0");
#endif
+#endif
#define _FP_W_TYPE_SIZE 64
-#define _FP_W_TYPE unsigned long
-#define _FP_WS_TYPE signed long
-#define _FP_I_TYPE long
+
+#ifdef _WIN64
+ #define _FP_W_TYPE unsigned long long
+ #define _FP_WS_TYPE signed long long
+ #define _FP_I_TYPE long long
+#else
+ #define _FP_W_TYPE unsigned long
+ #define _FP_WS_TYPE signed long
+ #define _FP_I_TYPE long
+#endif
typedef int TItype __attribute__ ((mode (TI)));
typedef unsigned int UTItype __attribute__ ((mode (TI)));