diff options
| author | takemura <takemura@NetBSD.org> | 1999-09-29 13:19:13 +0000 |
|---|---|---|
| committer | takemura <takemura@NetBSD.org> | 1999-09-29 13:19:13 +0000 |
| commit | cdabc2eb91cc574c8f0cfe6fc13af8780c073960 (patch) | |
| tree | 7c15bb7559014b7e6f0e9313652df6d5a24a7efb | |
| parent | f644b42971edfe705df6e2130447ce2df223dcc9 (diff) | |
Hpcmips needs completely FPU instruction free user land.
XXX, this modification is kinda ad-hoc.
| -rw-r--r-- | gnu/dist/gcc/config/mips/ecoff.h | 2 | ||||
| -rw-r--r-- | gnu/dist/gcc/config/mips/elf.h | 2 | ||||
| -rw-r--r-- | gnu/dist/gcc/config/mips/netbsd.h | 9 | ||||
| -rw-r--r-- | gnu/lib/libgcc/Makefile | 6 | ||||
| -rw-r--r-- | gnu/lib/libobjc/Makefile | 6 | ||||
| -rw-r--r-- | gnu/usr.bin/egcs/Makefile.inc | 6 | ||||
| -rw-r--r-- | lib/libc/arch/mips/Makefile.inc | 8 | ||||
| -rw-r--r-- | lib/libc/arch/mips/gen/Makefile.inc | 8 | ||||
| -rw-r--r-- | lib/libc/arch/mips/gen/__setjmp14.S | 6 | ||||
| -rw-r--r-- | lib/libc/arch/mips/gen/_setjmp.S | 8 | ||||
| -rw-r--r-- | lib/libc/arch/mips/gen/setjmp.S | 6 |
11 files changed, 56 insertions, 11 deletions
diff --git a/gnu/dist/gcc/config/mips/ecoff.h b/gnu/dist/gcc/config/mips/ecoff.h index dcc00a4b4b8..e4fc1120b20 100644 --- a/gnu/dist/gcc/config/mips/ecoff.h +++ b/gnu/dist/gcc/config/mips/ecoff.h @@ -19,8 +19,10 @@ along with GNU CC; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +#ifndef NOUSE_GOFAST /* US Software GOFAST library support. */ #define INIT_SUBTARGET_OPTABS INIT_GOFAST_OPTABS +#endif #include "mips/mips.h" diff --git a/gnu/dist/gcc/config/mips/elf.h b/gnu/dist/gcc/config/mips/elf.h index cfaa9d1f21f..684ed71b415 100644 --- a/gnu/dist/gcc/config/mips/elf.h +++ b/gnu/dist/gcc/config/mips/elf.h @@ -29,7 +29,9 @@ Boston, MA 02111-1307, USA. */ #endif /* Mostly like ECOFF. */ +#ifndef NOUSE_GOFAST #include "gofast.h" +#endif #include "mips/ecoff.h" /* We need to use .esize and .etype instead of .size and .type to diff --git a/gnu/dist/gcc/config/mips/netbsd.h b/gnu/dist/gcc/config/mips/netbsd.h index 03bcebc866f..72577d3fb2b 100644 --- a/gnu/dist/gcc/config/mips/netbsd.h +++ b/gnu/dist/gcc/config/mips/netbsd.h @@ -23,6 +23,11 @@ Boston, MA 02111-1307, USA. */ #define TARGET_ENDIAN_DEFAULT 0 #define TARGET_DEFAULT MASK_GAS +#ifdef hpcmips /* XXX should use distinct target name -uch */ +#define NOUSE_GOFAST +#define SOFT_FLOAT +#endif + /* Get generic mips ELF definitions. */ #include <mips/elf.h> @@ -252,7 +257,11 @@ do { \ GO_IF_LEGITIMATE_ADDRESS ever accepting such addresses. */ #undef TARGET_DEFAULT +#ifdef SOFT_FLOAT +#define TARGET_DEFAULT (MASK_GAS|MASK_DEBUG_A|MASK_SOFT_FLOAT) +#else #define TARGET_DEFAULT (MASK_GAS|MASK_DEBUG_A) +#endif /* Since gas and gld are standard on NetBSD, we don't need these */ #undef ASM_FINAL_SPEC diff --git a/gnu/lib/libgcc/Makefile b/gnu/lib/libgcc/Makefile index f1ce58a7acf..acb21d33faf 100644 --- a/gnu/lib/libgcc/Makefile +++ b/gnu/lib/libgcc/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.8 1999/02/24 17:18:26 drochner Exp $ +# $NetBSD: Makefile,v 1.9 1999/09/29 13:19:14 takemura Exp $ HAVE_GCC28!= ${CXX} --version | egrep "^(2\.8|egcs)" ; echo @@ -18,6 +18,10 @@ ARCHSUBDIR= ${MACHINE_ARCH} CPPFLAGS+= -I${ARCH}/${ARCHSUBDIR} -I${ARCH} \ -I${DIST}/config -I${DIST}/cp -I${DIST} +.if (${MACHINE} == "hpcmips") # XXX +CPPFLAGS+=-D${MACHINE} +.endif + LIB2OBJS= __gcc_bcmp.o _varargs.o __dummy.o _eprintf.o _bb.o _shtab.o \ _clear_cache.o _trampoline.o __main.o _exit.o _ctors.o \ _pure.o diff --git a/gnu/lib/libobjc/Makefile b/gnu/lib/libobjc/Makefile index 669cb06abad..d007c1943e2 100644 --- a/gnu/lib/libobjc/Makefile +++ b/gnu/lib/libobjc/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.6 1999/02/24 17:18:26 drochner Exp $ +# $NetBSD: Makefile,v 1.7 1999/09/29 13:19:15 takemura Exp $ HAVE_GCC28!= ${CXX} --version | egrep "^(2\.8|egcs)" ; echo @@ -24,6 +24,10 @@ ARCHSUBDIR= ${MACHINE_ARCH} CPPFLAGS+= -I. -I${ARCH}/${ARCHSUBDIR} -I${ARCH} \ -I${DIST}/config -I${DIST} +.if (${MACHINE} == "hpcmips") # XXX +CPPFLAGS+=-D${MACHINE} +.endif + MKLINT= no DIST= ${.CURDIR}/../../dist/gcc diff --git a/gnu/usr.bin/egcs/Makefile.inc b/gnu/usr.bin/egcs/Makefile.inc index 72d2c290232..5ac14d4ae3f 100644 --- a/gnu/usr.bin/egcs/Makefile.inc +++ b/gnu/usr.bin/egcs/Makefile.inc @@ -1,4 +1,4 @@ -# $NetBSD: Makefile.inc,v 1.20 1999/07/30 04:07:23 mycroft Exp $ +# $NetBSD: Makefile.inc,v 1.21 1999/09/29 13:19:15 takemura Exp $ .if !defined(GCC_MAKEFILE_INC) GCC_MAKEFILE_INC=1 @@ -38,6 +38,10 @@ CPPFLAGS+= -I${.CURDIR}/../arch \ CPPFLAGS+=-DDEFAULT_ELF .endif +.if (${MACHINE} == "hpcmips") # XXX +CPPFLAGS+=-D${MACHINE} +.endif + HOST_CPPFLAGS= ${CPPFLAGS} .PATH: ${.CURDIR}/../arch \ diff --git a/lib/libc/arch/mips/Makefile.inc b/lib/libc/arch/mips/Makefile.inc index 0076516db53..2da5b3ad9d0 100644 --- a/lib/libc/arch/mips/Makefile.inc +++ b/lib/libc/arch/mips/Makefile.inc @@ -1,4 +1,10 @@ -# $NetBSD: Makefile.inc,v 1.2 1996/09/16 18:10:35 jonathan Exp $ +# $NetBSD: Makefile.inc,v 1.3 1999/09/29 13:19:15 takemura Exp $ KMINCLUDES= KMSRCS= + +.if (${MACHINE} == "hpcmips") +CPPFLAGS+=-DSOFTFLOAT + +.include <fplib/Makefile.inc> +.endif diff --git a/lib/libc/arch/mips/gen/Makefile.inc b/lib/libc/arch/mips/gen/Makefile.inc index 33c24e9b19f..978ba55a6e5 100644 --- a/lib/libc/arch/mips/gen/Makefile.inc +++ b/lib/libc/arch/mips/gen/Makefile.inc @@ -1,8 +1,14 @@ -# $NetBSD: Makefile.inc,v 1.9 1999/08/29 23:01:40 mycroft Exp $ +# $NetBSD: Makefile.inc,v 1.10 1999/09/29 13:19:16 takemura Exp $ +.if (${MACHINE} == "hpcmips") +SRCS+= sf_fabs.c frexp.c infinity.c sf_isinf.c sf_ldexp.c sf_modf.c +SRCS+= sf_flt_rounds.c sf_fpgetmask.c sf_fpgetround.c sf_fpgetsticky.c \ + sf_fpsetmask.c sf_fpsetround.c sf_fpsetsticky.c +.else SRCS+= fabs.S frexp.c infinity.c isinf.c isnan.c ldexp.S modf.S SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ fpsetround.c fpsetsticky.c +.endif SRCS+= setjmp.S __setjmp14.S SRCS+= _setjmp.S diff --git a/lib/libc/arch/mips/gen/__setjmp14.S b/lib/libc/arch/mips/gen/__setjmp14.S index 352c231648b..7432a7bffa6 100644 --- a/lib/libc/arch/mips/gen/__setjmp14.S +++ b/lib/libc/arch/mips/gen/__setjmp14.S @@ -1,4 +1,4 @@ -/* $NetBSD: __setjmp14.S,v 1.3 1999/01/31 00:57:10 castor Exp $ */ +/* $NetBSD: __setjmp14.S,v 1.4 1999/09/29 13:19:16 takemura Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -45,7 +45,7 @@ #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)setjmp.s 8.1 (Berkeley) 6/4/93") - ASMSTR("$NetBSD: __setjmp14.S,v 1.3 1999/01/31 00:57:10 castor Exp $") + ASMSTR("$NetBSD: __setjmp14.S,v 1.4 1999/09/29 13:19:16 takemura Exp $") #endif /* LIBC_SCCS and not lint */ #ifdef ABICALLS @@ -117,6 +117,7 @@ NON_LEAF(__setjmp14, SETJMP_FRAME_SIZE, ra) REG_S s8, (_OFFSETOF_SC_REGS + S8 * SZREG)(a0) li v0, 1 # be nice if we could tell sw v0, (_OFFSETOF_SC_REGS + 34 * SZREG)(a0) # sc_fpused = 1 +#ifndef SOFTFLOAT cfc1 v0, $31 swc1 $f20, (20 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f21, (21 * 4 + _OFFSETOF_SC_FPREGS)(a0) @@ -130,6 +131,7 @@ NON_LEAF(__setjmp14, SETJMP_FRAME_SIZE, ra) swc1 $f29, (29 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f30, (30 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f31, (31 * 4 + _OFFSETOF_SC_FPREGS)(a0) +#endif sw v0, (32 * 4 + _OFFSETOF_SC_FPREGS)(a0) move v0, zero j ra diff --git a/lib/libc/arch/mips/gen/_setjmp.S b/lib/libc/arch/mips/gen/_setjmp.S index ff0341e2117..8258cb8650a 100644 --- a/lib/libc/arch/mips/gen/_setjmp.S +++ b/lib/libc/arch/mips/gen/_setjmp.S @@ -1,4 +1,4 @@ -/* $NetBSD: _setjmp.S,v 1.11 1999/02/05 00:41:42 jonathan Exp $ */ +/* $NetBSD: _setjmp.S,v 1.12 1999/09/29 13:19:16 takemura Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -44,7 +44,7 @@ #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)_setjmp.s 8.1 (Berkeley) 6/4/93") - ASMSTR("$NetBSD: _setjmp.S,v 1.11 1999/02/05 00:41:42 jonathan Exp $") + ASMSTR("$NetBSD: _setjmp.S,v 1.12 1999/09/29 13:19:16 takemura Exp $") #endif /* LIBC_SCCS and not lint */ #ifdef ABICALLS @@ -85,6 +85,7 @@ LEAF(_setjmp) REG_S s7, (S7 * SZREG + _OFFSETOF_SC_REGS)(a0) REG_S sp, (SP * SZREG + _OFFSETOF_SC_REGS)(a0) REG_S s8, (S8 * SZREG + _OFFSETOF_SC_REGS)(a0) +#ifndef SOFTFLOAT cfc1 v0, $31 # too bad cant check if FP used swc1 $f20, (20 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f21, (21 * 4 + _OFFSETOF_SC_FPREGS)(a0) @@ -98,6 +99,7 @@ LEAF(_setjmp) swc1 $f29, (29 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f30, (30 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f31, (31 * 4 + _OFFSETOF_SC_FPREGS)(a0) +#endif sw v0, (32 * 4 + _OFFSETOF_SC_FPREGS)(a0) REG_EPILOGUE j ra @@ -130,6 +132,7 @@ LEAF(_longjmp) lw v0, (32 * 4 + _OFFSETOF_SC_FPREGS)(a0) # get fpu status REG_L sp, (SP * SZREG + _OFFSETOF_SC_REGS)(a0) REG_L s8, (S8 * SZREG + _OFFSETOF_SC_REGS)(a0) +#ifndef SOFTFLOAT ctc1 v0, $31 lwc1 $f20, (20 * 4 + _OFFSETOF_SC_FPREGS)(a0) lwc1 $f21, (21 * 4 + _OFFSETOF_SC_FPREGS)(a0) @@ -143,6 +146,7 @@ LEAF(_longjmp) lwc1 $f29, (29 * 4 + _OFFSETOF_SC_FPREGS)(a0) lwc1 $f30, (30 * 4 + _OFFSETOF_SC_FPREGS)(a0) lwc1 $f31, (31 * 4 + _OFFSETOF_SC_FPREGS)(a0) +#endif j ra move v0, a1 diff --git a/lib/libc/arch/mips/gen/setjmp.S b/lib/libc/arch/mips/gen/setjmp.S index 984d718a0b3..b0d850af5dc 100644 --- a/lib/libc/arch/mips/gen/setjmp.S +++ b/lib/libc/arch/mips/gen/setjmp.S @@ -1,4 +1,4 @@ -/* $NetBSD: setjmp.S,v 1.10 1999/01/31 00:57:10 castor Exp $ */ +/* $NetBSD: setjmp.S,v 1.11 1999/09/29 13:19:16 takemura Exp $ */ /*- * Copyright (c) 1991, 1993 @@ -45,7 +45,7 @@ #if defined(LIBC_SCCS) && !defined(lint) ASMSTR("from: @(#)setjmp.s 8.1 (Berkeley) 6/4/93") - ASMSTR("$NetBSD: setjmp.S,v 1.10 1999/01/31 00:57:10 castor Exp $") + ASMSTR("$NetBSD: setjmp.S,v 1.11 1999/09/29 13:19:16 takemura Exp $") #endif /* LIBC_SCCS and not lint */ #ifdef ABICALLS @@ -109,6 +109,7 @@ NON_LEAF(setjmp, SETJMP_FRAME_SIZE, ra) REG_S s8, (_OFFSETOF_SC_REGS + SZREG * S8)(a0) li v0, 1 # be nice if we could tell sw v0, (_OFFSETOF_SC_REGS + 34 * SZREG)(a0) # sc_fpused = 1 +#ifndef SOFTFLOAT cfc1 v0, $31 swc1 $f20, (20 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f21, (21 * 4 + _OFFSETOF_SC_FPREGS)(a0) @@ -122,6 +123,7 @@ NON_LEAF(setjmp, SETJMP_FRAME_SIZE, ra) swc1 $f29, (29 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f30, (30 * 4 + _OFFSETOF_SC_FPREGS)(a0) swc1 $f31, (31 * 4 + _OFFSETOF_SC_FPREGS)(a0) +#endif sw v0, ((32 * 4) + _OFFSETOF_SC_FPREGS)(a0) REG_EPILOGUE move v0, zero |
