697 lines
5.2 KiB
ArmAsm
697 lines
5.2 KiB
ArmAsm
|
/ c code tables-- compile to register
|
||
|
|
||
|
fp = 1 / enable floating-point
|
||
|
|
||
|
.globl _regtab
|
||
|
|
||
|
_regtab=.; .+2
|
||
|
20.; cr20
|
||
|
21.; cr20
|
||
|
22.; cr20
|
||
|
30.; cr30
|
||
|
31.; cr30
|
||
|
32.; cr32
|
||
|
33.; cr32
|
||
|
34.; cr34
|
||
|
35.; cr35
|
||
|
29.; cr29
|
||
|
36.; cr36
|
||
|
37.; cr37
|
||
|
38.; cr38
|
||
|
101.; cr100
|
||
|
80.; cr80
|
||
|
40.; cr40
|
||
|
41.; cr40 / - like +
|
||
|
42.; cr42
|
||
|
43.; cr43
|
||
|
44.; cr43
|
||
|
45.; cr45
|
||
|
46.; cr45
|
||
|
47.; cr47
|
||
|
48.; cr48
|
||
|
60.; cr60
|
||
|
61.; cr60
|
||
|
62.; cr60
|
||
|
63.; cr60
|
||
|
64.; cr60
|
||
|
65.; cr60
|
||
|
66.; cr60
|
||
|
67.; cr60
|
||
|
68.; cr60
|
||
|
69.; cr60
|
||
|
70.; cr70
|
||
|
71.; cr70
|
||
|
72.; cr72
|
||
|
73.; cr73
|
||
|
74.; cr73
|
||
|
75.; cr75
|
||
|
76.; cr75
|
||
|
77.; cr77
|
||
|
78.; cr78
|
||
|
102.; cr102
|
||
|
97.; cr97
|
||
|
0
|
||
|
|
||
|
/ goto
|
||
|
cr102:
|
||
|
%i,n
|
||
|
jmp *A1
|
||
|
|
||
|
%n*,n
|
||
|
F*
|
||
|
jmp *#1(R)
|
||
|
|
||
|
%n,n
|
||
|
F
|
||
|
jmp (R)
|
||
|
|
||
|
/ call
|
||
|
cr100:
|
||
|
%n*,n
|
||
|
F*
|
||
|
jsr pc,*#1(R)
|
||
|
|
||
|
%a,n
|
||
|
jsr pc,*A1
|
||
|
|
||
|
%n,n
|
||
|
F
|
||
|
jsr pc,(R)
|
||
|
|
||
|
/ name, constant
|
||
|
cr20:
|
||
|
%z,n
|
||
|
clr R
|
||
|
|
||
|
%aw,n
|
||
|
mov A,R
|
||
|
|
||
|
%ab,n
|
||
|
movb A,R
|
||
|
|
||
|
.if fp
|
||
|
%af,n
|
||
|
M
|
||
|
movf A,R
|
||
|
|
||
|
.endif
|
||
|
|
||
|
/++,-- prefix
|
||
|
cr30:
|
||
|
%ai,n
|
||
|
%abp,n
|
||
|
%ab,n
|
||
|
IB1 A1
|
||
|
movB1 A1,R
|
||
|
|
||
|
%a,n
|
||
|
I' $2,A1
|
||
|
mov A1,R
|
||
|
|
||
|
%nbp*,n
|
||
|
%ni*,n
|
||
|
%nb*,n
|
||
|
F*
|
||
|
IB1 #1(R)
|
||
|
movB1 #1(R),R
|
||
|
|
||
|
%n*,n
|
||
|
F*
|
||
|
I' $2,#1(R)
|
||
|
mov #1(R),R
|
||
|
|
||
|
/ ++,-- postfix
|
||
|
cr32:
|
||
|
%ai,n
|
||
|
%abp,n
|
||
|
%ab,n
|
||
|
movB1 A1,R
|
||
|
IB1 A1
|
||
|
|
||
|
%a,n
|
||
|
mov A1,R
|
||
|
I' $2,A1
|
||
|
|
||
|
%nbp*,n
|
||
|
%nb*,n
|
||
|
%ni*,n
|
||
|
F*
|
||
|
movB1 #1(R),-(sp)
|
||
|
IB1 #1(R)
|
||
|
movB1 (sp)+,R
|
||
|
|
||
|
%n*,n
|
||
|
F*
|
||
|
mov #1(R),-(sp)
|
||
|
I' $2,#1(R)
|
||
|
mov (sp)+,R
|
||
|
|
||
|
/ !
|
||
|
cr34:
|
||
|
%n,n
|
||
|
FC
|
||
|
beq 1f
|
||
|
clr R
|
||
|
br 2f
|
||
|
1: mov $1,R
|
||
|
2:
|
||
|
|
||
|
/ &unary
|
||
|
cr35:
|
||
|
%a,n
|
||
|
mov $A1,R
|
||
|
|
||
|
/ & unary of auto
|
||
|
cr29:
|
||
|
%e,n
|
||
|
mov r5,R
|
||
|
add Z,R
|
||
|
|
||
|
/ *unary
|
||
|
cr36:
|
||
|
%abp*,n
|
||
|
F
|
||
|
movb (R),R
|
||
|
|
||
|
%a*,n
|
||
|
F
|
||
|
mov (R),R
|
||
|
|
||
|
%abp,n
|
||
|
movb *A1,R
|
||
|
|
||
|
%a,n
|
||
|
mov *A1,R
|
||
|
|
||
|
%nbp*,n
|
||
|
F*
|
||
|
movb *#1(R),R
|
||
|
|
||
|
%n*,n
|
||
|
F*
|
||
|
mov *#1(R),R
|
||
|
|
||
|
%nbp,n
|
||
|
H*
|
||
|
movb ~(R),R
|
||
|
|
||
|
%n,n
|
||
|
H*
|
||
|
mov ~(R),R
|
||
|
|
||
|
/ - unary
|
||
|
cr37:
|
||
|
%n,n
|
||
|
F
|
||
|
neg R
|
||
|
|
||
|
/ ~
|
||
|
cr38:
|
||
|
%n,n
|
||
|
F
|
||
|
com R
|
||
|
|
||
|
/ =
|
||
|
cr80:
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 R,A1
|
||
|
|
||
|
%n*,a
|
||
|
F*
|
||
|
movB1 A2,#1(R)
|
||
|
movB1 #1(R),R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
movB1 R1,#1(R)
|
||
|
mov R1,R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
movB1 R,*(sp)+
|
||
|
|
||
|
/ |
|
||
|
cr48:
|
||
|
%n,a
|
||
|
F
|
||
|
bisB2 A2,R
|
||
|
|
||
|
%n,e*
|
||
|
F
|
||
|
S1*
|
||
|
bisB2 #2(R1),R
|
||
|
|
||
|
%n,e
|
||
|
F
|
||
|
S1
|
||
|
bis R1,R
|
||
|
|
||
|
%n,n
|
||
|
FS
|
||
|
S
|
||
|
bis (sp)+,R
|
||
|
|
||
|
/ &
|
||
|
cr47:
|
||
|
%n,c
|
||
|
F
|
||
|
bic $!C2,R
|
||
|
|
||
|
%n,e
|
||
|
F
|
||
|
S1
|
||
|
com R1
|
||
|
bic R1,R
|
||
|
|
||
|
%n,n
|
||
|
FS
|
||
|
S
|
||
|
com (sp)
|
||
|
bic (sp)+,R
|
||
|
|
||
|
/ relationals
|
||
|
cr60:
|
||
|
%n,n
|
||
|
HC
|
||
|
I 2f
|
||
|
clr R
|
||
|
br 1f
|
||
|
2: mov $1,R
|
||
|
1:
|
||
|
|
||
|
/ >>, <<
|
||
|
cr45:
|
||
|
%a,aw
|
||
|
movB1 A1,I'
|
||
|
I A2,lsh
|
||
|
movB1 I',R
|
||
|
|
||
|
%n*,aw
|
||
|
F*
|
||
|
movB1 #1(R),I'
|
||
|
I A2,lsh
|
||
|
movB1 I',R
|
||
|
|
||
|
%n,aw
|
||
|
F
|
||
|
mov R,I'
|
||
|
I A2,lsh
|
||
|
mov I',R
|
||
|
|
||
|
%a,nw*
|
||
|
S*
|
||
|
movB1 A1,(r4)
|
||
|
I #2(R),lsh
|
||
|
mov (r4),R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 A1,I'
|
||
|
I R,lsh
|
||
|
mov I',R
|
||
|
|
||
|
%n,n
|
||
|
FS
|
||
|
S
|
||
|
mov (sp)+,I'
|
||
|
I R,lsh
|
||
|
mov I',R
|
||
|
|
||
|
/ +, -
|
||
|
cr40:
|
||
|
%n,aw
|
||
|
F
|
||
|
I A2,R
|
||
|
|
||
|
%n,ew*
|
||
|
F
|
||
|
S1*
|
||
|
I #2(R1),R
|
||
|
|
||
|
%n,e
|
||
|
F
|
||
|
S1
|
||
|
I R1,R
|
||
|
|
||
|
%n,nw*
|
||
|
SS*
|
||
|
F
|
||
|
I *(sp)+,R
|
||
|
|
||
|
%n,n
|
||
|
SS
|
||
|
F
|
||
|
I (sp)+,R
|
||
|
|
||
|
/ *
|
||
|
cr42:
|
||
|
%aw,a
|
||
|
mov A1,(r4)+
|
||
|
movB2 A2,(r4)
|
||
|
mov -(r4),R
|
||
|
|
||
|
%n,a
|
||
|
F
|
||
|
mov R,(r4)+
|
||
|
movB2 A2,(r4)
|
||
|
mov -(r4),R
|
||
|
|
||
|
%n,e
|
||
|
F
|
||
|
S1
|
||
|
mov R,(r4)+
|
||
|
mov R1,(r4)
|
||
|
mov -(r4),R
|
||
|
|
||
|
%n,n
|
||
|
FS
|
||
|
S
|
||
|
mov (sp)+,(r4)+
|
||
|
mov R,(r4)
|
||
|
mov -(r4),R
|
||
|
|
||
|
/ /; mod
|
||
|
cr43:
|
||
|
%a,a
|
||
|
movB1 A1,(r4)
|
||
|
movB2 A2,div
|
||
|
mov I,R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 A1,(r4)
|
||
|
mov R,div
|
||
|
mov I,R
|
||
|
|
||
|
%n,a
|
||
|
F
|
||
|
mov R,(r4)
|
||
|
movB2 A2,div
|
||
|
mov I,R
|
||
|
|
||
|
%n,e
|
||
|
F
|
||
|
S1
|
||
|
mov R,(r4)
|
||
|
mov R1,div
|
||
|
mov I,R
|
||
|
|
||
|
%e,n
|
||
|
S
|
||
|
F1
|
||
|
mov R1,(r4)
|
||
|
mov R,div
|
||
|
mov I,R
|
||
|
|
||
|
%n,n
|
||
|
FS
|
||
|
S
|
||
|
mov (sp)+,(r4)
|
||
|
mov R,div
|
||
|
mov I,R
|
||
|
|
||
|
/ =*
|
||
|
cr72:
|
||
|
%a,a
|
||
|
movB1 A1,(r4)
|
||
|
movB2 A2,mul
|
||
|
movB1 (r4),A1
|
||
|
mov (r4),R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
mov R,(r4)+
|
||
|
movB1 A1,(r4)
|
||
|
mov -(r4),R
|
||
|
movB1 R,A1
|
||
|
|
||
|
%n*,a
|
||
|
F*
|
||
|
movB1 #1(R),(r4)
|
||
|
movB2 A2,mul
|
||
|
movB1 (r4),#1(R)
|
||
|
mov (r4),R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
movB1 #1(R),(r4)
|
||
|
mov R1,mul
|
||
|
movB1 (r4),#1(R)
|
||
|
mov (r4),R
|
||
|
|
||
|
%e*,n
|
||
|
S
|
||
|
F1*
|
||
|
movB1 #1(R1),(r4)
|
||
|
mov R,mul
|
||
|
movB1 (r4),#1(R1)
|
||
|
mov (r4),R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
movB1 *(sp),(r4)
|
||
|
mov R,mul
|
||
|
movB1 (r4),*(sp)+
|
||
|
mov (r4),R
|
||
|
|
||
|
/ =mod, =/
|
||
|
cr73:
|
||
|
%a,a
|
||
|
movB1 A1,(r4)
|
||
|
movB2 A2,div
|
||
|
movB1 I,A1
|
||
|
mov I,R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 A1,(r4)
|
||
|
mov R,div
|
||
|
mov I,R
|
||
|
movB1 R,A1
|
||
|
|
||
|
%n*,a
|
||
|
F*
|
||
|
movB1 #1(R),(r4)
|
||
|
movB2 A2,div
|
||
|
movB1 I,#1(R)
|
||
|
mov I,R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
movB1 #1(R),(r4)
|
||
|
mov R1,div
|
||
|
movB1 I,#1(R)
|
||
|
mov I,R
|
||
|
|
||
|
%e*,n
|
||
|
S
|
||
|
F1*
|
||
|
movB1 #1(R1),(r4)
|
||
|
mov R,div
|
||
|
movB1 I,#1(R1)
|
||
|
mov I,R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
movB1 *(sp),(r4)
|
||
|
mov R,div
|
||
|
movB1 I,*(sp)+
|
||
|
mov I,R
|
||
|
|
||
|
/ =|
|
||
|
cr78:
|
||
|
%a,a
|
||
|
bisBE A2,A1
|
||
|
movB1 A1,R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
bisB1 R,A1
|
||
|
movB1 A1,R
|
||
|
|
||
|
%n*,a
|
||
|
F*
|
||
|
bisBE A2,#1(R)
|
||
|
movB1 #1(R),R
|
||
|
|
||
|
%e*,n*
|
||
|
S*
|
||
|
F1*
|
||
|
bisBE #1(R1),#2(R)
|
||
|
movB1 #2(R),R
|
||
|
|
||
|
%e*,n
|
||
|
S
|
||
|
F1*
|
||
|
bisBE R,#1(R1)
|
||
|
movB1 #1(R1),R
|
||
|
|
||
|
%n*,e*
|
||
|
F*
|
||
|
S1*
|
||
|
bisBE #2(R1),#1(R)
|
||
|
movB1 #1(R),R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
bisBE R1,#1(R)
|
||
|
movB2 #1(R),R
|
||
|
|
||
|
%n*,n*
|
||
|
FS*
|
||
|
S*
|
||
|
bisBE #2(R),*(sp)
|
||
|
movB2 *(sp)+,R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
bisBE R,*(sp)
|
||
|
mov *(sp)+,R
|
||
|
|
||
|
/ =&
|
||
|
cr77:
|
||
|
%a,c
|
||
|
bicB1 $!C2,A1
|
||
|
movB2 A1,R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
com R
|
||
|
bicB1 R,A1
|
||
|
movB1 A1,R
|
||
|
|
||
|
%e*,n
|
||
|
S
|
||
|
F1*
|
||
|
com R
|
||
|
bicB1 R,#1(R1)
|
||
|
movB1 #1(R1),R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
com R1
|
||
|
bicB1 R1,#1(R)
|
||
|
movB1 #1(R),R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
com R
|
||
|
bicB1 R,*(sp)
|
||
|
movB1 *(sp)+,R
|
||
|
|
||
|
/ =>>, =<<
|
||
|
cr75:
|
||
|
%a,aw
|
||
|
movB1 A1,I'
|
||
|
I A2,lsh
|
||
|
movB1 I',A1
|
||
|
movB1 I',R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 A1,I'
|
||
|
I R,lsh
|
||
|
movB1 I',A1
|
||
|
movB1 I',R
|
||
|
|
||
|
%n*,e
|
||
|
F*
|
||
|
S1
|
||
|
movB1 #1(R),I'
|
||
|
I R1,lsh
|
||
|
movB1 I',#1(R)
|
||
|
movB1 I',R
|
||
|
|
||
|
%e*,n
|
||
|
S
|
||
|
F1*
|
||
|
movB1 #1(R1),I'
|
||
|
I R,lsh
|
||
|
movB I',#1(R1)
|
||
|
movB1 I',R
|
||
|
|
||
|
%n*,n
|
||
|
FS*
|
||
|
S
|
||
|
movB1 *(sp),I'
|
||
|
I R,lsh
|
||
|
movB1 I',*(sp)+
|
||
|
movB1 I',R
|
||
|
|
||
|
/ =+
|
||
|
cr70:
|
||
|
%aw,aw
|
||
|
I A2,A1
|
||
|
mov A1,R
|
||
|
|
||
|
%aw,nw*
|
||
|
S*
|
||
|
I #2(R),A1
|
||
|
mov A1,R
|
||
|
|
||
|
%aw,n
|
||
|
S
|
||
|
I R,A1
|
||
|
mov A1,R
|
||
|
|
||
|
%ew*,nw*
|
||
|
S*
|
||
|
F1*
|
||
|
I #2(R),#1(R1)
|
||
|
mov #1(R1),R
|
||
|
|
||
|
%a,nw*
|
||
|
S*
|
||
|
movB1 A1,R1
|
||
|
I #2(R),R1
|
||
|
movB1 R1,#2(R)
|
||
|
mov R1,R
|
||
|
|
||
|
%a,n
|
||
|
S
|
||
|
movB1 A1,R1
|
||
|
I R1,R
|
||
|
movB1 R,A1
|
||
|
|
||
|
%ew*,n
|
||
|
S
|
||
|
F1*
|
||
|
I R,#1(R1)
|
||
|
mov #1(R1),R
|
||
|
|
||
|
%nw*,n
|
||
|
SS
|
||
|
F*
|
||
|
I (sp)+,#1(R)
|
||
|
mov #1(R),R
|
||
|
|
||
|
%n*,n
|
||
|
SS
|
||
|
F*
|
||
|
movB1 #1(R),R1
|
||
|
I (sp)+,R1
|
||
|
movB1 R1,#1(R)
|
||
|
mov R1,R
|
||
|
|
||
|
/ int -> int[]
|
||
|
cr97:
|
||
|
%n,n
|
||
|
F
|
||
|
asl R
|
||
|
|
||
|
.data
|
||
|
.even
|
||
|
.text
|
||
|
|