📄 xdp.u
字号:
|* @(#)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 + -