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