xref: /freebsd/sys/powerpc/fpu/fpu_extern.h (revision 7e76048a6983e2f98c82d50ccd83bcdffe5a69d4)
17e76048aSMarcel Moolenaar /*	$NetBSD: fpu_extern.h,v 1.3 2005/12/11 12:18:42 christos Exp $	*/
27e76048aSMarcel Moolenaar /* $FreeBSD$ */
37e76048aSMarcel Moolenaar 
47e76048aSMarcel Moolenaar /*-
57e76048aSMarcel Moolenaar  * Copyright (c) 1995 The NetBSD Foundation, Inc.
67e76048aSMarcel Moolenaar  * All rights reserved.
77e76048aSMarcel Moolenaar  *
87e76048aSMarcel Moolenaar  * This code is derived from software contributed to The NetBSD Foundation
97e76048aSMarcel Moolenaar  * by Christos Zoulas.
107e76048aSMarcel Moolenaar  *
117e76048aSMarcel Moolenaar  * Redistribution and use in source and binary forms, with or without
127e76048aSMarcel Moolenaar  * modification, are permitted provided that the following conditions
137e76048aSMarcel Moolenaar  * are met:
147e76048aSMarcel Moolenaar  * 1. Redistributions of source code must retain the above copyright
157e76048aSMarcel Moolenaar  *    notice, this list of conditions and the following disclaimer.
167e76048aSMarcel Moolenaar  * 2. Redistributions in binary form must reproduce the above copyright
177e76048aSMarcel Moolenaar  *    notice, this list of conditions and the following disclaimer in the
187e76048aSMarcel Moolenaar  *    documentation and/or other materials provided with the distribution.
197e76048aSMarcel Moolenaar  * 3. All advertising materials mentioning features or use of this software
207e76048aSMarcel Moolenaar  *    must display the following acknowledgement:
217e76048aSMarcel Moolenaar  *        This product includes software developed by the NetBSD
227e76048aSMarcel Moolenaar  *        Foundation, Inc. and its contributors.
237e76048aSMarcel Moolenaar  * 4. Neither the name of The NetBSD Foundation nor the names of its
247e76048aSMarcel Moolenaar  *    contributors may be used to endorse or promote products derived
257e76048aSMarcel Moolenaar  *    from this software without specific prior written permission.
267e76048aSMarcel Moolenaar  *
277e76048aSMarcel Moolenaar  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
287e76048aSMarcel Moolenaar  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
297e76048aSMarcel Moolenaar  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
307e76048aSMarcel Moolenaar  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
317e76048aSMarcel Moolenaar  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
327e76048aSMarcel Moolenaar  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
337e76048aSMarcel Moolenaar  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
347e76048aSMarcel Moolenaar  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
357e76048aSMarcel Moolenaar  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
367e76048aSMarcel Moolenaar  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
377e76048aSMarcel Moolenaar  * POSSIBILITY OF SUCH DAMAGE.
387e76048aSMarcel Moolenaar  */
397e76048aSMarcel Moolenaar 
407e76048aSMarcel Moolenaar struct proc;
417e76048aSMarcel Moolenaar struct fpreg;
427e76048aSMarcel Moolenaar struct trapframe;
437e76048aSMarcel Moolenaar union instr;
447e76048aSMarcel Moolenaar struct fpemu;
457e76048aSMarcel Moolenaar struct fpn;
467e76048aSMarcel Moolenaar 
477e76048aSMarcel Moolenaar /* fpu.c */
487e76048aSMarcel Moolenaar int fpu_emulate(struct trapframe *, struct fpreg *);
497e76048aSMarcel Moolenaar int fpu_execute(struct trapframe *, struct fpemu *, union instr *);
507e76048aSMarcel Moolenaar 
517e76048aSMarcel Moolenaar /* fpu_add.c */
527e76048aSMarcel Moolenaar struct fpn *fpu_add(struct fpemu *);
537e76048aSMarcel Moolenaar 
547e76048aSMarcel Moolenaar /* fpu_compare.c */
557e76048aSMarcel Moolenaar void fpu_compare(struct fpemu *, int);
567e76048aSMarcel Moolenaar 
577e76048aSMarcel Moolenaar /* fpu_div.c */
587e76048aSMarcel Moolenaar struct fpn *fpu_div(struct fpemu *);
597e76048aSMarcel Moolenaar 
607e76048aSMarcel Moolenaar /* fpu_explode.c */
617e76048aSMarcel Moolenaar int fpu_itof(struct fpn *, u_int);
627e76048aSMarcel Moolenaar int fpu_xtof(struct fpn *, u_int64_t);
637e76048aSMarcel Moolenaar int fpu_stof(struct fpn *, u_int);
647e76048aSMarcel Moolenaar int fpu_dtof(struct fpn *, u_int, u_int);
657e76048aSMarcel Moolenaar void fpu_explode(struct fpemu *, struct fpn *, int, int);
667e76048aSMarcel Moolenaar 
677e76048aSMarcel Moolenaar /* fpu_implode.c */
687e76048aSMarcel Moolenaar u_int fpu_ftoi(struct fpemu *, struct fpn *);
697e76048aSMarcel Moolenaar u_int fpu_ftox(struct fpemu *, struct fpn *, u_int *);
707e76048aSMarcel Moolenaar u_int fpu_ftos(struct fpemu *, struct fpn *);
717e76048aSMarcel Moolenaar u_int fpu_ftod(struct fpemu *, struct fpn *, u_int *);
727e76048aSMarcel Moolenaar void fpu_implode(struct fpemu *, struct fpn *, int, u_int *);
737e76048aSMarcel Moolenaar 
747e76048aSMarcel Moolenaar /* fpu_mul.c */
757e76048aSMarcel Moolenaar struct fpn *fpu_mul(struct fpemu *);
767e76048aSMarcel Moolenaar 
777e76048aSMarcel Moolenaar /* fpu_sqrt.c */
787e76048aSMarcel Moolenaar struct fpn *fpu_sqrt(struct fpemu *);
797e76048aSMarcel Moolenaar 
807e76048aSMarcel Moolenaar /* fpu_subr.c */
817e76048aSMarcel Moolenaar int fpu_shr(struct fpn *, int);
827e76048aSMarcel Moolenaar void fpu_norm(struct fpn *);
837e76048aSMarcel Moolenaar struct fpn *fpu_newnan(struct fpemu *);
84