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

📄 xdp.u

📁 操作系统SunOS 4.1.3版本的源码
💻 U
📖 第 1 页 / 共 3 页
字号:
|*	@(#)xdp.u 1.1 92/07/30 Copyright Sun Microsystems, Inc.  1988|*|*		Double Precision Instruction|*		reg1 <-- reg2 + operand|*routine xd.add 0100110xxxx1 	dnop enra loaddp halt;		regtoti;	rcsmsw imm2;	;			dnop enra loaddp halt;		regtoti;	rcslsw imm2;	;			dnop;				;		;	;			dnop enrb loaddp halt;		adtoti;		;	jclr idle1 idl2;	;				;		;|* By repeating the instruction, I can check the status and hang if error,|* and if not, the result will still be there because the instruction is|* repeated.	;			dadd enrb loaddp halt;		optoti;		;	;			dadd;				;		;dpaxfin:	jtierr hang cstat;	dnop halt;			;		ptr1;	;			dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*		Double Precision Instruction|*		reg1 <-- reg2 - operand|*routine xd.sub 0100111xxxx1 	dnop enra loaddp halt;		regtoti;	rcsmsw imm2;	;			dnop enra loaddp halt;		regtoti;	rcslsw imm2;	;			dnop;				;		;	;			dnop enrb loaddp halt;		adtoti;		;	jclr idle1 idl2;	;				;		;	;			dsub enrb loaddp halt;		optoti;		;	call dpaxfin;		dsub;				;		;|*|*		Double Precision Instruction|*		reg1 <-- operand - reg2|*routine xd.b.sub 0101010xxxx1 	dnop enra loaddp halt;		regtoti;	rcsmsw imm2;	;			dnop enra loaddp halt;		regtoti;	rcslsw imm2;	;			dnop;				;		;	;			dnop enrb loaddp halt;		adtoti;		;	jclr idle1 idl2;	;				;		;	;			drsub enrb loaddp halt;		optoti;		;	call dpaxfin;		drsub;				;		;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg2 * operand|*routine xd.mul 0101000xxxx1 	dnop enra loaddp halt;          regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       dmul enrb loaddp halt;          optoti;         ptr1;	;			dmul;				regtotmp;	rcslsw ptr1;        ;                       dnop halt;			;               ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;        rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Divide Instruction|*		reg1 <-- reg2 / operand|*routine xd.div 0101001xxxx1     dnop enra loaddp halt;          regtoti;       rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;       rcslsw imm2;	;			dnop;				;		;        ;                       ddiv enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       ddiv enrb loaddp halt;          optoti;         ;        ;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dmul;				;		;        ;                       dmul halt;			;               ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;        rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Reverse Divide Instruction|*		reg1 <-- operand / reg2|*routine xd.b.div 0101011xxxx1 	dnop enra loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       dnop enra loaddp halt;          optoti;         ptr2;        ;                       ddiv enrb loaddp halt;          regtoti;       	rcsmsw ptr2;        ;                       ddiv enrb loaddp halt;          regtoti;       	rcslsw ptr2;	;			dnop;				;		ptr1;	;			dnop halt;			regtotmp;	rcslsw ptr1;	;			dnop;				;		;	;			dnop;				;		;	;			dnop;				;		;	;			dmul;				;		;        ;                       dmul halt;			;               ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;        rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg3 + (reg2 * operand)|*routine xd.r3Ar2Mop 0110000xxxx1 dnop enra loaddp halt;		regtoti;       	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;		;        jclr idle1 idl2;        ;                               ;               ;        ;                       dmul enrb loaddp halt;          optoti;         ptr1;	;                       dmul;				regtotmp;	rcslsw ptr1;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;	jtierr hang cstat;	dadd aluamul enrb loaddp halt;	regtoti;	rcslsw ptr3;	;			dnop;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg3 - (reg2 * operand)|*routine xd.r3Sr2Mop 0110001xxxx1 dnop enra loaddp halt;		regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       dmul enrb loaddp halt;          optoti;         ptr1;	;                       dmul;				regtotmp;	rcslsw ptr1;	;			dnop enrb loaddp halt;	 	regtoti;	rcsmsw ptr3;	jtierr hang cstat;	drsub aluamul enrb loaddp halt;	regtoti;	rcslsw ptr3;	;			dnop;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Multiply Instruction|*		reg1 <-- ( - reg3) + (reg2 * operand)|*routine xd.Nr3Ar2Mop 0110010xxxx1 dnop enra loaddp halt;	regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       dmul enrb loaddp halt;          optoti;         ptr1;	;                       dmul;				regtotmp;	rcslsw ptr1;	;			dnop enrb loaddp halt;	 	regtoti;	rcsmsw ptr3;	jtierr hang cstat;	dsub aluamul enrb loaddp halt;	regtoti;	rcslsw ptr3;	;			dnop;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg3 * (reg2 + operand)|*routine xd.r3Mr2Aop 0110011xxxx1 dnop enra loaddp halt;		regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;                       dadd enrb loaddp halt;          optoti;         ;	;                       dadd;				;		ptr3;xdmulfin:	jtierr hang cstat;	dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;	;			dmul mulaalu enrb loaddp halt;	regtoti;	rcslsw ptr3;	;			dmul;				regtotmp;	rcslsw ptr1;        ;			dnop halt;			;        	ptr1; 	jtierr der1 cstat;	dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;	call idle1;		dnop tioe timsw halt;		titoreg;	rcsmsw ptr1;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg3 * (reg2 - operand)|*routine xd.r3Mr2Sop 0110100xxxx1 dnop enra loaddp halt;		regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;			dsub enrb loaddp halt;          optoti;         ;	call xdmulfin;		dsub;				;		;|*|*              Double Precision Multiply Instruction|*		reg1 <-- reg3 * ( - reg2 + operand)|*routine xd.r3MNr2Aop 0110101xxxx1 dnop enra loaddp halt;	regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;	;			dnop;				;		;        ;                       dnop enrb loaddp halt;          adtoti;         ;        jclr idle1 idl2;        ;                               ;               ;        ;			drsub enrb loaddp halt;		optoti;         ;	call xdmulfin;		drsub;				;		;|*|*              Double Precision Add/Multiply Instruction|*		reg1 <-- operand + (reg3 * reg2)|*routine xd.opAr3Mr2 0110110xxxx1 dnop enra loaddp halt;		regtoti;       	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;       	rcslsw imm2;        jclr idle1 idl2;        ;                               ;               ;	;			dnop;				;		ptr3;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;        ;                       dmul enrb loaddp halt;          regtoti;	rcslsw ptr3;	;			dmul halt;			regtotmp;	rcslsw ptr1;	;			dmul halt;			;		;	;			dnop enrb loaddp halt; 		adtoti;		;	jtierr hang cstat;	dadd aluamul enrb loaddp halt;	optoti;		;	;			dnop ;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Sub/Multiply Instruction|*		reg1 <-- operand - (reg3 * reg2)|*routine xd.opSr3Mr2 0110111xxxx1 dnop enra loaddp halt;		regtoti;       	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;       	rcslsw imm2;        jclr idle1 idl2;        ;                               ;               ;	;			dnop;				;		ptr3;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;        ;                       dmul enrb loaddp halt;          regtoti;	rcslsw ptr3;	;			dmul halt;			regtotmp;	rcslsw ptr1;	;                       dmul halt;			;               ;	;			dnop enrb loaddp halt; 		adtoti;		;	jtierr hang cstat;	drsub aluamul enrb loaddp halt;	optoti;		;	;			dnop;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Sub/Multiply Instruction|*		reg1 <-- ( - operand) + (reg3 * reg2)|*routine xd.NopAr3Mr2 0111000xxxx1 dnop enra loaddp halt;	regtoti;       	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;       	rcslsw imm2;        jclr idle1 idl2;        ;                               ;               ;	;			dnop;				;		ptr3;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;        ;                       dmul enrb loaddp halt;          regtoti;	rcslsw ptr3;	;                       dmul halt;			regtotmp;       rcslsw ptr1; 	;			dmul halt;			;		;	;			dnop enrb loaddp halt; 		adtoti;		;	jtierr hang cstat;	dsub aluamul enrb loaddp halt;	optoti;		;	;			dnop;				;		ptr1;        jtierr der1 cstat;      dnop tioe tilsw halt;		titoreg;	rcslsw ptr1;        call idle1;             dnop tioe timsw halt;		titoreg;        rcsmsw ptr1;|*|*              Double Precision Multiply/Add Instruction|*		reg1 <-- operand * (reg3 + reg2)|*routine xd.opMr3Ar2 0111001xxxx1 dnop enra loaddp halt;		regtoti;	rcsmsw imm2;        ;                       dnop enra loaddp halt;          regtoti;	rcslsw imm2;        jclr idle1 idl2;        ;                               ;               ;	;			dnop;				;		ptr3;	;			dnop enrb loaddp halt;		regtoti;	rcsmsw ptr3;        ;                       dadd enrb loaddp halt;          regtoti;	rcslsw ptr3;	;                       dadd halt;			regtotmp;	rcslsw ptr1;	;			dadd halt;			;		;xdaddfin:	jtierr hang cstat;	dnop enrb loaddp halt;		adtoti;		;	;			dmul mulaalu enrb loaddp halt;	optoti;		;        ;                       dmul;				;		;

⌨️ 快捷键说明

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