📄 tran.u
字号:
| *start t(3) + y ; lasf sadd csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa usp; ; ; ; ; ; ; ; ; ; lbsf smul cslm woea; ; ; ; ; ; ; ; ; ptr5!c_sexpt2 ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ; csuxm usp; ; ; ; ; ; ; ; ; ; lbsf sadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa usp; ; ; ; ; ; ; ; ; ; lbsf smul cslm woea; ; ; ; ; ; ; ; ; ptr5!c_sexpt1 ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ; csuxm usp; ; ; ; ; ; ; ; ; ; lbsf sadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa usp; ; ; ; ptr5!c_dSCRATCH_13 ; ; ; ; ptr5;| *save denominator for later use ; woea; dtor; ; ramwe rcssp ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_sexps2 ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ptr5!c_dSCRATCH_14 ; ; ; ; rcssp ptr5; ; lbsf ssub csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa usp; ; ; ; ; ; ; ; ; ; lbsf smul cslm woea; ; ; ; ; ; ; ; ; ptr5!c_sexps1 ; ; ; ; rcssp ptr5; ; las csla; reg; ; ; ; csuxm usp; ; ; ; ; ; ; ; ; ; lbsf sadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_13 ; las csla csuxa usp; ; ; rcssp ptr5; ; lbsf sdiv csla; reg; ; ; lpreg!13sexps.e1: jloop sexps.e1; ; ; ; ; ; ; ; ; ; lpreg- ; csuxa usp; ; ; ; ; ; ; ; ; ; lbsf smul cslm woea; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lbsf smul cslm csuxm usp;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxm usp; ; ; ; ; ; ; ; ; ; lasf scvtd csla woem; ; ; ; ptr5!c_dSCRATCH_15 ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ; lbl csla; reg; ; ; ; lam csla csuxa umsw; ; ; ; ; lalf dadd csla csuxa ulsw;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ptr5!c_dSCRATCH_1 ; csuxa ulsw; ; ; ptr5; ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; rtn; ; dtor; ; ramwe ptr5;|*|* Double Precision e**x-1 Instruction|*routine xd.ex1 w01000001001 lnop ssub call dtran.start;; ; ; ;|* calculate e**x - 1 of ptr1 ; ; ; ; rcsmsw ptr1; ; lam csla; reg; ; rcslsw ptr1; ptr5!c_d708 ; lal csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dcmpm csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ptr5!c_dtwopm54|* if the operand was a NaN, branch jwerr doberr; woea; ; ; ;|* if abs(operand) > 708 then branch jgt doberr; woea; ; ; ; ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dcmpm csla; reg; ; ; call wait1; csuxa umsw; ; ; ; jle dreturnx; woea; ; ; ;|* 2**-54 < abs(x) < 708 call dexpapprox;; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_0 ; ; ; ; rcssp ptr5; call wait3; lasf scmp0 csla; reg; ; ; ; csuxa usp; ; ; ; ; csuxa usp; ; ; ; ptr5!c_dSCRATCH_8 jeq xde1.zero; woea; ; ; ; jgt xde1.npos; woea; ; ; ;xde1.nneg:| *y = y + yc ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_7 ; lal csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dadd csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ptr5; ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dSCRATCH_0 ; ; ; ; rcssp ptr5; ptr5!smone ; las csla; reg; ; rcssp ptr5; call wait3; lbsf scmp csla; reg; ; ; ; csuxa usp; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_7 jne xde1.nnm1; woea; ; ; ;|* n == -1 ; ; ; ; rcsmsw ptr5; ; lam cslma; reg; ; rcslsw ptr5; ptr5!shalf ; lal cslma; reg; ; rcssp ptr5; call wait5; lbsf dmul cslm; reg; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lal csla woem; ; ; ; ptr5!shalf ; ; ; ; rcssp ptr5; ; lbs csla; reg; ; ; call drtn.inx.soon;lf dsub csla; ; ; ;|* n != -1xde1.nnm1: call dtwoton; ; ; ; ; call wait2; ; ; ; ; call wait1; csuxa ulsw; ; ; ; ; lam cslm woea; ; ; ; ptr5!dzero ; ; ; ; rcslsw ptr5; ptr5!sone ; lal cslm; reg; ; rcssp ptr5; ptr5!c_dSCRATCH_7 ; las csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dadd csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; call wait5; lblf dmul cslm woea; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lal csla woem; ; ; ; ptr5!sone ; ; ; ; rcssp ptr5; ; lbs csla; reg; ; ; call drtn.inx.soon;lf dsub csla; ; ; ;xde1.npos:|* n > 0 ; ; ; ; ; ptr5!sone ; ; ; ; rcssp ptr5; ptr5!c_dSCRATCH_7 call wait3; lbsf scmp csla; reg; ; ; call wait1; csuxa usp; ; ; ; jne xde1.nn1; woea; ; ; ; ; ; ; ; rcsmsw ptr5; ptr5!shalf ; lam csla; reg; ; rcssp ptr5; ptr5!c_dSCRATCH_7 ; lbs csla; reg; ; rcslsw ptr5; call wait3; lalf dadd csla; reg; ; ; ; lam csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_8 ; lal csla csuxa ulsw; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; ptr5!stwo| *start (.5+y) + yc call wait2; lblf dadd csla; reg; ; ; ; ; ; ; rcssp ptr5; ; las cslm csuxa umsw; reg; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ; ; lblf dmul cslm woea; ; ; ;dwrite1m: call wait4; ; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ptr1; ; woem; dtor; ; ramwe rcsmsw ptr1; ; woem; dtor; ; ramwe rcslsw ptr1; call dreturninexact;; dtor; ; ramwe ptr1;xde1.nn1:| *y = y + yc ; ; ; ; ; ptr5!c_dSCRATCH_8 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_7 ; lal csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call wait3; lblf dadd csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ptr5; ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dSCRATCH_0 call dtwoton; ; ; ; ; call wait2; ; ; ; ; ; csuxa ulsw; ; ; ; ptr5!c_dSCRATCH_9 ; ; ; ; ptr5; ; woea; dtor; ; ramwe rcsmsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dSCRATCH_0 ; ; ; ; rcssp ptr5; ptr5!c_s53 ; las csla; reg; ; rcssp ptr5; call wait3; lbsf scmp csla; reg; ; ; ; csuxa usp; ; ; ; ; ; ; ; ; ptr5!c_dSCRATCH_9 jgt xde1.ng53; woea; ; ; ; ; ; ; ; rcsmsw ptr5; ptr5!dzero|* n <= 53| *Note that we load both ALU, MUL ; lam cslma; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_7 ; lal cslma; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ptr5!sone| *start p * y ; lblf dmul cslm; reg; ; rcssp ptr5; ; lbs csla; reg; ; ;| *start p - 1 call wait3; lf dsub csla; ; ; ; ; lam csla csuxma umsw; ; ; ; ; lal csla csuxma ulsw; ; ; ; ; lbm csla woem; ; ; ; call drtn.inx.soon;lblf dadd csla woem; ; ; ;|* n == 0xde1.zero:| *y = y + yc ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_7 ; lal csla; reg; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5; call drtn.inx.soon;lblf dadd csla; reg; ; ;|* n > 53xde1.ng53: ; lam cslm; reg; ; rcslsw ptr5; ptr5!c_dSCRATCH_7 ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ptr5!sone call wait4; lblf dmul cslm; reg; ; ; ; ; ; ; rcssp ptr5; ; lbs csla csuxm umsw; reg; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; call wait3; lalf dsub csla woem; ; ; ; ; lam csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_9 ; lal csla csuxa ulsw; ; ; rcsmsw ptr5; ptr5!dzero ; lbm csla; reg; ; rcslsw ptr5; call drtn.inx.soon;lblf dadd csla; reg; ; ;|*|* double precision expapprox|* enter with:|* x pointed to by ptr1|* exit with:|* n in c_dSCRATCH_0|* y in c_dSCRATCH_7|* yc in c_dSCRATCH_8|*dexpapprox:|* first calculate n ; ; ; ; rcsmsw ptr1; ; lam cslm; reg; ; rcslsw ptr1; ptr5!dlog2e ; lal cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;| *round to nearest int ; lmode3.0 0x0 csla; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lalf dcvtint csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lalf sfloat csla csuxa ulsw;; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa usp; ; ; ; ptr5!c_dSCRATCH_0| *reset the default rounding mode (to 0 for fix operations) ; lmode3.0 0x2 csla; ; ; ptr5; ; las cslm woea; dtor; ; ramwe rcssp ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dloge2a|* next calculate y1 ; ; ; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; rcsmsw ptr1; ; lam csla; reg; ; rcslsw ptr1; ; lal csla csuxm umsw; reg; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ; ; lblf dsub csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lam csla csuxa umsw; ; ; ; ptr5!c_dSCRATCH_7 ; lal csla csuxa ulsw; ; ; ptr5; ; woea; dtor; ; ramwe rcsmsw ptr5; ; woea; dtor; ; ramwe rcslsw ptr5; ; ; dtor; ; ramwe ptr5; ptr5!c_dSCRATCH_0|* next calculate y ; ; ; ; rcssp ptr5; ptr5!c_dloge2b ; las cslm; reg; ; rcsmsw ptr5; ; lbm cslm; reg; ; rcslsw ptr5; ; lblf dmul cslm; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxm umsw; ; ; ; ptr5!c_dSCRATCH_8 ; csuxm ulsw; ; ; ptr5; ; lbm csla woem; dtor; ; ramwe rcsmsw ptr5; ; lblf dsub csla woem; dtor; ; ramwe rcslsw ptr5; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; lbm csla csuxa umsw; dtor; ; ramwe ptr5; ; lbl csla csuxa ulsw; ; ; ; ; lam cslm woea; ; ; ; ; lal cslm woea; ; ; ; ptr5!c_dexpt5 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lalf dadd csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (t5+y) ; lblf dmul cslm woea; ; ; ; ptr5!c_dexps4 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5;| *start s4 - y ; lalf dsub csla; reg; ; ; ; ; ; ; ; ; ; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lal csla woem; ; ; ; ptr5!c_dexpt4 ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5;| *start t4 + y*(t5+y) ; lblf dadd csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (s4-y) ; lblf dmul cslm woea; ; ; ; ptr5!c_dexps3 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (t4+y*(t5+y)) ; lblf dmul cslm woea; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start s3 + y*(s4-y) ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lam csla woem; ; ; ; ; lal csla woem; ; ; ; ptr5!c_dexpt3 ; ; ; ; rcsmsw ptr5; ; lbm csla; reg; ; rcslsw ptr5;| *start t3 + y*(...) ; lblf dadd csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (s3+(y*...)) ; lblf dmul cslm woea; ; ; ; ptr5!c_dexps2 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (t3+...) ; lblf dmul cslm woea; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start s2 + y*(...) ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dexpt2 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla csuxm umsw; reg; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start t2 + y*(...) ; lblf dadd csla woem; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (s2+...) ; lblf dmul cslm woea; ; ; ; ptr5!c_dexps1 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla; reg; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (t2+...) ; lblf dmul cslm woea; ; ; ; ; csuxm umsw; ; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start s1 + y*(...) ; lblf dadd csla woem; ; ; ; ; ; ; ; ; ; ; ; ; ; ptr5!c_dexpt1 ; ; ; ; rcsmsw ptr5; ; lam csla; reg; ; rcslsw ptr5; ; lal csla csuxm umsw; reg; ; ; ; csuxm ulsw; ; ; ; ; lbm csla woem; ; ; ;| *start t1 + y*(...) ; lblf dadd csla woem; ; ; ; ; csuxa umsw; ; ; ; ; csuxa ulsw; ; ; ; ; lbm cslm woea; ; ; ;| *start y * (s1+...) ; lblf dmul cslm woea; ; ; ; ; ; ; ; ; ; lbm csla csuxa umsw; ; ; ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -