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

📄 cr.u

📁 操作系统SunOS 4.1.3版本的源码
💻 U
📖 第 1 页 / 共 3 页
字号:
	call mdmovelp;		halt;				regtotmp;	rcsmsw ptr2;routine cd.MV3 001001100101	halt;				;		;	;			halt;				;		ptr2;		lpreg!9	call mdmovelp;		halt;				regtotmp;	rcsmsw ptr2;routine cd.MV4 001001100111	halt;				;		;	;			halt;				;		ptr2;		lpreg!16	call mdmovelp;		halt;				regtotmp;	rcsmsw ptr2;|*		Move matrix at ptr2 to ptr1mdmovelp:	;			halt;				regtotmp;	rcslsw ptr2;	;			halt;				;		ptr1;		ptr2+	;			halt;				tmptoreg;	rcsmsw ptr1;	lpreg-	;			halt;				tmptoreg;	rcslsw ptr1;	jloop mdmovelp;		halt;				;		ptr2;		ptr1+	;			halt;				regtotmp;	rcsmsw ptr2;	pipe idl1;		halt;				;		imm2;|*|*		2 X 2 Matrix Transpose|*		Single Precision|*routine cs.TR2 001001101000	halt;				;		;|*  load ptr5 with 0x700+D0 - 1, since ptr5 is increased at beginning of loop.	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0x02	call tsmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xD0	call tsmove;		halt;				;		ptr5;|* Note:  Do not need to reload ptr5, since tsmove incremented it by 1.	call tsmove;		halt;				;		ptr5;	pipe idl1;		halt;				;		imm2;|*|*		3 X 3 Matrix Transpose|*		Single Precision|*routine cs.TR3 001001101010	halt;				;		;	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0x07	call tsmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xD4	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD1	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD6	call tsmove;		halt;				;		ptr5;|* Do not need to reload element 2,2, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD0	call tsmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xD5	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD2	call tsmove;		halt;				;		ptr5;	pipe idl1;		halt;				;		imm2;|*|*		4 X 4 Matrix Transpose|*		Single Precision|*routine cs.TR4 001001101100	halt;				;		;	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0xE	call tsmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xDA	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD6	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD2	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xDD	call tsmove;		halt;				;		ptr5;|* Do not need to reload element 3,3, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD5	call tsmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xD1	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xDC	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD8	call tsmove;		halt;				;		ptr5;|* Do not need to reload element 2,2, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD0	call tsmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xDB	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD7	call tsmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD3	call tsmove;		halt;				;		ptr5;	pipe idl1;		halt;				;		imm2;|* tsmovelp:	;			halt;				regtotmp;	rcssp ptr1;	ptr5+	;			halt;				;		ptr5;		lpreg-	jloop tsmovelp;		halt;				tmptoreg;	rcssp ptr5;	ptr1+	rtn;			halt;				;		ptr1;|*  move element from ptr5 to ptr1|*  ptr1 is decremented at beginning of loop, since 'tsmovelp' incremented it at end of looptsmove:	;			halt;				regtotmp;	rcssp ptr5;	ptr1-	;			halt;				;		ptr1;		ptr5+	rtn;			halt;				tmptoreg;	rcssp ptr1;|*|*		2 X 2 Matrix Transpose|*		Double Precision|*routine cd.TR2 001001101001	halt;				;		;|*  load ptr5 with 0x700+D0 - 1, since ptr5 is increased at beginning of loop.	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0x02	call tdmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xD0	call tdmove;		halt;				;		ptr5;|* Note:  Do not need to reload ptr5, since tdmove incremented it by 1.	call tdmove;		halt;				;		ptr5;	call idle1;		halt;				;		;|*|*		3 X 3 Matrix Transpose|*		Double Precision|*routine cd.TR3 001001101011	halt;				;		;	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0x07	call tdmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xD4	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD1	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD6	call tdmove;		halt;				;		ptr5;|* Do not need to reload element 2,2, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD0	call tdmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xD5	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD2	call tdmove;		halt;				;		ptr5;	pipe idl1;		halt;				;		imm2;|*|*		4 X 4 Matrix Transpose|*		Double Precision|*routine cd.TR4 001001101101	halt;				;		;	;			halt;				;		;	ptr5!0x700+0xCF	;			halt;				;		;	lpreg!0xE	call tdmovelp;		halt;				;		ptr1;	ptr1+	;			halt;				;		;	ptr5!0x700+0xDA	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD6	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD2	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xDD	call tdmove;		halt;				;		ptr5;|* Do not need to reload element 3,3, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD5	call tdmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xD1	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xDC	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD8	call tdmove;		halt;				;		ptr5;|* Do not need to reload element 2,2, as it's not transposed.  Just decrease the pointer and move the|* Next element	;			halt;				;		;	ptr5!0x700+0xD0	call tdmove;		halt;				;		ptr5;	ptr1-	;			halt;				;		;	ptr5!0x700+0xDB	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD7	call tdmove;		halt;				;		ptr5;	;			halt;				;		;	ptr5!0x700+0xD3	call tdmove;		halt;				;		ptr5;	pipe idl1;		halt;				;		imm2;|*|*  move matrix at ptr1 to ptr 5.|*  ptr5 is incremented at beginning of loop, ptr1 at end of looptdmovelp:	;			halt;				regtotmp;	rcsmsw ptr1;	ptr5+	;			halt;				regtotmp;	rcslsw ptr1;	;			halt;				;		ptr5;		lpreg-	;			halt;				tmptoreg;	rcsmsw ptr5;	ptr1+	jloop tdmovelp;		halt;				tmptoreg;	rcslsw ptr5;	rtn;			halt;				;		ptr1;|*  move element from ptr5 to ptr1|*  ptr1 is decremented at beginning of loop, since 'tdmovelp' incremented it at end of looptdmove:	;			halt;				regtotmp;	rcsmsw ptr5;	ptr1-	;			halt;				regtotmp;	rcslsw ptr5;	;			halt;				;		ptr1;		ptr5+	;			halt;				tmptoreg;	rcsmsw ptr1;	rtn;			halt;				tmptoreg;	rcslsw ptr1;|*|*		Command Register instruction|*		reg1 <- square root (reg2)|*		Single Precision|*routine cs.sqrt 001000010000 	sqrt enra halt;			regtoti;	rcssp imm2;	;			;				;		ptr1;	;			halt;				regtotmp;	rcssp ptr1;	;			;				;		;	;			;				;		;	;			;				;		;	;			halt;				;		ptr1;	jtierr ser1 cstat;	tioe tisp halt;			titoreg;	rcssp ptr1;	pipe idl1;		halt;				;		imm2;|*|*		Command Register instruction|*		reg1 <- square root (reg2)|*		Double Precision|*routine cd.sqrt 001000010001 	dnop enra loaddp halt;		regtoti;	rcsmsw imm2;	;			dsqrt enra loaddp halt;		regtoti;	rcslsw imm2;	;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dmul;				;		;	;			dmul;				;		;	;			dmul;				;		ptr1;	jtierr der1 cstat;	dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;	call idle1;		dnop tioe timsw halt;		titoreg;	rcsmsw ptr1;|*|*		Command Register instruction|*		reg1 <- hyptoenuse (reg2, reg3)|*		Single Precision|*routine cs.hypot 001000010010 	scvtd enra halt;		regtoti;	rcsmsw imm2;	;			scvtd enra halt;		regtoti;	rcsmsw imm2;	;			dnop tioe timsw;		;		;	;			dnop enra enrb tioe timsw loaddp halt;;		;	;			dmul enra enrb tioe tilsw loaddp halt;;		;	;			dmul;				;		;	;			dnop tioe timsw;		;		;	;			dnop tioe timsw halt;		titotmp;	rcsmsw;	jtierr hang cstat;	dnop tioe tilsw halt;		titotmp;	rcslsw;	;			scvtd enra halt;		regtoti;	rcssp ptr3;	;			scvtd enra halt;		regtoti;	rcssp ptr3;	;			dnop tioe timsw;		;		;	;			dnop enra enrb tioe timsw loaddp halt;;		;	;			dmul enra enrb tioe tilsw loaddp halt;;		;	;			dmul;				;		;	;			dnop enrb loaddp halt;		tmptoti;	rcsmsw;	jtierr hang cstat;	dadd aluamul enrb loaddp halt;	tmptoti;	rcslsw;	;			dnop tioe timsw;		;		;	jtierr hang cstat;	dnop enra tioe timsw loaddp halt;;		;	;			dsqrt enra tioe tilsw loaddp halt;;		;	;			dnop;				;		;	;			dnop halt;			;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dmul;				;		;	;			dmul;				;		;	;			dmul tioe timsw;		;		;	jtierr hang cstat;	dnop tioe timsw halt;		titotmp;	rcsmsw;	;			dnop tioe tilsw halt;		titotmp;	rcslsw;	;			dnop halt;			;		;	;			dnop enra loaddp halt;		tmptoti;	rcsmsw;	;			dcvts enra loaddp halt;		tmptoti;	rcslsw;	;			dcvts;				;		;	jtierr hang cstat;	dnop tioe timsw halt;		;		ptr1;	call idle1;		dnop tioe timsw halt;		titoreg;	rcssp ptr1;|*|*		Command Register instruction|*		reg1 <- hypotenuse (reg2, reg3)|*		Double Precision|*routine cd.hypot 001000010011 	dnop enra enrb loaddp halt;	regtoti;	rcsmsw imm2;        ;                       dmul enra enrb loaddp halt;	regtoti;	rcslsw imm2;	;			dmul;				;		;	;			dmul;				;		;	lpreg!0x01	jtierr dhardway;	dnop tioe timsw halt;		titotmp;	rcsmsw;	;			dnop tioe tilsw halt;		titotmp;	rcslsw;	;			dnop enra enrb loaddp halt;	regtoti;	rcsmsw ptr3;	;			dmul enra enrb loaddp halt;	regtoti;	rcslsw ptr3;	;			dmul;				;		;	;			dnop enrb loaddp halt;		tmptoti;	rcsmsw;	jtierr dhardway;	dadd aluamul enrb loaddp halt;	tmptoti;	rcslsw;	;			dnop;				;		;	jtierr dhard2;		dnop enra tioe timsw loaddp halt;;		;	;			dsqrt enra tioe tilsw loaddp halt;;		;	;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		ptr5;	ptr5!0x700+0xD2	;			dnop;				tmptoreg;	rcslsw ptr5;	;			dnop;				;		;	lpreg!0x0	;			dmul;				;		;	;			dmul;				;		;	;			dmul;				;		ptr1;	jtierr dhardway cstat;	dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;	call idle1;		dnop tioe timsw halt;		titoreg;	rcsmsw ptr1;dhard2:	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dnop halt;			;		;dhardway:|*  compare abs(reg2) to abs(operand)	;			dnop;				;		;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;	;			dnop enrb loaddp halt;		regtoti;	rcslsw ptr3;	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr2;	;			dcmpm enra loaddp halt;		regtoti;	rcslsw ptr2;	;			dcmpm;				;		;	jtierr cklpreg cstat;	dcmpm halt;			;		;	;			dnop halt;			;		;	jge dhyptyox;		dnop enra loaddp halt;		regtoti;	rcsmsw ptr3;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr3;	;			ddiv enrb loaddp halt;		regtoti;	rcsmsw ptr2;	;			ddiv enrb loaddp halt;		regtoti;	rcslsw ptr2;	;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		ptr5;	ptr5!0x700+0xD2	;			dnop;				tmptoreg;	rcslsw ptr5;	;			dnop;				;		;	;			dmul;				;		;	;			dmul halt;			;		;	;			dnop tioe timsw halt;		titotmp;	rcsmsw;	;			dnop tioe tilsw halt;		titotmp;	rcslsw;	;			dnop halt;			;		;	;			dnop enra enrb loaddp halt;	tmptoti;	rcsmsw;	;			dmul enra enrb loaddp halt;	tmptoti;	rcslsw;	;			dmul;				;		;	;			dnop;				;		ptr5;	ptr5!0x700+0xD0	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr2;	;			dabs enra loaddp halt;		regtoti;	rcslsw ptr2;	;			dnop;				;		ptr5;	ptr5!0x700+0xD1	;			dnop tioe timsw halt;		titoreg;	rcsmsw ptr5;	call dfinhypot;		dnop tioe tilsw halt;		titoreg;	rcslsw ptr5;dhyptyox:	;			dnop enra loaddp halt;		regtoti;	rcsmsw ptr2;	;			dnop enra loaddp halt;		regtoti;	rcslsw ptr2;	;			dnop;				;		;	;			ddiv enrb loaddp halt;		regtoti;	rcsmsw ptr3;	;			ddiv enrb loaddp halt;		regtoti;	rcslsw ptr3;	;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		ptr5;	ptr5!0x700+0xD2	;			dnop;				tmptoreg;	rcslsw ptr5;	;			dnop;				;		;	;			dmul;				;		;	;			dmul halt;			;		;	;			dnop tioe timsw halt;		titotmp;	rcsmsw;	;			dnop tioe tilsw halt;		titotmp;	rcslsw;

⌨️ 快捷键说明

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