diff --git a/lib/csu/sparc64/Makefile b/lib/csu/sparc64/Makefile deleted file mode 100644 index f87129b5e890..000000000000 --- a/lib/csu/sparc64/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# $FreeBSD$ - -.PATH: ${.CURDIR:H}/common - -SRCS= crt1.c crti.S crtn.S -OBJS= ${SRCS:N*.h:R:S/$/.o/g} -OBJS+= Scrt1.o gcrt1.o -CFLAGS+= -I${.CURDIR:H}/common \ - -I${SRCTOP}/lib/libc/include -CFLAGS+= -DCRT_IRELOC_SUPPRESS - -FILES= ${OBJS} -FILESMODE= ${LIBMODE} -FILESOWN= ${LIBOWN} -FILESGRP= ${LIBGRP} -FILESDIR= ${LIBDIR} -# These FILES qualify as libraries for the purpose of LIBRARIES_ONLY. -.undef LIBRARIES_ONLY - -CLEANFILES= ${OBJS} - -gcrt1.o: crt1.c - ${CC} ${CFLAGS} -DGCRT -c -o gcrt1.o ${.ALLSRC} - -Scrt1.o: crt1.c - ${CC} ${CFLAGS} -fPIC -DPIC -c -o Scrt1.o ${.ALLSRC} - -.include diff --git a/lib/csu/sparc64/Makefile.depend b/lib/csu/sparc64/Makefile.depend deleted file mode 100644 index 79506ce16b79..000000000000 --- a/lib/csu/sparc64/Makefile.depend +++ /dev/null @@ -1,12 +0,0 @@ -# $FreeBSD$ -# Autogenerated - do NOT edit! - -DIRDEPS = \ - include \ - - -.include - -.if ${DEP_RELDIR} == ${_DEP_RELDIR} -# local dependencies - needed for -jN in clean tree -.endif diff --git a/lib/csu/sparc64/crt.h b/lib/csu/sparc64/crt.h deleted file mode 100644 index 82984849630d..000000000000 --- a/lib/csu/sparc64/crt.h +++ /dev/null @@ -1,33 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-1-Clause - * - * Copyright 2018 Andrew Turner - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _CRT_H_ -#define _CRT_H_ - -#define HAVE_CTORS -#define CTORS_CONSTRUCTORS -#define INIT_CALL_SEQ(func) "call " __STRING(func) "; nop" - -#endif diff --git a/lib/csu/sparc64/crt1.c b/lib/csu/sparc64/crt1.c deleted file mode 100644 index 4cef03f60efd..000000000000 --- a/lib/csu/sparc64/crt1.c +++ /dev/null @@ -1,105 +0,0 @@ -/* LINTLIBRARY */ -/*- - * SPDX-License-Identifier: BSD-3-Clause - * - * Copyright 2001 David E. O'Brien. - * All rights reserved. - * Copyright (c) 1995, 1998 Berkeley Software Design, Inc. - * All rights reserved. - * Copyright 1996-1998 John D. Polstra. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. The name of the authors may not be used to endorse or promote products - * derived from this software without specific prior written permission - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include "libc_private.h" -#include "crtbrand.c" -#include "ignore_init.c" - -struct Struct_Obj_Entry; -struct ps_strings; - -extern void __sparc_utrap_setup(void); - -#ifdef GCRT -extern void _mcleanup(void); -extern void monstartup(void *, void *); -extern int eprol; -extern int etext; -#endif - -void _start(char **, void (*)(void), struct Struct_Obj_Entry *, - struct ps_strings *); - -/* The entry function. */ -/* - * %o0 holds ps_strings pointer. - * - * Note: kernel may (is not set in stone yet) pass ELF aux vector in %o1, - * but for now we do not use it here. - * - * The SPARC compliance definitions specifies that the kernel pass the - * address of a function to be executed on exit in %g1. We do not make - * use of it as it is quite broken, because gcc can use this register - * as a temporary, so it is not safe from C code. Its even more broken - * for dynamic executables since rtld runs first. - */ -/* ARGSUSED */ -void -_start(char **ap, void (*cleanup)(void), struct Struct_Obj_Entry *obj __unused, - struct ps_strings *ps_strings __unused) -{ - int argc; - char **argv; - char **env; - - argc = *(long *)(void *)ap; - argv = ap + 1; - env = ap + 2 + argc; - handle_argv(argc, argv, env); - - if (&_DYNAMIC != NULL) - atexit(cleanup); - else { - __sparc_utrap_setup(); - _init_tls(); - } -#ifdef GCRT - atexit(_mcleanup); - monstartup(&eprol, &etext); -#endif - - handle_static_init(argc, argv, env); - exit(main(argc, argv, env)); -} - -#ifdef GCRT -__asm__(".text"); -__asm__("eprol:"); -__asm__(".previous"); -#endif diff --git a/lib/csu/sparc64/crti.S b/lib/csu/sparc64/crti.S deleted file mode 100644 index 9e529a5ac471..000000000000 --- a/lib/csu/sparc64/crti.S +++ /dev/null @@ -1,57 +0,0 @@ -/*- - * Copyright 2001 David E. O'Brien - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the author nor the names of additional contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - - .file "crti.S" - - /* The minimum stack frame size (bytes) is: - * 16 extended words for saving the current register window, - * 1 extended word for "hidden parameter", - * 6 extended words in wihch a callee can store its arguments - * ("The SPARC Architecure Manual" by Weaver & Germond) - * This gives 184 bytes. However we must round up to an extended - * word boundary, thus 192 bytes. - * (if we weren't v9, it would be 96 bytes rather than 192) - */ - - .section .init,"ax",@progbits - .align 4 - .globl _init - .type _init,#function -_init: - save %sp,-192,%sp - - - .section .fini,"ax",@progbits - .globl _fini - .type _fini,#function - .align 4 -_fini: - save %sp,-192,%sp diff --git a/lib/csu/sparc64/crtn.S b/lib/csu/sparc64/crtn.S deleted file mode 100644 index 5b6d4a77abc1..000000000000 --- a/lib/csu/sparc64/crtn.S +++ /dev/null @@ -1,42 +0,0 @@ -/*- - * Copyright 2001 David E. O'Brien - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the author nor the names of additional contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - - .file "crtn.S" - - .section .init,"ax",@progbits - .align 4 - ret - restore - - .section .fini,"ax",@progbits - .align 4 - ret - restore diff --git a/lib/libthr/arch/sparc64/Makefile.inc b/lib/libthr/arch/sparc64/Makefile.inc deleted file mode 100644 index bdab0bc90fe6..000000000000 --- a/lib/libthr/arch/sparc64/Makefile.inc +++ /dev/null @@ -1,3 +0,0 @@ -# $FreeBSD$ - -SRCS+= _umtx_op_err.S diff --git a/lib/libthr/arch/sparc64/include/pthread_md.h b/lib/libthr/arch/sparc64/include/pthread_md.h deleted file mode 100644 index 85c5b7e80b16..000000000000 --- a/lib/libthr/arch/sparc64/include/pthread_md.h +++ /dev/null @@ -1,80 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2003 Jake Burkholder . - * Copyright (c) 2003 Marcel Moolenaar - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/* - * Machine-dependent thread prototypes/definitions. - */ -#ifndef _PTHREAD_MD_H_ -#define _PTHREAD_MD_H_ - -#include - -#define CPU_SPINWAIT - -#define DTV_OFFSET offsetof(struct tcb, tcb_dtv) - -/* - * Variant II tcb, first two members are required by rtld. - * %g7 points to the structure. - */ -struct tcb { - struct tcb *tcb_self; /* required by rtld */ - void *tcb_dtv; /* required by rtld */ - struct pthread *tcb_thread; /* our hook */ - void *tcb_spare[1]; -}; - -/* Called from the thread to set its private data. */ -static __inline void -_tcb_set(struct tcb *tcb) -{ - - __asm __volatile("mov %0, %%g7" : : "r" (tcb)); -} - -static __inline struct tcb * -_tcb_get(void) -{ - register struct tcb *tp __asm("%g7"); - - return (tp); -} - -static __inline struct pthread * -_get_curthread(void) -{ - - return (_tcb_get()->tcb_thread); -} - -#define HAS__UMTX_OP_ERR 1 - -#endif /* _PTHREAD_MD_H_ */ diff --git a/lib/libthr/arch/sparc64/include/pthread_tls.h b/lib/libthr/arch/sparc64/include/pthread_tls.h deleted file mode 100644 index 7dd194f08604..000000000000 --- a/lib/libthr/arch/sparc64/include/pthread_tls.h +++ /dev/null @@ -1,46 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2019 The FreeBSD Foundation - * - * This software was developed by Konstantin Belousov - * under sponsorship from the FreeBSD Foundation. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _ARCH_SPARC64_PTHREAD_TLS_H -#define _ARCH_SPARC64_PTHREAD_TLS_H - -static __inline uintptr_t -_get_static_tls_base(struct pthread *thr, size_t offset) -{ - uintptr_t tlsbase; - - tlsbase = (uintptr_t)thr->tcb; - tlsbase -= offset; - return (tlsbase); -} - -#endif diff --git a/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S b/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S deleted file mode 100644 index 220d279ce4a8..000000000000 --- a/lib/libthr/arch/sparc64/sparc64/_umtx_op_err.S +++ /dev/null @@ -1,38 +0,0 @@ -/*- - * Copyright (c) 2011 Marius Strobl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include - -ENTRY(_umtx_op_err) - mov SYS__umtx_op, %g1 - retl - ta %xcc, ST_SYSCALL -END(_umtx_op_err) diff --git a/lib/libthread_db/arch/sparc64/libpthread_md.c b/lib/libthread_db/arch/sparc64/libpthread_md.c deleted file mode 100644 index d91ceaaa76bd..000000000000 --- a/lib/libthread_db/arch/sparc64/libpthread_md.c +++ /dev/null @@ -1,92 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause-FreeBSD - * - * Copyright (c) 2004 Marcel Moolenaar - * Copyright (c) 2011 Marius Strobl - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include -#include -#include -#include - -#include "libpthread_db.h" - -void -pt_reg_to_ucontext(const struct reg *r, ucontext_t *uc) -{ - - memcpy(&uc->uc_mcontext, r, MIN(sizeof(uc->uc_mcontext), sizeof(*r))); -} - -void -pt_ucontext_to_reg(const ucontext_t *uc, struct reg *r) -{ - - memcpy(r, &uc->uc_mcontext, MIN(sizeof(uc->uc_mcontext), sizeof(*r))); -} - -void -pt_fpreg_to_ucontext(const struct fpreg* r, ucontext_t *uc) -{ - mcontext_t *mc = &uc->uc_mcontext; - - memcpy(mc->mc_fp, r->fr_regs, MIN(sizeof(mc->mc_fp), - sizeof(r->fr_regs))); - mc->_mc_fsr = r->fr_fsr; - mc->_mc_gsr = r->fr_gsr; - mc->_mc_fprs |= FPRS_FEF; -} - -void -pt_ucontext_to_fpreg(const ucontext_t *uc, struct fpreg *r) -{ - const mcontext_t *mc = &uc->uc_mcontext; - - if ((mc->_mc_fprs & FPRS_FEF) != 0) { - memcpy(r->fr_regs, mc->mc_fp, MIN(sizeof(mc->mc_fp), - sizeof(r->fr_regs))); - r->fr_fsr = mc->_mc_fsr; - r->fr_gsr = mc->_mc_gsr; - } else - memset(r, 0, sizeof(*r)); -} - -void -pt_md_init(void) -{ - -} - -int -pt_reg_sstep(struct reg *reg __unused, int step __unused) -{ - - return (0); -} diff --git a/tools/test/testfloat/sparc64/Makefile b/tools/test/testfloat/sparc64/Makefile deleted file mode 100644 index a24834b8f4e9..000000000000 --- a/tools/test/testfloat/sparc64/Makefile +++ /dev/null @@ -1,105 +0,0 @@ -# Copyright (c) 2010 by Peter Jeremy -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: -# 1. Redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer. -# 2. Redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution. -# -# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR -# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES -# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -# IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE -# USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# $FreeBSD$ - -.PATH: ${.CURDIR}/../../../../lib/libc/softfloat/bits64 ${.CURDIR}/.. - -LIBC_DIR= ${.CURDIR}/../../../../lib/libc -EMUFLOAT_DIR= ${LIBC_DIR}/sparc64/fpu - -LN= ln -sf - -# Common source files -SRCS1= fail.c random.c softfloat.c testCases.c testLoops.c writeHex.c - -# Additional common sources to build testfloat/testemufloat -SRCS2= testFunction.c testfloat.c - -# Additional sources to build testemufloat -SRCS3= fpu.c fpu_add.c fpu_compare.c fpu_div.c fpu_emul.S fpu_explode.c \ - fpu_implode.c fpu_mul.c fpu_qp.c fpu_sqrt.c fpu_subr.c fpu_util.c - -# Additional sources to build testfloat -SRCS4= systflags.c systfloat.S systmodes.c - -# Additional sources to build testsoftfloat -SRCS5= slowfloat.c testsoftfloat.c - -SRCS= ${SRCS1} ${SRCS2} ${SRCS3} ${SRCS4} ${SRCS5} - -OBJ_TF= ${SRCS1:R:S/$/.o/g} ${SRCS2:R:S/$/.o/g} ${SRCS4:R:S/$/.o/g} -OBJ_TEF= ${SRCS1:R:S/$/.o/g} ${SRCS2:R:S/$/.o/g} ${SRCS3:R:S/$/.o/g} -OBJ_TSF= ${SRCS1:R:S/$/.o/g} ${SRCS5:R:S/$/.o/g} - -all: testfloat testemufloat testsoftfloat - -CFLAGS+= -I. -I${.CURDIR} -I${.CURDIR}/.. -I${LIBC_DIR}/sparc64/fpu \ - -I${LIBC_DIR}/sparc64/sys -I${LIBC_DIR}/softfloat/bits64 \ - -I${LIBC_DIR}/softfloat - -CLEANFILES+= fpu.c fpu_add.c fpu_compare.c fpu_div.c fpu_emu.h \ - fpu_explode.c fpu_implode.c fpu_mul.c fpu_qp.c fpu_sqrt.c fpu_subr.c \ - ${SRCS:R:S/$/.o/g} testfloat testemufloat testsoftfloat - -testsoftfloat: ${OBJ_TSF} - ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJ_TSF} - -testfloat: ${OBJ_TF} - ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJ_TF} - -testemufloat: ${OBJ_TEF} - ${CC} ${CFLAGS} ${LDFLAGS} -o ${.TARGET} ${OBJ_TEF} - -beforedepend: fpu_emu.h - -# The emulator code needs to be built with a local fpu_reg.h instead of -# the one in ${EMUFLOAT_DIR}. Unfortunately, C preprocessor semantics -# means that a header file in the same directory as the source file -# overrides any alternative header file location. In order to include -# the wanted header file, create symlinks pointing to the real files -# and compile through the symlink. -fpu.c: ${EMUFLOAT_DIR}/fpu.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_add.c: ${EMUFLOAT_DIR}/fpu_add.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_compare.c: ${EMUFLOAT_DIR}/fpu_compare.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_div.c: ${EMUFLOAT_DIR}/fpu_div.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_emu.h: ${EMUFLOAT_DIR}/fpu_emu.h - ${LN} ${.ALLSRC} ${.TARGET} -fpu_explode.c: ${EMUFLOAT_DIR}/fpu_explode.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_implode.c: ${EMUFLOAT_DIR}/fpu_implode.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_mul.c: ${EMUFLOAT_DIR}/fpu_mul.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_qp.c: ${EMUFLOAT_DIR}/fpu_qp.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_sqrt.c: ${EMUFLOAT_DIR}/fpu_sqrt.c - ${LN} ${.ALLSRC} ${.TARGET} -fpu_subr.c: ${EMUFLOAT_DIR}/fpu_subr.c - ${LN} ${.ALLSRC} ${.TARGET} - -.include diff --git a/tools/test/testfloat/sparc64/fpu_emul.S b/tools/test/testfloat/sparc64/fpu_emul.S deleted file mode 100644 index 0872e8930c0d..000000000000 --- a/tools/test/testfloat/sparc64/fpu_emul.S +++ /dev/null @@ -1,186 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - - .section "rodata1",#alloc - .align 8 - - .global insn_int32_to_float32 -insn_int32_to_float32: - fitos %f0,%f0 - - .global insn_int32_to_float64 -insn_int32_to_float64: - fitod %f0,%f0 - - .global insn_int32_to_float128 -insn_int32_to_float128: - fitoq %f0,%f0 - - .global insn_int64_to_float32 -insn_int64_to_float32: - fxtos %f0,%f0 - - .global insn_int64_to_float64 -insn_int64_to_float64: - fxtod %f0,%f0 - - .global insn_int64_to_float128 -insn_int64_to_float128: - fxtoq %f0,%f0 - - .global insn_float32_to_int32_round_to_zero -insn_float32_to_int32_round_to_zero: - fstoi %f0,%f0 - - .global insn_float32_to_int64_round_to_zero -insn_float32_to_int64_round_to_zero: - fstox %f0,%f0 - - .global insn_float32_to_float64 -insn_float32_to_float64: - fstod %f0,%f0 - - .global insn_float32_to_float128 -insn_float32_to_float128: - fstoq %f0,%f0 - - .global insn_float32_add -insn_float32_add: - fadds %f0,%f1,%f0 - - .global insn_float32_sub -insn_float32_sub: - fsubs %f0,%f1,%f0 - - .global insn_float32_mul -insn_float32_mul: - fmuls %f0,%f1,%f0 - - .global insn_float32_div -insn_float32_div: - fdivs %f0,%f1,%f0 - - .global insn_float32_sqrt -insn_float32_sqrt: - fsqrts %f0,%f0 - - .global insn_float32_cmp -insn_float32_cmp: - fcmps %fcc0,%f0,%f1 - - .global insn_float32_cmpe -insn_float32_cmpe: - fcmpes %fcc0,%f0,%f1 - - .global insn_float64_to_int32_round_to_zero -insn_float64_to_int32_round_to_zero: - fdtoi %f0,%f0 - - .global insn_float64_to_int64_round_to_zero -insn_float64_to_int64_round_to_zero: - fdtox %f0,%f0 - - .global insn_float64_to_float32 -insn_float64_to_float32: - fdtos %f0,%f0 - - .global insn_float64_to_float128 -insn_float64_to_float128: - fdtoq %f0,%f0 - - .global insn_float64_add -insn_float64_add: - faddd %f0,%f2,%f0 - - .global insn_float64_sub -insn_float64_sub: - fsubd %f0,%f2,%f0 - - .global insn_float64_mul -insn_float64_mul: - fmuld %f0,%f2,%f0 - - .global insn_float64_div -insn_float64_div: - fdivd %f0,%f2,%f0 - - .global insn_float64_sqrt -insn_float64_sqrt: - fsqrtd %f0,%f0 - - .global insn_float64_cmp -insn_float64_cmp: - fcmpd %fcc0,%f0,%f2 - - .global insn_float64_cmpe -insn_float64_cmpe: - fcmped %fcc0,%f0,%f2 - - .global insn_float128_to_int32_round_to_zero -insn_float128_to_int32_round_to_zero: - fqtoi %f0,%f0 - - .global insn_float128_to_int64_round_to_zero -insn_float128_to_int64_round_to_zero: - fqtox %f0,%f0 - - .global insn_float128_to_float32 -insn_float128_to_float32: - fqtos %f0,%f0 - - .global insn_float128_to_float64 -insn_float128_to_float64: - fqtod %f0,%f0 - - .global insn_float128_add -insn_float128_add: - faddq %f0,%f4,%f0 - - .global insn_float128_sub -insn_float128_sub: - fsubq %f0,%f4,%f0 - - .global insn_float128_mul -insn_float128_mul: - fmulq %f0,%f4,%f0 - - .global insn_float128_div -insn_float128_div: - fdivq %f0,%f4,%f0 - - .global insn_float128_sqrt -insn_float128_sqrt: - fsqrtq %f0,%f0 - - .global insn_float128_cmp -insn_float128_cmp: - fcmpq %fcc0,%f0,%f4 - - .global insn_float128_cmpe -insn_float128_cmpe: - fcmpeq %fcc0,%f0,%f4 diff --git a/tools/test/testfloat/sparc64/fpu_reg.h b/tools/test/testfloat/sparc64/fpu_reg.h deleted file mode 100644 index 76f7244dd0ba..000000000000 --- a/tools/test/testfloat/sparc64/fpu_reg.h +++ /dev/null @@ -1,63 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -#ifndef _TESTFLOAT_SPARC64_FPU_REG_H_ -#define _TESTFLOAT_SPARC64_FPU_REG_H_ - -#include -extern u_int32_t __fpreg[64]; - -static __inline u_int32_t -__fpu_getreg(int r) -{ - - return (__fpreg[r]); -} - -static __inline u_int64_t -__fpu_getreg64(int r) -{ - - return ((u_int64_t)__fpreg[r] << 32 | (u_int64_t)__fpreg[r + 1]); -} - -static __inline void -__fpu_setreg(int r, u_int32_t v) -{ - - __fpreg[r] = v; -} - -static __inline void -__fpu_setreg64(int r, u_int64_t v) -{ - - __fpreg[r] = (u_int32_t)(v >> 32); - __fpreg[r + 1] = (u_int32_t)v; -} - -#endif /* _TESTFLOAT_SPARC64_FPU_REG_H_ */ diff --git a/tools/test/testfloat/sparc64/fpu_util.c b/tools/test/testfloat/sparc64/fpu_util.c deleted file mode 100644 index 1b766e0320a5..000000000000 --- a/tools/test/testfloat/sparc64/fpu_util.c +++ /dev/null @@ -1,706 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -__FBSDID("$FreeBSD$"); - -#include - -#include -#include -#include - -#include "__sparc_utrap_private.h" -#include "fpu_extern.h" -#include "fpu_reg.h" - -static u_long ireg[32]; - -void -__utrap_panic(const char *msg) -{ - - fprintf(stderr, "panic: %s\n", msg); - exit(1); -} - -void __utrap_write(const char *msg) -{ - - fprintf(stderr, "%s", msg); -} - -u_long -__emul_fetch_reg(struct utrapframe *uf, int reg) -{ - - return (ireg[reg]); -} - -typedef unsigned char int8; -typedef unsigned int int32; -typedef unsigned long int64; -typedef unsigned int float32; -typedef unsigned long float64; -typedef struct { - unsigned long high, low; -} float128; -typedef unsigned long flag; - -struct utrapframe utf; - -u_int32_t __fpreg[64]; - -static __inline float128 -__fpu_getreg128(int r) -{ - float128 v; - - v.high = ((u_int64_t)__fpreg[r] << 32 | (u_int64_t)__fpreg[r + 1]); - v.low = ((u_int64_t)__fpreg[r + 2] << 32 | (u_int64_t)__fpreg[r + 3]); - return (v); -} - -static __inline void -__fpu_setreg128(int r, float128 v) -{ - - __fpreg[r] = (u_int32_t)(v.high >> 32); - __fpreg[r + 1] = (u_int32_t)v.high; - __fpreg[r + 2] = (u_int32_t)(v.low >> 32); - __fpreg[r + 3] = (u_int32_t)v.low; -} - -/* -------------------------------------------------------------------------------- -Clears the system's IEC/IEEE floating-point exception flags. Returns the -previous value of the flags. -------------------------------------------------------------------------------- -*/ -#include -#include - -int8 syst_float_flags_clear(void) -{ - int32 flags; - - flags = (utf.uf_fsr & FE_ALL_EXCEPT) >> 5; - utf.uf_fsr &= ~(u_long)FE_ALL_EXCEPT; - return (flags); -} - -static void -emul_trap(const u_int *insn, u_long mask) -{ - u_int32_t savreg[64]; - int i; - - for (i = 0; i < 64; i++) - savreg[i] = __fpreg[i]; - - utf.uf_fsr = (utf.uf_fsr & ~FSR_FTT_MASK) | - (FSR_FTT_UNFIN << FSR_FTT_SHIFT); - utf.uf_pc = (u_long)insn; - if (__fpu_exception(&utf) == 0) - __asm("stx %%fsr,%0" : "=m" (utf.uf_fsr)); - - for (i = 0; i < 64; i++) { - if (!(mask & (1UL << i)) && savreg[i] != __fpreg[i]) { - fprintf(stderr, "### %2d %08x != %08x\n", - i, savreg[i], __fpreg[i]); - } - } -} - -extern u_int insn_int32_to_float32; -extern u_int insn_int32_to_float64; -extern u_int insn_int32_to_float128; -extern u_int insn_int64_to_float32; -extern u_int insn_int64_to_float64; -extern u_int insn_int64_to_float128; -extern u_int insn_float32_to_int32_round_to_zero; -extern u_int insn_float32_to_int64_round_to_zero; -extern u_int insn_float32_to_float64; -extern u_int insn_float32_to_float128; -extern u_int insn_float32_add; -extern u_int insn_float32_sub; -extern u_int insn_float32_mul; -extern u_int insn_float32_div; -extern u_int insn_float32_sqrt; -extern u_int insn_float32_cmp; -extern u_int insn_float32_cmpe; -extern u_int insn_float64_to_int32_round_to_zero; -extern u_int insn_float64_to_int64_round_to_zero; -extern u_int insn_float64_to_float32; -extern u_int insn_float64_to_float128; -extern u_int insn_float64_add; -extern u_int insn_float64_sub; -extern u_int insn_float64_mul; -extern u_int insn_float64_div; -extern u_int insn_float64_sqrt; -extern u_int insn_float64_cmp; -extern u_int insn_float64_cmpe; -extern u_int insn_float128_to_int32_round_to_zero; -extern u_int insn_float128_to_int64_round_to_zero; -extern u_int insn_float128_to_float32; -extern u_int insn_float128_to_float64; -extern u_int insn_float128_add; -extern u_int insn_float128_sub; -extern u_int insn_float128_mul; -extern u_int insn_float128_div; -extern u_int insn_float128_sqrt; -extern u_int insn_float128_cmp; -extern u_int insn_float128_cmpe; - -float32 -syst_int32_to_float32(int32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_int32_to_float32, 0x1UL); - return (__fpu_getreg(0)); -} - -float64 -syst_int32_to_float64(int32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_int32_to_float64, 0x3UL); - return (__fpu_getreg64(0)); -} - -float128 -syst_int32_to_float128(int32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_int32_to_float128, 0xfUL); - return (__fpu_getreg128(0)); -} - -float32 -syst_int64_to_float32(int64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_int64_to_float32, 0x1UL); - return (__fpu_getreg(0)); -} - -float64 -syst_int64_to_float64(int64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_int64_to_float64, 0x3UL); - return (__fpu_getreg64(0)); -} - - -float128 -syst_int64_to_float128(int64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_int64_to_float128, 0xfUL); - return (__fpu_getreg128(0)); -} - -int32 -syst_float32_to_int32_round_to_zero(float32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_float32_to_int32_round_to_zero, 0x1UL); - return (__fpu_getreg(0)); -} - -int64 -syst_float32_to_int64_round_to_zero(float32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_float32_to_int64_round_to_zero, 0x3UL); - return (__fpu_getreg64(0)); -} - -float64 -syst_float32_to_float64(float32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_float32_to_float64, 0x3UL); - return (__fpu_getreg64(0)); -} - -float128 -syst_float32_to_float128(float32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_float32_to_float128, 0xfUL); - return (__fpu_getreg128(0)); -} - -float32 -syst_float32_add(float32 a, float32 b) -{ - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_add, 0x1UL); - return (__fpu_getreg(0)); -} - -float32 -syst_float32_sub(float32 a, float32 b) -{ - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_sub, 0x1UL); - return (__fpu_getreg(0)); -} - -float32 -syst_float32_mul(float32 a, float32 b) -{ - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_mul, 0x1UL); - return (__fpu_getreg(0)); -} - -float32 -syst_float32_div(float32 a, float32 b) -{ - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_div, 0x1UL); - return (__fpu_getreg(0)); -} - -float32 -syst_float32_sqrt(float32 a) -{ - - __fpu_setreg(0, a); - emul_trap(&insn_float32_sqrt, 0x1UL); - return (__fpu_getreg(0)); -} - -flag syst_float32_eq(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmp, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float32_le(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float32_lt(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float32_eq_signaling(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float32_le_quiet(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float32_lt_quiet(float32 a, float32 b) -{ - u_long r; - - __fpu_setreg(0, a); - __fpu_setreg(1, b); - emul_trap(&insn_float32_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -int32 -syst_float64_to_int32_round_to_zero(float64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_float64_to_int32_round_to_zero, 0x1UL); - return (__fpu_getreg(0)); -} - -int64 -syst_float64_to_int64_round_to_zero(float64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_float64_to_int64_round_to_zero, 0x3UL); - return (__fpu_getreg64(0)); -} - -float32 -syst_float64_to_float32(float64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_float64_to_float32, 0x1UL); - return (__fpu_getreg(0)); -} - -float128 -syst_float64_to_float128(float64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_float64_to_float128, 0xfUL); - return (__fpu_getreg128(0)); -} - -float64 -syst_float64_add(float64 a, float64 b) -{ - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_add, 0x3UL); - return (__fpu_getreg64(0)); -} - -float64 -syst_float64_sub(float64 a, float64 b) -{ - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_sub, 0x3UL); - return (__fpu_getreg64(0)); -} - -float64 -syst_float64_mul(float64 a, float64 b) -{ - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_mul, 0x3UL); - return (__fpu_getreg64(0)); -} - -float64 -syst_float64_div(float64 a, float64 b) -{ - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_div, 0x3UL); - return (__fpu_getreg64(0)); -} - -float64 -syst_float64_sqrt(float64 a) -{ - - __fpu_setreg64(0, a); - emul_trap(&insn_float64_sqrt, 0x3UL); - return (__fpu_getreg64(0)); -} - -flag syst_float64_eq(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmp, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float64_le(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float64_lt(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float64_eq_signaling(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float64_le_quiet(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float64_lt_quiet(float64 a, float64 b) -{ - u_long r; - - __fpu_setreg64(0, a); - __fpu_setreg64(2, b); - emul_trap(&insn_float64_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -int32 -syst_float128_to_int32_round_to_zero(float128 a) -{ - - __fpu_setreg128(0, a); - emul_trap(&insn_float128_to_int32_round_to_zero, 0x1UL); - return (__fpu_getreg(0)); -} - -int64 -syst_float128_to_int64_round_to_zero(float128 a) -{ - - __fpu_setreg128(0, a); - emul_trap(&insn_float128_to_int64_round_to_zero, 0x3UL); - return (__fpu_getreg64(0)); -} - -float32 -syst_float128_to_float32(float128 a) -{ - - __fpu_setreg128(0, a); - emul_trap(&insn_float128_to_float32, 0x1UL); - return (__fpu_getreg(0)); -} - -float64 -syst_float128_to_float64(float128 a) -{ - - __fpu_setreg128(0, a); - emul_trap(&insn_float128_to_float64, 0x3UL); - return (__fpu_getreg64(0)); -} - -float128 -syst_float128_add(float128 a, float128 b) -{ - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_add, 0xfUL); - return (__fpu_getreg128(0)); -} - -float128 -syst_float128_sub(float128 a, float128 b) -{ - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_sub, 0xfUL); - return (__fpu_getreg128(0)); -} - -float128 -syst_float128_mul(float128 a, float128 b) -{ - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_mul, 0xfUL); - return (__fpu_getreg128(0)); -} - -float128 -syst_float128_div(float128 a, float128 b) -{ - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_div, 0xfUL); - return (__fpu_getreg128(0)); -} - -float128 -syst_float128_sqrt(float128 a) -{ - - __fpu_setreg128(0, a); - emul_trap(&insn_float128_sqrt, 0xfUL); - return (__fpu_getreg128(0)); -} - -flag syst_float128_eq(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmp, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float128_le(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float128_lt(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float128_eq_signaling(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmpe, 0x0UL); - __asm __volatile("mov 0,%0; move %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float128_le_quiet(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movle %%fcc0,1,%0" : "=r" (r)); - return (r); -} - -flag syst_float128_lt_quiet(float128 a, float128 b) -{ - u_long r; - - __fpu_setreg128(0, a); - __fpu_setreg128(4, b); - emul_trap(&insn_float128_cmp, 0x0UL); - __asm __volatile("mov 0,%0; movl %%fcc0,1,%0" : "=r" (r)); - return (r); -} - - -/* -------------------------------------------------------------------------------- -Sets the system's IEC/IEEE floating-point rounding mode. -------------------------------------------------------------------------------- -*/ -void syst_float_set_rounding_mode(int8 roundingMode) -{ - - utf.uf_fsr &= ~FSR_RD_MASK; - utf.uf_fsr |= FSR_RD((unsigned int)roundingMode & 0x03); -} - -/* -------------------------------------------------------------------------------- -Does nothing. -------------------------------------------------------------------------------- -*/ -void syst_float_set_rounding_precision(int8 precision) -{ - -} diff --git a/tools/test/testfloat/sparc64/libc_private.h b/tools/test/testfloat/sparc64/libc_private.h deleted file mode 100644 index 5e7d1bc431b0..000000000000 --- a/tools/test/testfloat/sparc64/libc_private.h +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ -/* - * This file has no content and is solely to satisfy a #include in - * the FP emulator code. - */ diff --git a/tools/test/testfloat/sparc64/milieu.h b/tools/test/testfloat/sparc64/milieu.h deleted file mode 100644 index 26491d16756c..000000000000 --- a/tools/test/testfloat/sparc64/milieu.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef TESTFLOAT_SPARC64_MILIEU_H_ -#define TESTFLOAT_SPARC64_MILIEU_H_ - -/* -=============================================================================== - -This C header file is part of TestFloat, Release 2a, a package of programs -for testing the correctness of floating-point arithmetic complying to the -IEC/IEEE Standard for Floating-Point. - -Written by John R. Hauser. More information is available through the Web -page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY -AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) they include prominent notice that the work is derivative, and (2) they -include prominent notice akin to these four paragraphs for those parts of -this code that are retained. - -=============================================================================== -*/ - -/* $FreeBSD$ */ - -/* -------------------------------------------------------------------------------- -Include common integer types and flags. -------------------------------------------------------------------------------- -*/ -#include "sparc64.h" - -/* -------------------------------------------------------------------------------- -If the `BITS64' macro is defined by the processor header file but the -version of SoftFloat being used/tested is the 32-bit one (`bits32'), the -`BITS64' macro must be undefined here. -------------------------------------------------------------------------------- -#undef BITS64 -*/ - -/* -------------------------------------------------------------------------------- -Symbolic Boolean literals. -------------------------------------------------------------------------------- -*/ -enum { - FALSE = 0, - TRUE = 1 -}; - -#endif diff --git a/tools/test/testfloat/sparc64/namespace.h b/tools/test/testfloat/sparc64/namespace.h deleted file mode 100644 index 5e7d1bc431b0..000000000000 --- a/tools/test/testfloat/sparc64/namespace.h +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ -/* - * This file has no content and is solely to satisfy a #include in - * the FP emulator code. - */ diff --git a/tools/test/testfloat/sparc64/softfloat.h b/tools/test/testfloat/sparc64/softfloat.h deleted file mode 100644 index f804b9cb82ca..000000000000 --- a/tools/test/testfloat/sparc64/softfloat.h +++ /dev/null @@ -1,267 +0,0 @@ -#ifndef TESTFLOAT_SPARC64_SOFTFLOAT_H -#define TESTFLOAT_SPARC64_SOFTFLOAT_H - -/*============================================================================ - -This C header file is part of the SoftFloat IEC/IEEE Floating-point Arithmetic -Package, Release 2b. - -Written by John R. Hauser. This work was made possible in part by the -International Computer Science Institute, located at Suite 600, 1947 Center -Street, Berkeley, California 94704. Funding was partially provided by the -National Science Foundation under grant MIP-9311980. The original version -of this code was written as part of a project to build a fixed-point vector -processor in collaboration with the University of California at Berkeley, -overseen by Profs. Nelson Morgan and John Wawrzynek. More information -is available through the Web page `http://www.cs.berkeley.edu/~jhauser/ -arithmetic/SoftFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort has -been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT TIMES -RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO PERSONS -AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ALL LOSSES, -COSTS, OR OTHER PROBLEMS THEY INCUR DUE TO THE SOFTWARE, AND WHO FURTHERMORE -EFFECTIVELY INDEMNIFY JOHN HAUSER AND THE INTERNATIONAL COMPUTER SCIENCE -INSTITUTE (possibly via similar legal warning) AGAINST ALL LOSSES, COSTS, OR -OTHER PROBLEMS INCURRED BY THEIR CUSTOMERS AND CLIENTS DUE TO THE SOFTWARE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) the source code for the derivative work includes prominent notice that -the work is derivative, and (2) the source code includes prominent notice with -these four paragraphs for those parts of this code that are retained. - -=============================================================================*/ - -/* $FreeBSD$ */ - -#include - -/*---------------------------------------------------------------------------- -| The macro `FLOATX80' must be defined to enable the extended double-precision -| floating-point format `floatx80'. If this macro is not defined, the -| `floatx80' type will not be defined, and none of the functions that either -| input or output the `floatx80' type will be defined. The same applies to -| the `FLOAT128' macro and the quadruple-precision format `float128'. -*----------------------------------------------------------------------------*/ -#define FLOATX80 -#define FLOAT128 - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE floating-point types. -*----------------------------------------------------------------------------*/ -typedef unsigned int float32; -typedef unsigned long float64; -#ifdef FLOATX80 -typedef struct { - unsigned short high; - unsigned long low; -} floatx80; -#endif -#ifdef FLOAT128 -typedef struct { - unsigned long high, low; -} float128; -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE floating-point underflow tininess-detection mode. -*----------------------------------------------------------------------------*/ -extern int float_detect_tininess; -enum { - float_tininess_after_rounding = 0, - float_tininess_before_rounding = 1 -}; - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE floating-point rounding mode. -*----------------------------------------------------------------------------*/ -extern fp_rnd_t float_rounding_mode; -enum { - float_round_nearest_even = 0, - float_round_to_zero = 1, - float_round_up = 2, - float_round_down = 3 -}; - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE floating-point exception flags. -*----------------------------------------------------------------------------*/ -typedef int fp_except; -extern fp_except float_exception_flags; -enum { - float_flag_inexact = 1, - float_flag_divbyzero = 2, - float_flag_underflow = 4, - float_flag_overflow = 8, - float_flag_invalid = 16 -}; - -/*---------------------------------------------------------------------------- -| Routine to raise any or all of the software IEC/IEEE floating-point -| exception flags. -*----------------------------------------------------------------------------*/ -void float_raise( int ); - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE integer-to-floating-point conversion routines. -*----------------------------------------------------------------------------*/ -float32 int32_to_float32( int ); -float64 int32_to_float64( int ); -#ifdef FLOATX80 -floatx80 int32_to_floatx80( int ); -#endif -#ifdef FLOAT128 -float128 int32_to_float128( int ); -#endif -float32 int64_to_float32( long ); -float64 int64_to_float64( long ); -#ifdef FLOATX80 -floatx80 int64_to_floatx80( long ); -#endif -#ifdef FLOAT128 -float128 int64_to_float128( long ); -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE single-precision conversion routines. -*----------------------------------------------------------------------------*/ -int float32_to_int32( float32 ); -int float32_to_int32_round_to_zero( float32 ); -long float32_to_int64( float32 ); -long float32_to_int64_round_to_zero( float32 ); -float64 float32_to_float64( float32 ); -#ifdef FLOATX80 -floatx80 float32_to_floatx80( float32 ); -#endif -#ifdef FLOAT128 -float128 float32_to_float128( float32 ); -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE single-precision operations. -*----------------------------------------------------------------------------*/ -float32 float32_round_to_int( float32 ); -float32 float32_add( float32, float32 ); -float32 float32_sub( float32, float32 ); -float32 float32_mul( float32, float32 ); -float32 float32_div( float32, float32 ); -float32 float32_rem( float32, float32 ); -float32 float32_sqrt( float32 ); -int float32_eq( float32, float32 ); -int float32_le( float32, float32 ); -int float32_lt( float32, float32 ); -int float32_eq_signaling( float32, float32 ); -int float32_le_quiet( float32, float32 ); -int float32_lt_quiet( float32, float32 ); -int float32_is_signaling_nan( float32 ); - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE double-precision conversion routines. -*----------------------------------------------------------------------------*/ -int float64_to_int32( float64 ); -int float64_to_int32_round_to_zero( float64 ); -long float64_to_int64( float64 ); -long float64_to_int64_round_to_zero( float64 ); -float32 float64_to_float32( float64 ); -#ifdef FLOATX80 -floatx80 float64_to_floatx80( float64 ); -#endif -#ifdef FLOAT128 -float128 float64_to_float128( float64 ); -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE double-precision operations. -*----------------------------------------------------------------------------*/ -float64 float64_round_to_int( float64 ); -float64 float64_add( float64, float64 ); -float64 float64_sub( float64, float64 ); -float64 float64_mul( float64, float64 ); -float64 float64_div( float64, float64 ); -float64 float64_rem( float64, float64 ); -float64 float64_sqrt( float64 ); -int float64_eq( float64, float64 ); -int float64_le( float64, float64 ); -int float64_lt( float64, float64 ); -int float64_eq_signaling( float64, float64 ); -int float64_le_quiet( float64, float64 ); -int float64_lt_quiet( float64, float64 ); -int float64_is_signaling_nan( float64 ); - -#ifdef FLOATX80 - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE extended double-precision conversion routines. -*----------------------------------------------------------------------------*/ -int floatx80_to_int32( floatx80 ); -int floatx80_to_int32_round_to_zero( floatx80 ); -long floatx80_to_int64( floatx80 ); -long floatx80_to_int64_round_to_zero( floatx80 ); -float32 floatx80_to_float32( floatx80 ); -float64 floatx80_to_float64( floatx80 ); -#ifdef FLOAT128 -float128 floatx80_to_float128( floatx80 ); -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE extended double-precision rounding precision. Valid -| values are 32, 64, and 80. -*----------------------------------------------------------------------------*/ -extern int floatx80_rounding_precision; - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE extended double-precision operations. -*----------------------------------------------------------------------------*/ -floatx80 floatx80_round_to_int( floatx80 ); -floatx80 floatx80_add( floatx80, floatx80 ); -floatx80 floatx80_sub( floatx80, floatx80 ); -floatx80 floatx80_mul( floatx80, floatx80 ); -floatx80 floatx80_div( floatx80, floatx80 ); -floatx80 floatx80_rem( floatx80, floatx80 ); -floatx80 floatx80_sqrt( floatx80 ); -int floatx80_eq( floatx80, floatx80 ); -int floatx80_le( floatx80, floatx80 ); -int floatx80_lt( floatx80, floatx80 ); -int floatx80_eq_signaling( floatx80, floatx80 ); -int floatx80_le_quiet( floatx80, floatx80 ); -int floatx80_lt_quiet( floatx80, floatx80 ); -int floatx80_is_signaling_nan( floatx80 ); - -#endif - -#ifdef FLOAT128 - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE quadruple-precision conversion routines. -*----------------------------------------------------------------------------*/ -int float128_to_int32( float128 ); -int float128_to_int32_round_to_zero( float128 ); -long float128_to_int64( float128 ); -long float128_to_int64_round_to_zero( float128 ); -float32 float128_to_float32( float128 ); -float64 float128_to_float64( float128 ); -#ifdef FLOATX80 -floatx80 float128_to_floatx80( float128 ); -#endif - -/*---------------------------------------------------------------------------- -| Software IEC/IEEE quadruple-precision operations. -*----------------------------------------------------------------------------*/ -float128 float128_round_to_int( float128 ); -float128 float128_add( float128, float128 ); -float128 float128_sub( float128, float128 ); -float128 float128_mul( float128, float128 ); -float128 float128_div( float128, float128 ); -float128 float128_rem( float128, float128 ); -float128 float128_sqrt( float128 ); -int float128_eq( float128, float128 ); -int float128_le( float128, float128 ); -int float128_lt( float128, float128 ); -int float128_eq_signaling( float128, float128 ); -int float128_le_quiet( float128, float128 ); -int float128_lt_quiet( float128, float128 ); -int float128_is_signaling_nan( float128 ); - -#endif - -#endif diff --git a/tools/test/testfloat/sparc64/sparc64.h b/tools/test/testfloat/sparc64/sparc64.h deleted file mode 100644 index 959a78cb675d..000000000000 --- a/tools/test/testfloat/sparc64/sparc64.h +++ /dev/null @@ -1,93 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ - -/*---------------------------------------------------------------------------- -| One of the macros `BIGENDIAN' or `LITTLEENDIAN' must be defined. -*----------------------------------------------------------------------------*/ -#define BIGENDIAN - -/*---------------------------------------------------------------------------- -| The macro `BITS64' can be defined to indicate that 64-bit integer types are -| supported by the compiler. -*----------------------------------------------------------------------------*/ -#define BITS64 - -/*---------------------------------------------------------------------------- -| Each of the following `typedef's defines the most convenient type that holds -| integers of at least as many bits as specified. For example, `uint8' should -| be the most convenient type that can hold unsigned integers of as many as -| 8 bits. The `flag' type must be able to hold either a 0 or 1. For most -| implementations of C, `flag', `uint8', and `int8' should all be `typedef'ed -| to the same as `int'. -*----------------------------------------------------------------------------*/ -typedef int flag; -typedef int uint8; -typedef int int8; -typedef int uint16; -typedef int int16; -typedef unsigned int uint32; -typedef signed int int32; -#ifdef BITS64 -typedef unsigned long int uint64; -typedef signed long int int64; -#endif - -/*---------------------------------------------------------------------------- -| Each of the following `typedef's defines a type that holds integers -| of _exactly_ the number of bits specified. For instance, for most -| implementation of C, `bits16' and `sbits16' should be `typedef'ed to -| `unsigned short int' and `signed short int' (or `short int'), respectively. -*----------------------------------------------------------------------------*/ -typedef unsigned char bits8; -typedef signed char sbits8; -typedef unsigned short int bits16; -typedef signed short int sbits16; -typedef unsigned int bits32; -typedef signed int sbits32; -#ifdef BITS64 -typedef unsigned long int bits64; -typedef signed long int sbits64; -#endif - -#ifdef BITS64 -/*---------------------------------------------------------------------------- -| The `LIT64' macro takes as its argument a textual integer literal and -| if necessary ``marks'' the literal as having a 64-bit integer type. -| For example, the GNU C Compiler (`gcc') requires that 64-bit literals be -| appended with the letters `LL' standing for `long long', which is `gcc's -| name for the 64-bit integer type. Some compilers may allow `LIT64' to be -| defined as the identity macro: `#define LIT64( a ) a'. -*----------------------------------------------------------------------------*/ -#define LIT64( a ) a##L -#endif - -/*---------------------------------------------------------------------------- -| The macro `INLINE' can be used before functions that should be inlined. If -| a compiler does not support explicit inlining, this macro should be defined -| to be `static'. -*----------------------------------------------------------------------------*/ -#define INLINE extern inline diff --git a/tools/test/testfloat/sparc64/systflags.c b/tools/test/testfloat/sparc64/systflags.c deleted file mode 100644 index 9187facc8301..000000000000 --- a/tools/test/testfloat/sparc64/systflags.c +++ /dev/null @@ -1,73 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -=============================================================================== - -This C source file is part of TestFloat, Release 2a, a package of programs -for testing the correctness of floating-point arithmetic complying to the -IEC/IEEE Standard for Floating-Point. - -Written by John R. Hauser. More information is available through the Web -page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY -AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) they include prominent notice that the work is derivative, and (2) they -include prominent notice akin to these four paragraphs for those parts of -this code that are retained. - -=============================================================================== -*/ - -#include -__FBSDID("$FreeBSD$"); - -#pragma STDC FENV_ACCESS ON -#include -#include -#include "milieu.h" -#include "systflags.h" - -/* -------------------------------------------------------------------------------- -Clears the system's IEC/IEEE floating-point exception flags. Returns the -previous value of the flags. -------------------------------------------------------------------------------- -*/ -int8 syst_float_flags_clear( void ) -{ - fexcept_t flags; - - fegetexceptflag(&flags, FE_ALL_EXCEPT); - feclearexcept(FE_ALL_EXCEPT); - return (flags >> 5); -} - diff --git a/tools/test/testfloat/sparc64/systfloat.S b/tools/test/testfloat/sparc64/systfloat.S deleted file mode 100644 index 09e97d15fe37..000000000000 --- a/tools/test/testfloat/sparc64/systfloat.S +++ /dev/null @@ -1,1120 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* -=============================================================================== - -This GNU assembler source file is part of TestFloat, Release 2a, a package -of programs for testing the correctness of floating-point arithmetic -complying to the IEC/IEEE Standard for Floating-Point. - -Written by John R. Hauser. More information is available through the Web -page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY -AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) they include prominent notice that the work is derivative, and (2) they -include prominent notice akin to these four paragraphs for those parts of -this code that are retained. - -=============================================================================== -*/ - -#include -__FBSDID("$FreeBSD$"); - - .text - -/* - .macro i2f32 src=%i0,dst=%f0 - st \src,[%sp+2231] - ld [%sp+2231],\dst - .endm - - .macro i2f64 src=%i0,dst=%f0 - stx \src,[%sp+2231] - ldd [%sp+2231],\dst - .endm - - .macro f2i32 src=%f0,dst=%i0 - st \src,[%sp+2231] - ld [%sp+2231],\dst - .endm - - .macro f2i64 src=%f0,dst=%i0 - std \src,[%sp+2231] - ldx [%sp+2231],\dst - .endm -*/ -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int32_to_float32 -syst_int32_to_float32: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fitos %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int32_to_float64 -syst_int32_to_float64: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fitod %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int32_to_float128 -syst_int32_to_float128: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fitoq %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int64_to_float32 -syst_int64_to_float32: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fxtos %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int64_to_float64 -syst_int64_to_float64: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fxtod %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_int64_to_float128 -syst_int64_to_float128: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fxtoq %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_to_int32_round_to_zero -syst_float32_to_int32_round_to_zero: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fstoi %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_to_int64_round_to_zero -syst_float32_to_int64_round_to_zero: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fstox %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_to_float64 -syst_float32_to_float64: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fstod %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_to_float128 -syst_float32_to_float128: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fstoq %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_add -syst_float32_add: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fadds %f0,%f1,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_sub -syst_float32_sub: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fsubs %f0,%f1,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_mul -syst_float32_mul: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fmuls %f0,%f1,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_div -syst_float32_div: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fdivs %f0,%f1,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_sqrt -syst_float32_sqrt: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - fsqrts %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_eq -syst_float32_eq: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmps %fcc0,%f0,%f1 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_le -syst_float32_le: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmpes %fcc0,%f0,%f1 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_lt -syst_float32_lt: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmpes %fcc0,%f0,%f1 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_eq_signaling -syst_float32_eq_signaling: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmpes %fcc0,%f0,%f1 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_le_quiet -syst_float32_le_quiet: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmps %fcc0,%f0,%f1 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float32_lt_quiet -syst_float32_lt_quiet: - save %sp,-192,%sp - - st %i0,[%sp+2231] - ld [%sp+2231],%f0 - st %i1,[%sp+2231] - ld [%sp+2231],%f1 - fcmps %fcc0,%f0,%f1 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_to_int32_round_to_zero -syst_float64_to_int32_round_to_zero: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fdtoi %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_to_int64_round_to_zero -syst_float64_to_int64_round_to_zero: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fdtox %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_to_float32 -syst_float64_to_float32: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fdtos %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_to_float128 -syst_float64_to_float128: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fdtoq %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_add -syst_float64_add: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - faddd %f0,%f2,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_sub -syst_float64_sub: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fsubd %f0,%f2,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_mul -syst_float64_mul: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fmuld %f0,%f2,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_div -syst_float64_div: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fdivd %f0,%f2,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_sqrt -syst_float64_sqrt: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - fsqrtd %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_eq -syst_float64_eq: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmpd %fcc0,%f0,%f2 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_le -syst_float64_le: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmped %fcc0,%f0,%f2 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_lt -syst_float64_lt: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmped %fcc0,%f0,%f2 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_eq_signaling -syst_float64_eq_signaling: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmped %fcc0,%f0,%f2 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_le_quiet -syst_float64_le_quiet: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmpd %fcc0,%f0,%f2 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float64_lt_quiet -syst_float64_lt_quiet: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fcmpd %fcc0,%f0,%f2 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_to_int32_round_to_zero -syst_float128_to_int32_round_to_zero: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fqtoi %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_to_int64_round_to_zero -syst_float128_to_int64_round_to_zero: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fqtox %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_to_float32 -syst_float128_to_float32: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fqtos %f0,%f0 - st %f0,[%sp+2231] - ld [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_to_float64 -syst_float128_to_float64: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fqtod %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_add -syst_float128_add: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - faddq %f0,%f4,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_sub -syst_float128_sub: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fsubq %f0,%f4,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_mul -syst_float128_mul: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fmulq %f0,%f4,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_div -syst_float128_div: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fdivq %f0,%f4,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_sqrt -syst_float128_sqrt: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - fsqrtq %f0,%f0 - std %f0,[%sp+2231] - ldx [%sp+2231],%i0 - std %f2,[%sp+2231] - ldx [%sp+2231],%i1 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_eq -syst_float128_eq: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpq %fcc0,%f0,%f4 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_le -syst_float128_le: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpeq %fcc0,%f0,%f4 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_lt -syst_float128_lt: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpeq %fcc0,%f0,%f4 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_eq_signaling -syst_float128_eq_signaling: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpeq %fcc0,%f0,%f4 - mov 0,%i0 - move %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_le_quiet -syst_float128_le_quiet: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpq %fcc0,%f0,%f4 - mov 0,%i0 - movle %fcc0,1,%i0 - - ret - restore - -/* -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- -*/ - .align 4 - .global syst_float128_lt_quiet -syst_float128_lt_quiet: - save %sp,-192,%sp - - stx %i0,[%sp+2231] - ldd [%sp+2231],%f0 - stx %i1,[%sp+2231] - ldd [%sp+2231],%f2 - stx %i2,[%sp+2231] - ldd [%sp+2231],%f4 - stx %i3,[%sp+2231] - ldd [%sp+2231],%f6 - fcmpq %fcc0,%f0,%f4 - mov 0,%i0 - movl %fcc0,1,%i0 - - ret - restore diff --git a/tools/test/testfloat/sparc64/systfloat.h b/tools/test/testfloat/sparc64/systfloat.h deleted file mode 100644 index c1db1ebd361e..000000000000 --- a/tools/test/testfloat/sparc64/systfloat.h +++ /dev/null @@ -1,216 +0,0 @@ - -/* -=============================================================================== - -This C header file is part of TestFloat, Release 2a, a package of programs -for testing the correctness of floating-point arithmetic complying to the -IEC/IEEE Standard for Floating-Point. - -Written by John R. Hauser. More information is available through the Web -page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY -AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) they include prominent notice that the work is derivative, and (2) they -include prominent notice akin to these four paragraphs for those parts of -this code that are retained. - -=============================================================================== -*/ - -/* $FreeBSD$ */ - -#include "softfloat.h" -#include "milieu.h" - -/* -------------------------------------------------------------------------------- -The following macros are defined to indicate that the corresponding -functions exist. -------------------------------------------------------------------------------- -*/ -#define SYST_INT32_TO_FLOAT32 -#define SYST_INT32_TO_FLOAT64 -#define SYST_INT32_TO_FLOAT128 -#define SYST_INT64_TO_FLOAT32 -#define SYST_INT64_TO_FLOAT64 -#define SYST_INT64_TO_FLOAT128 -#define SYST_FLOAT32_TO_INT32_ROUND_TO_ZERO -#define SYST_FLOAT32_TO_INT64_ROUND_TO_ZERO -#define SYST_FLOAT32_TO_FLOAT64 -#define SYST_FLOAT32_TO_FLOAT128 -#define SYST_FLOAT32_ADD -#define SYST_FLOAT32_SUB -#define SYST_FLOAT32_MUL -#define SYST_FLOAT32_DIV -#define SYST_FLOAT32_SQRT -#define SYST_FLOAT32_EQ -#define SYST_FLOAT32_LE -#define SYST_FLOAT32_LT -#define SYST_FLOAT32_EQ_SIGNALING -#define SYST_FLOAT32_LE_QUIET -#define SYST_FLOAT32_LT_QUIET -#define SYST_FLOAT64_TO_INT32_ROUND_TO_ZERO -#define SYST_FLOAT64_TO_INT64_ROUND_TO_ZERO -#define SYST_FLOAT64_TO_FLOAT32 -#define SYST_FLOAT64_TO_FLOAT128 -#define SYST_FLOAT64_ADD -#define SYST_FLOAT64_SUB -#define SYST_FLOAT64_MUL -#define SYST_FLOAT64_DIV -#define SYST_FLOAT64_SQRT -#define SYST_FLOAT64_EQ -#define SYST_FLOAT64_LE -#define SYST_FLOAT64_LT -#define SYST_FLOAT64_EQ_SIGNALING -#define SYST_FLOAT64_LE_QUIET -#define SYST_FLOAT64_LT_QUIET -#define SYST_FLOAT128_TO_INT32_ROUND_TO_ZERO -#define SYST_FLOAT128_TO_INT64_ROUND_TO_ZERO -#define SYST_FLOAT128_TO_FLOAT32 -#define SYST_FLOAT128_TO_FLOAT64 -#define SYST_FLOAT128_ADD -#define SYST_FLOAT128_SUB -#define SYST_FLOAT128_MUL -#define SYST_FLOAT128_DIV -#define SYST_FLOAT128_SQRT -#define SYST_FLOAT128_EQ -#define SYST_FLOAT128_LE -#define SYST_FLOAT128_LT -#define SYST_FLOAT128_EQ_SIGNALING -#define SYST_FLOAT128_LE_QUIET -#define SYST_FLOAT128_LT_QUIET - -/* -------------------------------------------------------------------------------- -System function declarations. (Some of these functions may not exist.) -------------------------------------------------------------------------------- -*/ -float32 syst_int32_to_float32( int32 ); -float64 syst_int32_to_float64( int32 ); -#ifdef FLOATX80 -floatx80 syst_int32_to_floatx80( int32 ); -#endif -#ifdef FLOAT128 -float128 syst_int32_to_float128( int32 ); -#endif -#ifdef BITS64 -float32 syst_int64_to_float32( int64 ); -float64 syst_int64_to_float64( int64 ); -#ifdef FLOATX80 -floatx80 syst_int64_to_floatx80( int64 ); -#endif -#ifdef FLOAT128 -float128 syst_int64_to_float128( int64 ); -#endif -#endif -int32 syst_float32_to_int32( float32 ); -int32 syst_float32_to_int32_round_to_zero( float32 ); -#ifdef BITS64 -int64 syst_float32_to_int64( float32 ); -int64 syst_float32_to_int64_round_to_zero( float32 ); -#endif -float64 syst_float32_to_float64( float32 ); -#ifdef FLOATX80 -floatx80 syst_float32_to_floatx80( float32 ); -#endif -#ifdef FLOAT128 -float128 syst_float32_to_float128( float32 ); -#endif -float32 syst_float32_round_to_int( float32 ); -float32 syst_float32_add( float32, float32 ); -float32 syst_float32_sub( float32, float32 ); -float32 syst_float32_mul( float32, float32 ); -float32 syst_float32_div( float32, float32 ); -float32 syst_float32_rem( float32, float32 ); -float32 syst_float32_sqrt( float32 ); -flag syst_float32_eq( float32, float32 ); -flag syst_float32_le( float32, float32 ); -flag syst_float32_lt( float32, float32 ); -flag syst_float32_eq_signaling( float32, float32 ); -flag syst_float32_le_quiet( float32, float32 ); -flag syst_float32_lt_quiet( float32, float32 ); -int32 syst_float64_to_int32( float64 ); -int32 syst_float64_to_int32_round_to_zero( float64 ); -#ifdef BITS64 -int64 syst_float64_to_int64( float64 ); -int64 syst_float64_to_int64_round_to_zero( float64 ); -#endif -float32 syst_float64_to_float32( float64 ); -#ifdef FLOATX80 -floatx80 syst_float64_to_floatx80( float64 ); -#endif -#ifdef FLOAT128 -float128 syst_float64_to_float128( float64 ); -#endif -float64 syst_float64_round_to_int( float64 ); -float64 syst_float64_add( float64, float64 ); -float64 syst_float64_sub( float64, float64 ); -float64 syst_float64_mul( float64, float64 ); -float64 syst_float64_div( float64, float64 ); -float64 syst_float64_rem( float64, float64 ); -float64 syst_float64_sqrt( float64 ); -flag syst_float64_eq( float64, float64 ); -flag syst_float64_le( float64, float64 ); -flag syst_float64_lt( float64, float64 ); -flag syst_float64_eq_signaling( float64, float64 ); -flag syst_float64_le_quiet( float64, float64 ); -flag syst_float64_lt_quiet( float64, float64 ); -#ifdef FLOATX80 -int32 syst_floatx80_to_int32( floatx80 ); -int32 syst_floatx80_to_int32_round_to_zero( floatx80 ); -#ifdef BITS64 -int64 syst_floatx80_to_int64( floatx80 ); -int64 syst_floatx80_to_int64_round_to_zero( floatx80 ); -#endif -float32 syst_floatx80_to_float32( floatx80 ); -float64 syst_floatx80_to_float64( floatx80 ); -#ifdef FLOAT128 -float128 syst_floatx80_to_float128( floatx80 ); -#endif -floatx80 syst_floatx80_round_to_int( floatx80 ); -floatx80 syst_floatx80_add( floatx80, floatx80 ); -floatx80 syst_floatx80_sub( floatx80, floatx80 ); -floatx80 syst_floatx80_mul( floatx80, floatx80 ); -floatx80 syst_floatx80_div( floatx80, floatx80 ); -floatx80 syst_floatx80_rem( floatx80, floatx80 ); -floatx80 syst_floatx80_sqrt( floatx80 ); -flag syst_floatx80_eq( floatx80, floatx80 ); -flag syst_floatx80_le( floatx80, floatx80 ); -flag syst_floatx80_lt( floatx80, floatx80 ); -flag syst_floatx80_eq_signaling( floatx80, floatx80 ); -flag syst_floatx80_le_quiet( floatx80, floatx80 ); -flag syst_floatx80_lt_quiet( floatx80, floatx80 ); -#endif -#ifdef FLOAT128 -int32 syst_float128_to_int32( float128 ); -int32 syst_float128_to_int32_round_to_zero( float128 ); -#ifdef BITS64 -int64 syst_float128_to_int64( float128 ); -int64 syst_float128_to_int64_round_to_zero( float128 ); -#endif -float32 syst_float128_to_float32( float128 ); -float64 syst_float128_to_float64( float128 ); -#ifdef FLOATX80 -floatx80 syst_float128_to_floatx80( float128 ); -#endif -float128 syst_float128_round_to_int( float128 ); -float128 syst_float128_add( float128, float128 ); -float128 syst_float128_sub( float128, float128 ); -float128 syst_float128_mul( float128, float128 ); -float128 syst_float128_div( float128, float128 ); -float128 syst_float128_rem( float128, float128 ); -float128 syst_float128_sqrt( float128 ); -flag syst_float128_eq( float128, float128 ); -flag syst_float128_le( float128, float128 ); -flag syst_float128_lt( float128, float128 ); -flag syst_float128_eq_signaling( float128, float128 ); -flag syst_float128_le_quiet( float128, float128 ); -flag syst_float128_lt_quiet( float128, float128 ); -#endif - diff --git a/tools/test/testfloat/sparc64/systmodes.c b/tools/test/testfloat/sparc64/systmodes.c deleted file mode 100644 index 26770599c0b4..000000000000 --- a/tools/test/testfloat/sparc64/systmodes.c +++ /dev/null @@ -1,54 +0,0 @@ - -/* -=============================================================================== - -This C source file is part of TestFloat, Release 2a, a package of programs -for testing the correctness of floating-point arithmetic complying to the -IEC/IEEE Standard for Floating-Point. - -Written by John R. Hauser. More information is available through the Web -page `http://HTTP.CS.Berkeley.EDU/~jhauser/arithmetic/TestFloat.html'. - -THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE. Although reasonable effort -has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT -TIMES RESULT IN INCORRECT BEHAVIOR. USE OF THIS SOFTWARE IS RESTRICTED TO -PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY -AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE. - -Derivative works are acceptable, even for commercial purposes, so long as -(1) they include prominent notice that the work is derivative, and (2) they -include prominent notice akin to these four paragraphs for those parts of -this code that are retained. - -=============================================================================== -*/ - -#include -__FBSDID("$FreeBSD$"); - -#include -#include "milieu.h" -#include "systmodes.h" - -/* -------------------------------------------------------------------------------- -Sets the system's IEC/IEEE floating-point rounding mode. -------------------------------------------------------------------------------- -*/ -void syst_float_set_rounding_mode( int8 roundingMode ) -{ - - (void) fpsetround( roundingMode ); - -} - -/* -------------------------------------------------------------------------------- -Does nothing. -------------------------------------------------------------------------------- -*/ -void syst_float_set_rounding_precision( int8 precision ) -{ - -} - diff --git a/tools/test/testfloat/sparc64/un-namespace.h b/tools/test/testfloat/sparc64/un-namespace.h deleted file mode 100644 index 5e7d1bc431b0..000000000000 --- a/tools/test/testfloat/sparc64/un-namespace.h +++ /dev/null @@ -1,30 +0,0 @@ -/*- - * Copyright (c) 2010 by Peter Jeremy - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE - * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * $FreeBSD$ - */ -/* - * This file has no content and is solely to satisfy a #include in - * the FP emulator code. - */