entry regtab impur align adc regtab equ * dc 14,divide dc 16,fsela dc 30,asplus dc 31,asplus dc 32,incaft dc 33,incaft dc 35,amper dc 37,negg dc 38,compl dc 40,plus dc 41,plus dc 42,times dc 43,divide dc 44,divide dc 45,rshift dc 46,rshift dc 47,plus dc 48,plus dc 49,plus dc 51,itof dc 52,ftoi dc 70,asplus dc 71,asplus dc 72,astimes dc 73,asdiv dc 74,asdiv dc 75,asrsh dc 76,asrsh dc 77,asplus dc 78,asplus dc 79,asplus dc 80,assign dc 98,call dc 99,call dc 102,jump dc 106,load dc 0 pure * incaft,decaft incaft: %r,c F IB2 A1,A2 %a,c F ldar rf,R IB2 rf,A2 stB1 rf,A1 %e*,c F1* lB1 R,#1(R1) ldar rf,R IB2 rf,A2 stB1 rf,#1(R1) %n*,c F2* lB1 rf,#1(R) P- sta rf,P IB2 rf,A2 stB1 rf,#1(R) lda R,P+ * minus unary negg: %aw,n %af,n sBFr R*,R* IB1 R*,A1 %ew*,n F1* sBFr R*,R* IB1 R*,#1(R1) %nf*,n F2* sBFr R*,R* sB1 R*,#1(R) %e,n F1 sBFr R*,R* IBFr R*,R1* %n,n FS sBFr R,R Ia R,P+ %nf,n FS sBFr R*,R* IBF R*,P+ * complement compl: %aw,n lcs R,1 IB1 R,A1 %ew*,n F1* lcs R,1 IB1 R,#1(R1) %n,n F Iai R,-1 * plus,minus, and, or, exor plus: %[ADD1] %n,aw %nf,af F IB2 R*,A2 %[ADD2] %n,ew* %nf,ef* F S1* IB2 R*,#2(R1) %[ADD4] %n,e %nf,ef F S1 IBFr R*,R1* %[ADD5] %n,n %nf,nf SS F IBF R*,P+ * times times: %n,c F lB2 rf,A2 Iar R-,rf %n,aw F IB2 R-,A2 %n,ew* F S1* Ia R-,#2(R1) %n,e F S1 Iar R-,R1 %n,n SS F Ia R-,P+ %nf,af % [ADD1] %nf,nf* % [ADD2] %nf,ef % [ADD4] %nf,nf % [ADD5] * divide,mod divide: %n,c F lB2 rf,A2 T Iar R-,rf %n,aw F T IB2 R-,A2 %n,ew* F S1* T Ia R-,#2(R1) %n,e F S1 T Iar R-,R1 %n,n SS F T Ia R-,P+ %nf,af % [ADD1] %nf,nf* % [ADD2] %nf,ef % [ADD4] %nf,nf % [ADD5] * rshift,lshift rshift: %n,c F I R,A2 %n,r F I R,0(A2) %n,e F S1 I R,0(R1) %n,n SS F lda rf,P+ I R,0(rf) * asplus,asminus, assand, asor, asxor, incbef, decbef asplus: %r,aw F IB2 R,A2 ldar A1,R %r,ew* F S1* IB2 R,#2(R1) ldar A1,R %r,e F S1 Iar R,R1 ldar A1,R %r,n SS F Ia R,P+ ldar A1,R %[ADDA1] %a,aw %af,af F IB2 R*,A2 stB1 R*,A1 %[ADDA2] %a,ew* %af,ef* F S1* IB2 R*,#2(R1) stB1 R*,A1 %[ADDA3] %a,e %af,ef F S1 IBFr R*,R1* stB1 R*,A1 %[ADDA4] %a,n %af,nf SS F IBF R*,P+ stB1 R*,A1 %[ADDE1] %e*,aw %ef*,af F1* lB1 R*,#1(R1) IB2 R*,A2 stB1 R*,#1(R1) %[ADDE3] %e*,e %ef*,ef F* S1 ldar rf,R lB1 R*,#1(rf) IBFr R*,R1* stB1 R*,#1(rf) %[ADDE4] %e*,n %ef*,nf SS F1* lB1 R*,#1(R1) IBF R*,P+ stB1 R*,#1(R1) %n*,n SS F* ldar rf,R lB1 R,#1(rf) Ia R,P+ stB1 R,#1(rf) * astimes astimes: %r,c F lB2 rf,A2 Iar R-,rf ldar A1,R %r,aw F IB2 R-,A2 ldar A1,R %r,e F S1 Iar R-,R1 ldar A1,R %r,n SS F Ia R-,P+ ldar A1,R %a,c F lB2 rf,A2 Iar R-,rf stB1 R,A1 %a,aw F IB2 R-,A2 stB1 R,A1 %a,e F S1 Iar R-,R1 stB1 R,A1 %a,n SS F Ia R-,P+ stB1 R,A1 %e*,c F1* lB1 R,#1(R1) IB2 R-,A2 stB1 R,#1(R1) %e*,n SS F1* lB1 R,#1(R1) Ia R-,P+ stB1 R,#1(R1) %n*,c SS F* ldar rf,R lB1 R,#1(rf) Ia R-,P+ stB1 R,#1(rf) %n*,aw F* ldar R1,R lB1 R,#1(R1) IB2 R-,A2 stB1 R,#1(R1) %n*,n SS F* ldar rf,R lB1 R,#1(rf) Ia R-,P+ stB1 R,#1(rf) %af,af % [ADDA1] %af,ef* % [ADDA2] %af,ef % [ADDA3] %af,nf % [ADDA4] %ef*,af % [ADDE1] %ef*,ef % [ADDE3] %ef*,nf % [ADDE4] * asdiv,asmod asdiv: %r,c F T lB2 rf,A2 Iar R-,rf ldar A1,R: %r,aw F T IB2 R-,A2 ldar A1,R: %r,n SS F T Ia R-,P+ ldar A1,R: %a,c F T lB2 rf,A2 Iar R-,rf stB1 R:,A1 %a,aw F T IB2 R-,A2 stB1 R:,A1 %a,n SS F T Ia R-,P+ stB1 R:,A1 %n*,c SS F* ldar rf,R lB1 R,#1(rf) T Ia R-,P+ stB1 R:,#1(rf) %n*,aw F* ldar rf,R lB1 R,#1(rf) T IB2 R-,A2 stB1 R:,#1(rf) %n*,n SS F* ldar rf,R lB1 R,#1(rf) T Ia R-,P+ stB1 R:,#1(rf) %af,af % [ADDA1] %af,ef* % [ADDA2] %af,ef % [ADDA3] %af,nf % [ADDA4] %ef*,af % [ADDE1] %ef*,ef % [ADDE3] %ef*,nf % [ADDE4] * aslsh,asrsh asrsh: %r,c F I R,A2 ldar A1,R %r,r F I R,0(A2) ldar A1,R %r,e F S1 I R,0(R1) ldar A1,R %r,n SS F lda rf,P+ I R,0(rf) ldar A1,R %a,c F I R,A2 stB1 R,A1 %a,r F I R,0(A2) stB1 R,A1 %a,e F S1 I R,0(R1) stB1 R,A1 %a,n SS F lda rf,P+ I R,0(rf) stB1 R,A1 %n*,c F* ldar rf,R lB1 R,#1(rf) I R,A2 stB1 R,#1(rf) %n*,r F* ldar rf,R lB1 R,#1(rf) I R,0(A2) stB1 R,#1(rf) %n*,e F* S1 ldar rf,R lB1 R,#1(rf) I R,0(R1) stB1 R,#1(rf) %n*,n SS F* ldar rf,R lB1 R,#1(rf) lda R1,P+ I R,0(R1) stB1 R,#1(rf) * assign assign: %r,n S ldar A1,R %a,n %af,nf S stB1 R*,A1 %e*,n %ef*,nf S F1* stB1 R*,#1(R1) %n*,n %nf*,nf SS F* ldar rf,R lBF R*,P+ stB1 R*,#1(rf) * integer -> float itof: %n,n F flr R*,R * float -> integer ftoi: %nf,n F fxr R,R* * call1,call2 call: %a,n I rf,A1 %n*,n F2* I rf,#1(R) %n,n F Ir rf,R * jump jump: %a,n I A1 %n,n F2* I #1(R) * load load: %a,n %af,n IB1 R*,A1 %n*,n %nf*,n F2* IB1 R*,#1(R) * load address amper: %a,n %af,n I R,A1 * field assignment - rhs already shifted & masked fsela: %a,aw F nai R,Z oB2 R,A2 stB1 R,A1 %a,ew* F S1* nai R,Z oB2 R,#2(R1) stB1 R,A1 %a,n S lB1 rf,A1 nai rf,Z oar R,rf stB1 R,A1 %e*,aw F1* lB1 R,#1(R1) nai R,Z oB2 R,A2 stB1 R,#1(R1) %e*,n S F1* lB1 rf,#1(R1) nai rf,Z oar R,rf stB1 R,#1(R1) entry cctab impur align adc cctab equ * dc 30,cmisc dc 31,cmisc dc 37,cmisc dc 38,cmisc dc 40,cmisc dc 41,cmisc dc 45,cmisc dc 46,cmisc dc 47,tand dc 48,cmisc dc 51,cmisc dc 52,cmisc dc 49,cmisc dc 60,equal dc 61,equal dc 62,equal dc 63,equal dc 64,equal dc 65,equal dc 66,equal dc 67,equal dc 68,equal dc 69,equal dc 70,cmisc dc 71,cmisc dc 77,cmisc dc 78,cmisc dc 79,cmisc dc 80,cassign dc 106,cload dc 260,equal dc 261,equal dc 262,equal dc 263,equal dc 264,equal dc 265,equal dc 266,equal dc 267,equal dc 268,equal dc 269,equal dc 0 pure * relationals equal: %c,c F IB2 R,A2 %r,z ldar A1,A1 %r,aw IB2 A1,A2 %r,a I'B2 A1,A2 %r,nw* S2* IB2 A1,#2(R) %r,n* S2* I'B2 A1,#2(R) %r,n S Iar A1,R %aw,z F %nw*,z F2* lda R,#1(R) %n,z F ldar R,R %n,aw %nf,af % [ADD1] %n,ew* % [ADD2] %nf,nf* % [ADD2] %n,ew %nf,ef % [ADD4] %n,a F I'B2 R,A2 %n,e* F S1* I'B2 R,#2(R1) %n,n %nf,nf % [ADD5] * assignment cassign: %[ASS1] %r,aw lB2 A1,A2 %[ASS2] %r,nw* S2* lB2 A1,#2(R) %r,n H * test value cload: %aw,n %af,n %nw*,n %nf*,n H * 'and' for condition code only tand: %r,c I'B2 A1,A2 %aw,c S IB1 R,A1 %n,n H * ops for which regtab sets the condition code correctly cmisc: %n,n %nf,nf H entry efftab impur align adc efftab equ * dc 30,easplus dc 31,edec dc 32,easplus dc 33,edec dc 70,easplus dc 71,edec dc 75,easrsh dc 76,easrsh dc 77,edec dc 78,edec dc 79,edec dc 80,eassign dc 0 pure * asplus, incaft, incbef easplus: %[EAS1] %r,aw IB2 A1,A2 %[EAS2] %r,nw* S2* IB2 A1,#2(R) %[EAS3] %r,n S Iar A1,R %[EAS4] %aw,c S IB1m R,A1 %aw,r IB1m A2,A1 %aw,n % [EAS4] %a,aw % [ADDA1] %nw*,c F2* lB2 rf,A2 IB1m rf,#1(R) %nw*,r F2* IB1m A2,#1(R) %ew*,n S F1* IB1m R,#1(R1) %nw*,e F2* S1 IB1m R1,#1(R) %[EAS5] %n*,aw F2* lB1 rf,#1(R) IB2 rf,A2 stB1 rf,#1(R) * decbef, decaft, asminus, asor, etc. edec: %r,aw % [EAS1] %r,nw* % [EAS2] %r,n % [EAS3] %a,aw % [ADDA1] %n*,c % [EAS5] * aslsh, asrsh easrsh: %r,c I A1,A2 %r,r I A1,0(A2) %r,n S2 I A1,0(R) * assign eassign: %r,a % [ASS1] %r,n* % [ASS2] %r,n S ldar A1,R %a,c S stB1 R,A1 %n*,c F2* lB2 rf,A2 stB1 rf,#1(R) %a,r stB1 A2,A1 %n*,r F2* stB1 A2,#1(R) entry sptab impur align adc sptab equ * dc 106,sload dc 0 pure * put register variable on stack sload: %c,n F stBF R,P %r,n stBF A1,P