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

📄 dependent.il

📁 操作系统SunOS 4.1.3版本的源码
💻 IL
📖 第 1 页 / 共 2 页
字号:
/*	@(#)dependent.il 1.1 92/07/30 SMI	*//* * Copyright (c) 1989 by Sun Microsystems, Inc. */|	Sun-3 FPA+ templates for new sqrt and complex instructions.|	Comment out if using original Sun-3 FPA.        .inline _hypot,16        fpmoved sp@+,fpa0        fphypotd sp@+,fpa0,fpa1        fpmoved	fpa1,d0:d1        .end        .inline _d_hypot_,8        movl    sp@+,a0        fpmoved a0@,fpa0        movl    sp@+,a1        fphypotd a1@,fpa0,fpa1        fpmoved	fpa1,d0:d1        .end        .inline _r_hypot_,8        movl    sp@+,a0        fpmoves a0@,fpa0        movl    sp@+,a1        fphypots a1@,fpa0,fpa1        fpmoves	fpa1,d0        .end         .inline _z_abs,4        movl    sp@+,a0        fpmoved a0@+,fpa0        fphypotd a0@,fpa0,fpa1        fpmoved	fpa1,d0:d1        .end            .inline _c_abs,4        movl    sp@+,a0 	fpcabsd	a0@,fpa1	fpmoves	fpa1,d0        .end|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| void| _Fc_mult(c, a, b)| complex *c, *a, *b               .inline __Fc_mult,12        movl    sp@+,a1			| c        movl    sp@+,a0			| a	fpmoved a0@,fpa1		| fpa1 gets a        movl    sp@+,a0			| b 	fpcmuld a0@,fpa1,fpa2		| fpa0 gets a*b	fpmoved	fpa2,a1@		| c gets product        .end |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| void| _Fc_minus(c, a, b)| complex *c, *a, *b                .inline __Fc_minus,12|    30         c->real = a->real - b->real        movl    sp@+,a1			| c        movl    sp@+,a0			| a	fpmoved a0@,fpa0		| fpa0 gets a        movl    sp@+,a0			| b 	fpcsubd a0@,fpa0,fpa2		| fpa0 gets a-b	fpmoved	fpa2,a1@		| c gets product        .end|- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| void| _Fc_add(c, a, b)| complex *c, *a, *b        | {        .inline __Fc_add,12|    30         c->real = a->real + b->real        movl    sp@+,a1			| c        movl    sp@+,a0			| a	fpmoved a0@,fpa1		| fpa0 gets a        movl    sp@+,a0			| b 	fpcaddd a0@,fpa1,fpa2		| fpa0 gets a+b	fpmoved	fpa2,a1@		| c gets product        .end |- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -| void| _Fc_div(c, a, b)| complex *c, *a, *b                .inline __Fc_div,12|    30         c->real = a->real / b->real        movl    sp@+,a1			| c        movl    sp@+,a0			| a	fpmoved a0@,fpa1		| fpa0 gets a        movl    sp@+,a0			| b 	fpcdivd a0@,fpa1,fpa2		| fpa0 gets a/b	fpmoved	fpa2,a1@		| c gets product        .end         .inline Wsqrts,0        fpsqrts  d0,fpa0        fpmoves  fpa0,d0        .end        .inline Wsqrtd,0        fpsqrtd  d0:d1,fpa0        fpmoved  fpa0,d0:d1        .end         .inline _sqrt,8        fpsqrtd  sp@+,fpa0        fpmoved  fpa0,d0:d1        .end         .inline _d_sqrt_,4        movl    sp@+,a0        fpsqrtd  a0@,fpa0        fpmoved  fpa0,d0:d1        .end         .inline _Fsqrt,4        fpsqrts  sp@+,fpa0        fpmoves  fpa0,d0        .end        .inline _r_sqrt_,4        movl    sp@+,a0        fpsqrts  a0@,fpa0        fpmoves  fpa0,d0        .end        .inline _d_sqrt,4        movl    sp@+,a0        fpsqrtd  a0@,fpa0        fpmoved  fpa0,d0:d1        .end         .inline _r_sqrt,4        movl    sp@+,a0        fpsqrts  a0@,fpa0        fpmoves  fpa0,d0        .end|	End new FPA+ instruction templates.	*//*	-ffpa templates for documented libm functions		*/#define FPA_LIBM(f,g)  /* double _f ( double x ) ; */ \	.inline _/**/f,8 ; \	fpmoved sp@+,fpa0 ; \	fp/**/g/**/d fpa0,fpa0 ; \	fpmoved fpa0,d0:d1 ; \	.end ; \	.inline _d_/**/f/**/_,4 ;  /* double _d_f_ ( double *x ) ; */ \	movl	sp@+,a0 ; \	fpmoved	a0@,fpa0 ; \	fp/**/g/**/d fpa0,fpa0 ; \	fpmoved fpa0,d0:d1 ; \	.end ; \	.inline _r_/**/f/**/_,4 ; /* float _r_f_ (float *x ) ; */ \	movl	sp@+,a0 ; \	fpmoves	a0@,fpa0 ; \	fp/**/g/**/s fpa0,fpa0 ; \	fpmoves fpa0,d0 ; \	.end ; \	FPA_LIBM(sin,sin)	FPA_LIBM(cos,cos)	FPA_LIBM(atan,atan)	FPA_LIBM(exp,etox)	FPA_LIBM(expm1,etoxm1)	FPA_LIBM(log,logn)	FPA_LIBM(log1p,lognp1)	.inline _anint,8	movl	sp@+,d0	movl	sp@+,d1	jsr	Wanintd	.end	.inline _d_anint_,4	movl	sp@+,a0	movl	a0@+,d0	movl	a0@,d1	jsr	Wanintd	.end	.inline _r_anint_,4	movl	sp@+,a0	movl	a0@,d0	jsr	Wanints	.end	.inline _nint,8	movl	sp@+,d0	movl	sp@+,d1	jsr	Wnintd	.end	.inline _id_nint_,4	movl	sp@+,a0	movl	a0@+,d0	movl	a0@,d1	jsr	Wnintd	.end	.inline _ir_nint_,4	movl	sp@+,a0	movl	a0@,d0	jsr	Wnints	.end	.inline	_irint,8	fpmove	fpamode,d1	andl	#0xf,d1		| Clear junk bits.	movl	d1,d0	andb	#0xd,d0		| Clear integer convert toward zero mode.	fpmove	d0,fpamode	fpdtol	sp@+,fpa0	fpmoves	fpa0,d0	fpmove	d1,fpamode	| Restore FPA mode.	.end	.inline	_id_irint_,4	movl	sp@+,a0	fpmove	fpamode,d1	andl	#0xf,d1		| Clear junk bits.	movl	d1,d0	andb	#0xd,d0		| Clear integer convert toward zero mode.	fpmove	d0,fpamode	fpdtol	a0@,fpa0	fpmoves	fpa0,d0	fpmove	d1,fpamode	| Restore FPA mode.	.end	.inline	_ir_irint_,4	movl	sp@+,a0	fpmove	fpamode,d1	andl	#0xf,d1		| Clear junk bits.	movl	d1,d0	andb	#0xd,d0		| Clear integer convert toward zero mode.	fpmove	d0,fpamode	fpstol	a0@,fpa0	fpmoves	fpa0,d0	fpmove	d1,fpamode	| Restore FPA mode.	.end	.inline _ceil,8	movl	sp@+,d0	movl	sp@+,d1	jsr	Wceild	.end	.inline _floor,8	movl	sp@+,d0	movl	sp@+,d1	jsr	Wfloord	.end	.inline _d_floor_,4	movl	sp@+,a0	movl	a0@+,d0	movl	a0@,d1	jsr	Wfloord	.end	.inline _d_ceil_,4	movl	sp@+,a0	movl	a0@+,d0	movl	a0@,d1	jsr	Wceild	.end	.inline _r_floor_,4	movl	sp@+,a0	movl	a0@,d0	jsr	Wfloors	.end	.inline _r_ceil_,4	movl	sp@+,a0	movl	a0@,d0	jsr	Wceils	.end        .inline _hypot,16        fmoved	sp@+,fp0	fmoved	sp@+,fp1        fmulx   fp0,fp0        fmulx   fp1,fp1        faddx   fp1,fp0        fsqrtx  fp0,fp0        fmoved  fp0,sp@-        movl	sp@+,d0	movl	sp@+,d1	.end        .inline _d_hypot_,8	movl	sp@+,a0	movl	sp@+,a1        fmoved	a0@,fp0	fmoved	a1@,fp1        fmulx   fp0,fp0        fmulx   fp1,fp1        faddx   fp1,fp0        fsqrtx  fp0,fp0        fmoved  fp0,sp@-        movl	sp@+,d0	movl	sp@+,d1	.end        .inline _z_abs,4        movl    sp@+,a0        fmoved  a0@+,fp0        fmoved  a0@,fp1        fmulx   fp0,fp0        fmulx   fp1,fp1        faddx   fp1,fp0        fsqrtx  fp0,fp0        fmoved  fp0,sp@-        movel   sp@+,d0        movel   sp@+,d1        .end        	.inline _i_dnnt,4        movl   sp@+,a0        movl   a0@+,d0        movl   a0@,d1        jsr     Wnintd        .end        .inline _i_nint,4        movl   sp@+,a0        movl   a0@,d0        jsr     Wnints        .end/*	templates for obsolete libm functions	*/        .inline Wlog10s,0        flog10s	d0,fp0	fmoves	fp0,d0        .end        .inline Wlog10d,0        movl    d1,sp@-        movl    d0,sp@-        flog10d	sp@+,fp0	fmoved	fp0,sp@-	movl	sp@+,d0	movl	sp@+,d1        .end	.inline	_d_dim,8	movel	sp@+,a0	fpmoved	a0@,fpa0	movel	sp@+,a0	fpsubd	a0@,fpa0	fpmoved	fpa0,d0:d1	tstl	d0	jpl	1f		| Branch if positive sign bit.	cmpl	#0xfff00000,d0	jlt	2f		| Branch if finite.	jgt	1f		| Branch if nan.	tstl	d1	jne	1f		| Branch if nan.2:	clrl	d0	clrl	d11:	.end	.inline	_r_dim,8	movel	sp@+,a0	fpmoves	a0@,fpa0	movel	sp@+,a0	fpsubs	a0@,fpa0	fpmoves	fpa0,d0	tstl	d0	jpl	1f		| Branch if positive sign.	cmpl	#0xff800000,d0	jgt	1f		| Branch if nan.	clrl	d01:	.end	.inline	__Fz_mult,12		movl	sp@+,d0		| d0 = c.	movl	sp@+,a1		| a0 = a.	movl	sp@+,a0		| a1 = b.	fpmoved	a1@,fpa0	| fp0 = (a->dreal *  b->dreal).	fpmuld	a0@,fpa0	fpmoved	a1@(8),fpa1	| fp1 = (a->dimag *  b->dimag).	fpmuld	a0@(8),fpa1	fpsubd	fpa1,fpa0	| c->dreal = fp0 - fp1.	exg	d0,a0	fpmoved	fpa0,a0@	exg	d0,a0	fpmoved	a1@,fpa0	| fp0 = (a->dreal *  b->dimag).	fpmuld	a0@(8),fpa0	fpmoved	a1@(8),fpa1	| fp1 = (a->dimag *  b->dreal).	fpmuld	a0@,fpa1	fpaddd	fpa1,fpa0	| c->dimag = fp0 + fp1.	movl	d0,a0	fpmoved	fpa0,a0@(8)	.end	.inline	__Fz_minus,12	movl	sp@+,d0		| d0 = c.	movl	sp@+,a0		| a0 = a.	movl	sp@+,a1		| a1 = b.	fpmoved	a0@+,fpa0	| fp0 = a->dreal - b->dreal.	fpsubd	a1@+,fpa0	fpmoved	a0@,fpa1		| fp1 = a->dimag - b->dimag.	fpsubd	a1@,fpa1	movl	d0,a0	fpmoved	fpa0,a0@+	| c->dreal = fp0.	fpmoved	fpa1,a0@		| c->dimag = fp1.	.end	.inline	__Fz_add,12	movl	sp@+,d0		| d0 = c.	movl	sp@+,a0		| a0 = a.	movl	sp@+,a1		| a1 = b.	fpmoved	a0@+,fpa0	| fp0 = a->dreal + b->dreal.	fpaddd	a1@+,fpa0	fpmoved	a0@,fpa1		| fp1 = a->dimag + b->dimag.	fpaddd	a1@,fpa1	movl	d0,a0	fpmoved	fpa0,a0@+	| c->dreal = fp0.	fpmoved	fpa1,a0@		| c->dimag = fp1.	.end	.inline	__Ff_conv_z,8	movl	sp@+,a0	fpstod	sp@+,fpa0	fpmoved	fpa0,a0@+	clrl    a0@+

⌨️ 快捷键说明

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