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

📄 fp1.s

📁 UNIX版本6的源代码
💻 S
字号:
/ fp1 -- floating point simulatorrti	= 2bpt	= 3m.ext = 200		/ long mode bitm.lngi = 100		/ long integer mode.globl	fptrap.globl	ac0, ac1, ac2, ac3fptrap:	dec	reenter	bge	1f	4		/ reentered!1:	mov	(sp)+,spc	mov	(sp)+,sps	mov	r0,sr0	mov	$sr1,r0	mov	r1,(r0)+	mov	r2,(r0)+	mov	r3,(r0)+	mov	r4,(r0)+	mov	r5,(r0)+	mov	sp,(r0)+	sub	$8,sp		/ room for double push	mov	(r0),r5		/ pc	clr	trapins	mov	-(r5),r5	/ trapped instruction	mov	r5,r4	bic	$7777,r4	cmp	r4,$170000	beq	1f	jmp	badins1:	bic	$100000,fpsr	/ clear fp error	bic	$170000,r5	mov	r5,r4	bit	$7000,r4	bne	class3	bit	$700,r4	bne	class2	cmp	r4,$12	blos	1f	jmp	badins1:	asl	r4	jmp	*1f(r4)	.data1:	i.cfcc		/ 170000	i.setf		/ 170001	i.seti		/ 170002	badins	badins	badins	badins	badins	badins	i.setd		/ 170011	i.setl		/ 170012	.textclass2:	cmp	r5,$400	bge	1f	jsr	r1,fsrc; mod0rx; mod242	br	2f1:	jsr	r1,fsrc; mod0f; mod24f2:	mov	r3,r5	asl	r4	asl	r4	clrb	r4	swab	r4	asl	r4	jsr	pc,*1f(r4)	jmp	sret	.data1:	badins		/ 1700xx	i.ldfps		/ 1701xx	i.stfps		/ 1702xx	badins		/ 1703xx - stst	i.clrx		/ 1704xx	i.tstx		/ 1705xx	i.absx		/ 1706xx	i.negx		/ 1707xx	.textclass3:	cmp	r5,$5000	blt	1f	mov	r5,r2	clrb	r2	cmp	r2,$6400	blt	2f	sub	$1400,r22:	cmp	r2,$5000	bne	2f	jsr	r1,fsrc; mod0rx; mod242	br	3f2:	cmp	r2,$5400	bne	2f	jsr	r1,fsrc; mod0ra; mod24i	br	3f2:	jsr	r1,fsrc; mod0f; mod24d	br	3f1:	jsr	r1,fsrc; mod0f; mod24f3:	jsr	pc,freg	mov	r2,r5	clrb	r4	swab	r4	asl	r4	jsr	pc,*1f(r4)	br	sret	.data1:	badins		/ 1700xx	badins		/ 1704xx	i.mulx		/ 1710xx	i.modx		/ 1714xx	i.addx		/ 1720xx	i.ldx		/ 1724xx	i.subx		/ 1730xx	i.cmpx		/ 1734xx	i.stx		/ 1740xx	i.divx		/ 1744xx	i.stexp		/ 1750xx	i.stcxj		/ 1754xx	i.stcxy		/ 1760xx	i.ldexp		/ 1764xx	i.ldcjx		/ 1770xx	i.ldcyx		/ 1774xx	.texti.cfcc:	mov	fpsr,r0	bic	$!17,r0	mov	r0,sps	br	reti.setf:	bic	$m.ext,fpsr	br	reti.setd:	bis	$m.ext,fpsr	br	reti.seti:	bic	$m.lngi,fpsr	br	reti.setl:	bis	$m.lngi,fpsr	br	retbadins:	inc	trapins	br	retsret:	mov	$fpsr,r0	bic	$17,(r0)	tst	(r5)	bpl	1f	bis	$10,(r0)	br	ret1:	bne	ret	bis	$4,(r0)ret:	mov	$sr1,r0	mov	(r0)+,r1	mov	(r0)+,r2	mov	(r0)+,r3	mov	(r0)+,r4	mov	(r0)+,r5	mov	(r0)+,sp	mov	sr0,r0	mov	sps,-(sp)	mov	spc,-(sp)	tst	trapins	bne	1f	inc	reenter	rti1:	bptfreg:	mov	r5,r2	bic	$!300,r2	asr	r2	asr	r2	asr	r2	add	$ac0,r2	rts	pcfsrc:	mov	r5,r3	bic	$!7,r3			/ register	asl	r3	add	$sr0,r3	mov	r5,r0	bic	$!70,r0			/ mode	asr	r0	asr	r0	jmp	*1f(r0)	.data1:	mod0	mod1	mod2	mod3	mod4	mod5	mod6	mod7	.textmod24f:	mov	$4,r0	bit	$m.ext,fpsr	beq	1f	add	$4,r01:	rts	pcmod24d:	mov	$8,r0	bit	$m.ext,fpsr	beq	1f	sub	$4,r01:	rts	pcmod242:	mov	$2,r0	rts	pcmod24i:	mov	$2,r0	bit	$m.lngi,fpsr	beq	1f	add	$2,r01:	rts	pcmod0:	jmp	*(r1)+mod0f:	sub	$sr0,r3			/ get fp ac	cmp	r3,$6*2	bhis	badi1	asl	r3	asl	r3	add	$ac0,r3	tst	(r1)+	rts	r1mod0ra:	bit	$m.lngi,fpsr	bne	badi1mod0r:	cmp	r3,$ssp	bhis	badi1mod0rx:	tst	(r1)+	rts	r1mod1:	cmp	r3,$spc	beq	badi1	mov	(r3),r3	br	checkmod2:	mov	(r3),-(sp)	jsr	pc,*2(r1)	cmp	r3,$spc	bne	1f	mov	$2,r0	mov	*(r3),pctmp	mov	$pctmp,(sp)1:	add	r0,(r3)	mov	(sp)+,r3	br	checkmod3:	mov	*(r3),-(sp)	add	$2,(r3)	mov	(sp)+,r3	br	checkmod4:	cmp	r3,$spc		/ test pc	beq	badi1	jsr	pc,*2(r1)	sub	r0,(r3)	mov	(r3),r3	br	checkmod5:	cmp	r3,$spc	beq	badi1	sub	$2,(r3)	mov	*(r3),r3	br	checkmod6:	mov	*spc,-(sp)	add	$2,spc	add	(r3),(sp)	mov	(sp)+,r3	br	checkmod7:	jsr	r1,mod6; ..; ..	mov	(r3),r3	br	checkbadi1:	jmp	badinscheck:	bit	$1,r3	bne	badi1	cmp	(r1)+,(r1)+	rts	r1setab:	mov	$asign,r0	jsr	pc,seta	mov	r3,r2	mov	$bsign,r0seta:	clr	(r0)	mov	(r2)+,r1	mov	r1,-(sp)	beq	1f	blt	2f	inc	(r0)+	br	3f2:	dec	(r0)+3:	bic	$!177,r1	bis	$200,r1	br	2f1:	clr	(r0)+2:	mov	r1,(r0)+	mov	(r2)+,(r0)+	bit	$m.ext,fpsr	beq	2f	mov	(r2)+,(r0)+	mov	(r2)+,(r0)+	br	3f2:	clr	(r0)+	clr	(r0)+3:	mov	(sp)+,r1	asl	r1	clrb	r1	swab	r1	sub	$200,r1	mov	r1,(r0)+	/ exp	rts	pcnorm:	mov	$areg,r0	mov	(r0)+,r1	mov	r1,-(sp)	mov	(r0)+,r2	bis	r2,(sp)	mov	(r0)+,r3	bis	r3,(sp)	mov	(r0)+,r4	bis	r4,(sp)+	bne	1f	clr	asign	rts	pc1:	bit	$!377,r1	beq	1f	clc	ror	r1	ror	r2	ror	r3	ror	r4	inc	(r0)	br	1b1:	bit	$200,r1	bne	1f	asl	r4	rol	r3	rol	r2	rol	r1	dec	(r0)	br	1b1:	mov	r4,-(r0)	mov	r3,-(r0)	mov	r2,-(r0)	mov	r1,-(r0)	rts	pc

⌨️ 快捷键说明

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