summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authormrg <mrg@NetBSD.org>2016-06-30 09:06:35 +0000
committermrg <mrg@NetBSD.org>2016-06-30 09:06:35 +0000
commitccbfe3f582a16ce09feb0ff94de6911725935a47 (patch)
tree649cd4b46d95d94ceb902ec700bfd5c1920b1a8b /external
parent011df68bc6780e101c5c0d382f9c9b18884d6e79 (diff)
enable some soft-fp for ia64, needed for libgcc. re-mknative-gcc.
Diffstat (limited to 'external')
-rw-r--r--external/gpl3/gcc/dist/libgcc/config.host2
-rw-r--r--external/gpl3/gcc/lib/libgcc/arch/ia64/defs.mk2
-rw-r--r--external/gpl3/gcc/lib/libiberty/arch/ia64/config.h2
-rw-r--r--external/gpl3/gcc/usr.bin/gcc/arch/ia64/insn-modes.h420
4 files changed, 423 insertions, 3 deletions
diff --git a/external/gpl3/gcc/dist/libgcc/config.host b/external/gpl3/gcc/dist/libgcc/config.host
index e81a73b0f21..dcddf2e60ed 100644
--- a/external/gpl3/gcc/dist/libgcc/config.host
+++ b/external/gpl3/gcc/dist/libgcc/config.host
@@ -765,7 +765,7 @@ ia64*-*-linux*)
;;
ia64*-*-netbsd*)
extra_parts="${extra_parts} crtfastmath.o"
- tmake_file="${tmake_file} ia64/t-ia64 ia64/t-ia64-elf ia64/t-eh-ia64 t-crtfm"
+ tmake_file="${tmake_file} ia64/t-ia64 ia64/t-ia64-elf t-crtfm ia64/t-softfp t-softfp ia64/t-eh-ia64"
;;
ia64*-*-hpux*)
tmake_file="ia64/t-ia64 ia64/t-ia64-elf ia64/t-hpux t-slibgcc ia64/t-slibgcc-hpux t-slibgcc-hpux"
diff --git a/external/gpl3/gcc/lib/libgcc/arch/ia64/defs.mk b/external/gpl3/gcc/lib/libgcc/arch/ia64/defs.mk
index f113b6d31b9..3e96e674397 100644
--- a/external/gpl3/gcc/lib/libgcc/arch/ia64/defs.mk
+++ b/external/gpl3/gcc/lib/libgcc/arch/ia64/defs.mk
@@ -3,7 +3,7 @@
# Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp
#
G_INCLUDES=-I. -I. -I../.././gcc -I${GNUHOSTDIST}/libgcc -I${GNUHOSTDIST}/libgcc/. -I${GNUHOSTDIST}/libgcc/../gcc -I${GNUHOSTDIST}/libgcc/../include
-G_LIB2ADD= enable-execute-stack.c
+G_LIB2ADD= ${GNUHOSTDIST}/libgcc/config/ia64/tf-signs.c ${GNUHOSTDIST}/libgcc/config/ia64/sfp-exceptions.c enable-execute-stack.c
G_LIB2ADDEH=${GNUHOSTDIST}/libgcc/config/ia64/unwind-ia64.c ${GNUHOSTDIST}/libgcc/unwind-sjlj.c ${GNUHOSTDIST}/libgcc/unwind-c.c ${GNUHOSTDIST}/libgcc/emutls.c
G_LIB2ADD_ST=
G_LIB1ASMFUNCS=__divxf3 __divdf3 __divsf3 __divdi3 __moddi3 __udivdi3 __umoddi3 __divsi3 __modsi3 __udivsi3 __umodsi3 __save_stack_nonlocal __nonlocal_goto __restore_stack_nonlocal __trampoline _fixtfdi _fixunstfdi _floatditf
diff --git a/external/gpl3/gcc/lib/libiberty/arch/ia64/config.h b/external/gpl3/gcc/lib/libiberty/arch/ia64/config.h
index 88d4941e027..aaff304d57c 100644
--- a/external/gpl3/gcc/lib/libiberty/arch/ia64/config.h
+++ b/external/gpl3/gcc/lib/libiberty/arch/ia64/config.h
@@ -224,7 +224,7 @@
#define HAVE_RINDEX 1
/* Define to 1 if you have the `sbrk' function. */
-/* #undef HAVE_SBRK */
+#define HAVE_SBRK 1
/* Define to 1 if you have the `setenv' function. */
#define HAVE_SETENV 1
diff --git a/external/gpl3/gcc/usr.bin/gcc/arch/ia64/insn-modes.h b/external/gpl3/gcc/usr.bin/gcc/arch/ia64/insn-modes.h
new file mode 100644
index 00000000000..3067a0cda0c
--- /dev/null
+++ b/external/gpl3/gcc/usr.bin/gcc/arch/ia64/insn-modes.h
@@ -0,0 +1,420 @@
+/* This file is automatically generated. DO NOT EDIT! */
+/* Generated from: NetBSD: mknative-gcc,v 1.87 2016/03/17 23:41:21 mrg Exp */
+/* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp */
+
+/* Generated automatically from machmode.def and config/ia64/ia64-modes.def
+ by genmodes. */
+
+#ifndef GCC_INSN_MODES_H
+#define GCC_INSN_MODES_H
+
+enum machine_mode
+{
+ VOIDmode, /* machmode.def:172 */
+#define HAVE_VOIDmode
+ BLKmode, /* machmode.def:176 */
+#define HAVE_BLKmode
+ CCmode, /* machmode.def:214 */
+#define HAVE_CCmode
+ CCImode, /* config/ia64/ia64-modes.def:76 */
+#define HAVE_CCImode
+ BImode, /* machmode.def:179 */
+#define HAVE_BImode
+ QImode, /* machmode.def:187 */
+#define HAVE_QImode
+ HImode, /* machmode.def:188 */
+#define HAVE_HImode
+ SImode, /* machmode.def:189 */
+#define HAVE_SImode
+ DImode, /* machmode.def:190 */
+#define HAVE_DImode
+ TImode, /* machmode.def:191 */
+#define HAVE_TImode
+ OImode, /* config/ia64/ia64-modes.def:68 */
+#define HAVE_OImode
+ QQmode, /* machmode.def:217 */
+#define HAVE_QQmode
+ HQmode, /* machmode.def:218 */
+#define HAVE_HQmode
+ SQmode, /* machmode.def:219 */
+#define HAVE_SQmode
+ DQmode, /* machmode.def:220 */
+#define HAVE_DQmode
+ TQmode, /* machmode.def:221 */
+#define HAVE_TQmode
+ UQQmode, /* machmode.def:223 */
+#define HAVE_UQQmode
+ UHQmode, /* machmode.def:224 */
+#define HAVE_UHQmode
+ USQmode, /* machmode.def:225 */
+#define HAVE_USQmode
+ UDQmode, /* machmode.def:226 */
+#define HAVE_UDQmode
+ UTQmode, /* machmode.def:227 */
+#define HAVE_UTQmode
+ HAmode, /* machmode.def:229 */
+#define HAVE_HAmode
+ SAmode, /* machmode.def:230 */
+#define HAVE_SAmode
+ DAmode, /* machmode.def:231 */
+#define HAVE_DAmode
+ TAmode, /* machmode.def:232 */
+#define HAVE_TAmode
+ UHAmode, /* machmode.def:234 */
+#define HAVE_UHAmode
+ USAmode, /* machmode.def:235 */
+#define HAVE_USAmode
+ UDAmode, /* machmode.def:236 */
+#define HAVE_UDAmode
+ UTAmode, /* machmode.def:237 */
+#define HAVE_UTAmode
+ SFmode, /* machmode.def:209 */
+#define HAVE_SFmode
+ DFmode, /* machmode.def:210 */
+#define HAVE_DFmode
+ XFmode, /* config/ia64/ia64-modes.def:29 */
+#define HAVE_XFmode
+ RFmode, /* config/ia64/ia64-modes.def:30 */
+#define HAVE_RFmode
+ TFmode, /* config/ia64/ia64-modes.def:31 */
+#define HAVE_TFmode
+ SDmode, /* machmode.def:249 */
+#define HAVE_SDmode
+ DDmode, /* machmode.def:250 */
+#define HAVE_DDmode
+ TDmode, /* machmode.def:251 */
+#define HAVE_TDmode
+ CQImode, /* machmode.def:245 */
+#define HAVE_CQImode
+ CHImode, /* machmode.def:245 */
+#define HAVE_CHImode
+ CSImode, /* machmode.def:245 */
+#define HAVE_CSImode
+ CDImode, /* machmode.def:245 */
+#define HAVE_CDImode
+ CTImode, /* machmode.def:245 */
+#define HAVE_CTImode
+ COImode, /* machmode.def:245 */
+#define HAVE_COImode
+ SCmode, /* machmode.def:246 */
+#define HAVE_SCmode
+ DCmode, /* machmode.def:246 */
+#define HAVE_DCmode
+ XCmode, /* machmode.def:246 */
+#define HAVE_XCmode
+ RCmode, /* machmode.def:246 */
+#define HAVE_RCmode
+ TCmode, /* machmode.def:246 */
+#define HAVE_TCmode
+ V4QImode, /* config/ia64/ia64-modes.def:79 */
+#define HAVE_V4QImode
+ V2HImode, /* config/ia64/ia64-modes.def:79 */
+#define HAVE_V2HImode
+ V8QImode, /* config/ia64/ia64-modes.def:80 */
+#define HAVE_V8QImode
+ V4HImode, /* config/ia64/ia64-modes.def:80 */
+#define HAVE_V4HImode
+ V2SImode, /* config/ia64/ia64-modes.def:80 */
+#define HAVE_V2SImode
+ V16QImode, /* config/ia64/ia64-modes.def:81 */
+#define HAVE_V16QImode
+ V8HImode, /* config/ia64/ia64-modes.def:82 */
+#define HAVE_V8HImode
+ V4SImode, /* config/ia64/ia64-modes.def:83 */
+#define HAVE_V4SImode
+ V2SFmode, /* config/ia64/ia64-modes.def:84 */
+#define HAVE_V2SFmode
+ V4SFmode, /* config/ia64/ia64-modes.def:85 */
+#define HAVE_V4SFmode
+ MAX_MACHINE_MODE,
+
+ MIN_MODE_RANDOM = VOIDmode,
+ MAX_MODE_RANDOM = BLKmode,
+
+ MIN_MODE_CC = CCmode,
+ MAX_MODE_CC = CCImode,
+
+ MIN_MODE_INT = QImode,
+ MAX_MODE_INT = OImode,
+
+ MIN_MODE_PARTIAL_INT = VOIDmode,
+ MAX_MODE_PARTIAL_INT = VOIDmode,
+
+ MIN_MODE_POINTER_BOUNDS = VOIDmode,
+ MAX_MODE_POINTER_BOUNDS = VOIDmode,
+
+ MIN_MODE_FRACT = QQmode,
+ MAX_MODE_FRACT = TQmode,
+
+ MIN_MODE_UFRACT = UQQmode,
+ MAX_MODE_UFRACT = UTQmode,
+
+ MIN_MODE_ACCUM = HAmode,
+ MAX_MODE_ACCUM = TAmode,
+
+ MIN_MODE_UACCUM = UHAmode,
+ MAX_MODE_UACCUM = UTAmode,
+
+ MIN_MODE_FLOAT = SFmode,
+ MAX_MODE_FLOAT = TFmode,
+
+ MIN_MODE_DECIMAL_FLOAT = SDmode,
+ MAX_MODE_DECIMAL_FLOAT = TDmode,
+
+ MIN_MODE_COMPLEX_INT = CQImode,
+ MAX_MODE_COMPLEX_INT = COImode,
+
+ MIN_MODE_COMPLEX_FLOAT = SCmode,
+ MAX_MODE_COMPLEX_FLOAT = TCmode,
+
+ MIN_MODE_VECTOR_INT = V4QImode,
+ MAX_MODE_VECTOR_INT = V4SImode,
+
+ MIN_MODE_VECTOR_FRACT = VOIDmode,
+ MAX_MODE_VECTOR_FRACT = VOIDmode,
+
+ MIN_MODE_VECTOR_UFRACT = VOIDmode,
+ MAX_MODE_VECTOR_UFRACT = VOIDmode,
+
+ MIN_MODE_VECTOR_ACCUM = VOIDmode,
+ MAX_MODE_VECTOR_ACCUM = VOIDmode,
+
+ MIN_MODE_VECTOR_UACCUM = VOIDmode,
+ MAX_MODE_VECTOR_UACCUM = VOIDmode,
+
+ MIN_MODE_VECTOR_FLOAT = V2SFmode,
+ MAX_MODE_VECTOR_FLOAT = V4SFmode,
+
+ NUM_MACHINE_MODES = MAX_MACHINE_MODE
+};
+
+#define CONST_MODE_SIZE
+#define CONST_MODE_BASE_ALIGN
+#define CONST_MODE_IBIT const
+#define CONST_MODE_FBIT const
+
+#define BITS_PER_UNIT (8)
+#define MAX_BITSIZE_MODE_ANY_INT (32*BITS_PER_UNIT)
+#define MAX_BITSIZE_MODE_ANY_MODE (64*BITS_PER_UNIT)
+#define NUM_INT_N_ENTS 1
+
+#if !defined (USED_FOR_TARGET) && GCC_VERSION >= 4001
+
+#ifdef __cplusplus
+inline __attribute__((__always_inline__))
+#else
+extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
+#endif
+unsigned char
+mode_size_inline (machine_mode mode)
+{
+ extern unsigned char mode_size[NUM_MACHINE_MODES];
+ switch (mode)
+ {
+ case VOIDmode: return 0;
+ case BLKmode: return 0;
+ case CCmode: return 4;
+ case CCImode: return 4;
+ case BImode: return 1;
+ case QImode: return 1;
+ case HImode: return 2;
+ case SImode: return 4;
+ case DImode: return 8;
+ case TImode: return 16;
+ case OImode: return 32;
+ case QQmode: return 1;
+ case HQmode: return 2;
+ case SQmode: return 4;
+ case DQmode: return 8;
+ case TQmode: return 16;
+ case UQQmode: return 1;
+ case UHQmode: return 2;
+ case USQmode: return 4;
+ case UDQmode: return 8;
+ case UTQmode: return 16;
+ case HAmode: return 2;
+ case SAmode: return 4;
+ case DAmode: return 8;
+ case TAmode: return 16;
+ case UHAmode: return 2;
+ case USAmode: return 4;
+ case UDAmode: return 8;
+ case UTAmode: return 16;
+ case SFmode: return 4;
+ case DFmode: return 8;
+ case TFmode: return 16;
+ case SDmode: return 4;
+ case DDmode: return 8;
+ case TDmode: return 16;
+ case CQImode: return 2;
+ case CHImode: return 4;
+ case CSImode: return 8;
+ case CDImode: return 16;
+ case CTImode: return 32;
+ case COImode: return 64;
+ case SCmode: return 8;
+ case DCmode: return 16;
+ case TCmode: return 32;
+ case V4QImode: return 4;
+ case V2HImode: return 4;
+ case V8QImode: return 8;
+ case V4HImode: return 8;
+ case V2SImode: return 8;
+ case V16QImode: return 16;
+ case V8HImode: return 16;
+ case V4SImode: return 16;
+ case V2SFmode: return 8;
+ case V4SFmode: return 16;
+ default: return mode_size[mode];
+ }
+}
+
+#ifdef __cplusplus
+inline __attribute__((__always_inline__))
+#else
+extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
+#endif
+unsigned char
+mode_nunits_inline (machine_mode mode)
+{
+ extern const unsigned char mode_nunits[NUM_MACHINE_MODES];
+ switch (mode)
+ {
+ case VOIDmode: return 0;
+ case BLKmode: return 0;
+ case CCmode: return 1;
+ case CCImode: return 1;
+ case BImode: return 1;
+ case QImode: return 1;
+ case HImode: return 1;
+ case SImode: return 1;
+ case DImode: return 1;
+ case TImode: return 1;
+ case OImode: return 1;
+ case QQmode: return 1;
+ case HQmode: return 1;
+ case SQmode: return 1;
+ case DQmode: return 1;
+ case TQmode: return 1;
+ case UQQmode: return 1;
+ case UHQmode: return 1;
+ case USQmode: return 1;
+ case UDQmode: return 1;
+ case UTQmode: return 1;
+ case HAmode: return 1;
+ case SAmode: return 1;
+ case DAmode: return 1;
+ case TAmode: return 1;
+ case UHAmode: return 1;
+ case USAmode: return 1;
+ case UDAmode: return 1;
+ case UTAmode: return 1;
+ case SFmode: return 1;
+ case DFmode: return 1;
+ case XFmode: return 1;
+ case RFmode: return 1;
+ case TFmode: return 1;
+ case SDmode: return 1;
+ case DDmode: return 1;
+ case TDmode: return 1;
+ case CQImode: return 2;
+ case CHImode: return 2;
+ case CSImode: return 2;
+ case CDImode: return 2;
+ case CTImode: return 2;
+ case COImode: return 2;
+ case SCmode: return 2;
+ case DCmode: return 2;
+ case XCmode: return 2;
+ case RCmode: return 2;
+ case TCmode: return 2;
+ case V4QImode: return 4;
+ case V2HImode: return 2;
+ case V8QImode: return 8;
+ case V4HImode: return 4;
+ case V2SImode: return 2;
+ case V16QImode: return 16;
+ case V8HImode: return 8;
+ case V4SImode: return 4;
+ case V2SFmode: return 2;
+ case V4SFmode: return 4;
+ default: return mode_nunits[mode];
+ }
+}
+
+#ifdef __cplusplus
+inline __attribute__((__always_inline__))
+#else
+extern __inline__ __attribute__((__always_inline__, __gnu_inline__))
+#endif
+unsigned char
+mode_inner_inline (machine_mode mode)
+{
+ extern const unsigned char mode_inner[NUM_MACHINE_MODES];
+ switch (mode)
+ {
+ case VOIDmode: return VOIDmode;
+ case BLKmode: return VOIDmode;
+ case CCmode: return VOIDmode;
+ case CCImode: return VOIDmode;
+ case BImode: return VOIDmode;
+ case QImode: return VOIDmode;
+ case HImode: return VOIDmode;
+ case SImode: return VOIDmode;
+ case DImode: return VOIDmode;
+ case TImode: return VOIDmode;
+ case OImode: return VOIDmode;
+ case QQmode: return VOIDmode;
+ case HQmode: return VOIDmode;
+ case SQmode: return VOIDmode;
+ case DQmode: return VOIDmode;
+ case TQmode: return VOIDmode;
+ case UQQmode: return VOIDmode;
+ case UHQmode: return VOIDmode;
+ case USQmode: return VOIDmode;
+ case UDQmode: return VOIDmode;
+ case UTQmode: return VOIDmode;
+ case HAmode: return VOIDmode;
+ case SAmode: return VOIDmode;
+ case DAmode: return VOIDmode;
+ case TAmode: return VOIDmode;
+ case UHAmode: return VOIDmode;
+ case USAmode: return VOIDmode;
+ case UDAmode: return VOIDmode;
+ case UTAmode: return VOIDmode;
+ case SFmode: return VOIDmode;
+ case DFmode: return VOIDmode;
+ case XFmode: return VOIDmode;
+ case RFmode: return VOIDmode;
+ case TFmode: return VOIDmode;
+ case SDmode: return VOIDmode;
+ case DDmode: return VOIDmode;
+ case TDmode: return VOIDmode;
+ case CQImode: return QImode;
+ case CHImode: return HImode;
+ case CSImode: return SImode;
+ case CDImode: return DImode;
+ case CTImode: return TImode;
+ case COImode: return OImode;
+ case SCmode: return SFmode;
+ case DCmode: return DFmode;
+ case XCmode: return XFmode;
+ case RCmode: return RFmode;
+ case TCmode: return TFmode;
+ case V4QImode: return QImode;
+ case V2HImode: return HImode;
+ case V8QImode: return QImode;
+ case V4HImode: return HImode;
+ case V2SImode: return SImode;
+ case V16QImode: return QImode;
+ case V8HImode: return HImode;
+ case V4SImode: return SImode;
+ case V2SFmode: return SFmode;
+ case V4SFmode: return SFmode;
+ default: return mode_inner[mode];
+ }
+}
+
+#endif /* GCC_VERSION >= 4001 */
+
+#endif /* insn-modes.h */