⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fp.s

📁 早期freebsd实现
💻 S
📖 第 1 页 / 共 5 页
字号:
/* * Copyright (c) 1992, 1993 *	The Regents of the University of California.  All rights reserved. * * This code is derived from software contributed to Berkeley by * Ralph Campbell. * * 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. All advertising materials mentioning features or use of this software *    must display the following acknowledgement: *	This product includes software developed by the University of *	California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors *    may be used to endorse or promote products derived from this software *    without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. * *	@(#)fp.s	8.1 (Berkeley) 6/10/93 *//* * Standard header stuff. */#include <machine/regdef.h>#include <machine/machAsmDefs.h>#include <machine/machConst.h>#include "assym.h"#define SEXP_INF	0xff#define DEXP_INF	0x7ff#define SEXP_BIAS	127#define DEXP_BIAS	1023#define SEXP_MIN	-126#define DEXP_MIN	-1022#define SEXP_MAX	127#define DEXP_MAX	1023#define WEXP_MAX	30		/* maximum unbiased exponent for int */#define WEXP_MIN	-1		/* minimum unbiased exponent for int */#define SFRAC_BITS	23#define DFRAC_BITS	52#define SIMPL_ONE	0x00800000#define DIMPL_ONE	0x00100000#define SLEAD_ZEROS	31 - 23#define DLEAD_ZEROS	31 - 20#define STICKYBIT	1#define GUARDBIT	0x80000000#define SSIGNAL_NAN	0x00400000#define DSIGNAL_NAN	0x00080000#define SQUIET_NAN	0x003fffff#define DQUIET_NAN0	0x0007ffff#define DQUIET_NAN1	0xffffffff#define INT_MIN		0x80000000#define INT_MAX		0x7fffffff#define COND_UNORDERED	0x1#define COND_EQUAL	0x2#define COND_LESS	0x4#define COND_SIGNAL	0x8/*---------------------------------------------------------------------------- * * MachEmulateFP -- * *	Emulate unimplemented floating point operations. *	This routine should only be called by MachFPInterrupt(). * *	MachEmulateFP(instr) *		unsigned instr; * * Results: *	None. * * Side effects: *	Floating point registers are modified according to instruction. * *---------------------------------------------------------------------------- */NON_LEAF(MachEmulateFP, STAND_FRAME_SIZE, ra)	subu	sp, sp, STAND_FRAME_SIZE	sw	ra, STAND_RA_OFFSET(sp)/* * Decode the FMT field (bits 24-21) and FUNCTION field (bits 5-0). */	srl	v0, a0, 21 - 2			# get FMT field	and	v0, v0, 0xF << 2		# mask FMT field	and	v1, a0, 0x3F			# mask FUNC field	sll	v1, v1, 5			# align for table lookup	bgt	v0, 4 << 2, ill			# illegal format	or	v1, v1, v0	cfc1	a1, MACH_FPC_CSR		# get exception register	lw	a3, func_fmt_tbl(v1)		# switch on FUNC & FMT	and	a1, a1, ~MACH_FPC_EXCEPTION_UNIMPL	# clear exception	ctc1	a1, MACH_FPC_CSR	j	a3	.rdatafunc_fmt_tbl:	.word	add_s		# 0	.word	add_d		# 0	.word	ill		# 0	.word	ill		# 0	.word	ill		# 0	.word	ill		# 0	.word	ill		# 0	.word	ill		# 0	.word	sub_s		# 1	.word	sub_d		# 1	.word	ill		# 1	.word	ill		# 1	.word	ill		# 1	.word	ill		# 1	.word	ill		# 1	.word	ill		# 1	.word	mul_s		# 2	.word	mul_d		# 2	.word	ill		# 2	.word	ill		# 2	.word	ill		# 2	.word	ill		# 2	.word	ill		# 2	.word	ill		# 2	.word	div_s		# 3	.word	div_d		# 3	.word	ill		# 3	.word	ill		# 3	.word	ill		# 3	.word	ill		# 3	.word	ill		# 3	.word	ill		# 3	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	ill		# 4	.word	abs_s		# 5	.word	abs_d		# 5	.word	ill		# 5	.word	ill		# 5	.word	ill		# 5	.word	ill		# 5	.word	ill		# 5	.word	ill		# 5	.word	mov_s		# 6	.word	mov_d		# 6	.word	ill		# 6	.word	ill		# 6	.word	ill		# 6	.word	ill		# 6	.word	ill		# 6	.word	ill		# 6	.word	neg_s		# 7	.word	neg_d		# 7	.word	ill		# 7	.word	ill		# 7	.word	ill		# 7	.word	ill		# 7	.word	ill		# 7	.word	ill		# 7	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 8	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 9	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 10	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 11	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 12	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 13	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 14	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 15	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 16	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 17	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 18	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 19	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 20	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 21	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 22	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 23	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 24	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 25	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 26	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 27	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 28	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 29	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 30	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 31	.word	ill		# 32	.word	cvt_s_d		# 32	.word	ill		# 32	.word	ill		# 32	.word	cvt_s_w		# 32	.word	ill		# 32	.word	ill		# 32	.word	ill		# 32	.word	cvt_d_s		# 33	.word	ill		# 33	.word	ill		# 33	.word	ill		# 33	.word	cvt_d_w		# 33	.word	ill		# 33	.word	ill		# 33	.word	ill		# 33	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 34	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	ill		# 35	.word	cvt_w_s		# 36	.word	cvt_w_d		# 36	.word	ill		# 36	.word	ill		# 36	.word	ill		# 36	.word	ill		# 36	.word	ill		# 36	.word	ill		# 36	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 37	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 38	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 39	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 40	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 41	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 42	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 43	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 44	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 45	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 46	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	ill		# 47	.word	cmp_s		# 48	.word	cmp_d		# 48	.word	ill		# 48	.word	ill		# 48	.word	ill		# 48	.word	ill		# 48	.word	ill		# 48	.word	ill		# 48	.word	cmp_s		# 49	.word	cmp_d		# 49	.word	ill		# 49	.word	ill		# 49	.word	ill		# 49	.word	ill		# 49	.word	ill		# 49	.word	ill		# 49	.word	cmp_s		# 50	.word	cmp_d		# 50	.word	ill		# 50	.word	ill		# 50	.word	ill		# 50	.word	ill		# 50	.word	ill		# 50	.word	ill		# 50	.word	cmp_s		# 51	.word	cmp_d		# 51	.word	ill		# 51	.word	ill		# 51	.word	ill		# 51	.word	ill		# 51	.word	ill		# 51	.word	ill		# 51	.word	cmp_s		# 52	.word	cmp_d		# 52	.word	ill		# 52	.word	ill		# 52	.word	ill		# 52	.word	ill		# 52	.word	ill		# 52	.word	ill		# 52	.word	cmp_s		# 53	.word	cmp_d		# 53	.word	ill		# 53	.word	ill		# 53	.word	ill		# 53	.word	ill		# 53	.word	ill		# 53	.word	ill		# 53	.word	cmp_s		# 54	.word	cmp_d		# 54	.word	ill		# 54	.word	ill		# 54	.word	ill		# 54	.word	ill		# 54	.word	ill		# 54	.word	ill		# 54	.word	cmp_s		# 55

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -