P8000/WEGA/contrib/lcc/lib/libc/port/stdio/doscan.s

784 lines
10 KiB
ArmAsm

.line 1 "doscan.c"
.seg
fp := r13
FP := rr12
sp := r15
SP := rr14
.psec data
.data
.psec
.code
__doscan::
{
dec sp,#12
ldm @SP,r8,#6
sub sp,#~L2-%c
ld fp,sp
ld @SP,#~L2-4
ldl rr10,FP(#~L2+%4)
ldl rr8,FP(#~L2+%8)
clr _stkseg+~L1+%102(fp)
L36:
ldl rr2,rr8
inc r9,#%1
ldb rl2,@rr2
xorb rh2,rh2
ld FP(#~L1+%100),r2
cp r2,#0
jpr ne,L37
ld r2,FP(#~L1+%102)
jpr L32
L37:
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%100(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%3
jpr eq,L38
L40:
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L42
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L43
L42:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L43:
ld FP(#~L1+%106),r2
ld r3,r2
ld r2,#^s __ctype
add r3,#^o __ctype+%1
ldb rl2,@rr2
extsb r2
bit r2,#%3
jpr eq,L41
jpr L40
L41:
pushl @SP,rr10
push @SP,_stkseg+~L1+%106(fp)
callr _ungetc
inc sp,#%6
cp r2,#%ffff
jpr eq,L44
jpr L34
L44:
jpr L35
L38:
cp _stkseg+~L1+%100(fp),#%25
jpr ne,L46
ldl rr2,rr8
inc r9,#%1
ldb rl2,@rr2
xorb rh2,rh2
ld FP(#~L1+%100),r2
cp r2,#%25
jpr ne,L45
L46:
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L48
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L49
L48:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L49:
ld FP(#~L1+%106),r2
cp r2,_stkseg+~L1+%100(fp)
jpr ne,L47
jpr L34
L47:
pushl @SP,rr10
push @SP,_stkseg+~L1+%106(fp)
callr _ungetc
inc sp,#%6
cp r2,#%ffff
jpr eq,L50
ld r2,FP(#~L1+%102)
jpr L32
L50:
jpr L35
L45:
cp _stkseg+~L1+%100(fp),#%2a
jpr ne,L51
clr _stkseg+~L1+%108(fp)
ldl rr2,rr8
inc r9,#%1
ldb rl2,@rr2
xorb rh2,rh2
ld FP(#~L1+%100),r2
jpr L52
L51:
ld _stkseg+~L1+%108(fp),#%1
L52:
clr _stkseg+~L1+%104(fp)
L55:
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%100(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%2
jpr eq,L54
ld r2,FP(#~L1+%104)
add r2,r2
ld r3,r2
sla r2,#%2
add r2,r3
add r2,_stkseg+~L1+%100(fp)
sub r2,#%30
ld FP(#~L1+%104),r2
L53:
ldl rr2,rr8
inc r9,#%1
ldb rl2,@rr2
xorb rh2,rh2
ld FP(#~L1+%100),r2
jpr L55
L54:
cp _stkseg+~L1+%104(fp),#0
jpr ne,L56
ld _stkseg+~L1+%104(fp),#%7fff
L56:
ld r2,FP(#~L1+%100)
ld FP(#~L1+%10a),r2
cp r2,#%6c
jpr eq,L58
cp _stkseg+~L1+%10a(fp),#%68
jpr ne,L57
L58:
ldl rr2,rr8
inc r9,#%1
ldb rl2,@rr2
xorb rh2,rh2
ld FP(#~L1+%100),r2
L57:
cp _stkseg+~L1+%100(fp),#0
jpr eq,L60
cp _stkseg+~L1+%100(fp),#%5b
jpr ne,L59
ldl rr2,FP
add r3,#~L1+%0
pushl @SP,rr2
pushl @SP,rr8
callr _setup
inc sp,#%8
ldl rr8,rr2
cpl rr8,#0
jpr ne,L59
L60:
ld r2,#%ffff
jpr L32
L59:
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%100(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%0
jpr eq,L61
ld _stkseg+~L1+%10a(fp),#%6c
ld r2,FP(#~L1+%100)
add r2,#%20
ld FP(#~L1+%100),r2
L61:
cp _stkseg+~L1+%100(fp),#%63
jpr eq,L62
cp _stkseg+~L1+%100(fp),#%5b
jpr eq,L62
L63:
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L65
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L66
L65:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L66:
ld FP(#~L1+%106),r2
ld r3,r2
ld r2,#^s __ctype
add r3,#^o __ctype+%1
ldb rl2,@rr2
extsb r2
bit r2,#%3
jpr eq,L64
jpr L63
L64:
pushl @SP,rr10
push @SP,_stkseg+~L1+%106(fp)
callr _ungetc
inc sp,#%6
cp r2,#%ffff
jpr ne,L67
jpr L35
L67:
L62:
cp _stkseg+~L1+%100(fp),#%63
jpr eq,L73
cp _stkseg+~L1+%100(fp),#%73
jpr eq,L73
cp _stkseg+~L1+%100(fp),#%5b
jpr ne,L71
L73:
ldl rr2,FP
add r3,#~L2+%c
pushl @SP,rr2
pushl @SP,rr10
ldl rr2,FP
add r3,#~L1+%0
pushl @SP,rr2
push @SP,_stkseg+~L1+%104(fp)
push @SP,_stkseg+~L1+%100(fp)
push @SP,_stkseg+~L1+%108(fp)
callr _string
add sp,#%12
jpr L72
L71:
ldl rr2,FP
add r3,#~L2+%c
pushl @SP,rr2
pushl @SP,rr10
push @SP,_stkseg+~L1+%10a(fp)
push @SP,_stkseg+~L1+%104(fp)
push @SP,_stkseg+~L1+%100(fp)
push @SP,_stkseg+~L1+%108(fp)
callr _number
inc sp,#%10
L72:
ld FP(#~L1+%10a),r2
cp r2,#0
jpr eq,L70
ld r2,FP(#~L1+%102)
add r2,_stkseg+~L1+%108(fp)
ld FP(#~L1+%102),r2
L70:
ldl rr2,FP(#~L2+%c)
cpl rr2,#0
jpr ne,L74
jpr L35
L74:
cp _stkseg+~L1+%10a(fp),#0
jpr ne,L75
ld r2,FP(#~L1+%102)
jpr L32
L75:
L34:
jpr L36
L35:
cp _stkseg+~L1+%102(fp),#0
jpr eq,L76
ld r2,FP(#~L1+%102)
jpr L77
L76:
ld r2,#%ffff
L77:
jpr L32
L32:
add sp,#~L2-%c
ldm r8,@SP,#6
inc sp,#12
ret
~L1 := 2
~L2 := 282
}
.psec data
.data
.psec
.code
_number:
{
dec sp,#12
ldm @SP,r8,#6
sub sp,#~L2-%c
ld fp,sp
ld @SP,#~L2-4
ldl rr10,FP(#~L2+%c)
ldl rr8,FP
add r9,#~L1+%0
clr _stkseg+~L1+%44(fp)
clr _stkseg+~L1+%46(fp)
clr _stkseg+~L1+%48(fp)
clr _stkseg+~L1+%4a(fp)
clr _stkseg+~L1+%4c(fp)
subl rr2,rr2
ldl FP(#~L1+%4e),rr2
ld r2,FP(#~L2+%6)
jpr L80
L81:
L82:
L83:
inc _stkseg+~L1+%4a(fp),#%1
L84:
L85:
ld _stkseg+~L1+%42(fp),#%a
jpr L79
L86:
ld _stkseg+~L1+%42(fp),#%8
jpr L79
L87:
ld _stkseg+~L1+%42(fp),#%10
jpr L79
L88:
xor r2,r2
jpr L78
L80:
sub r2,#%64
cp r2,#%14
jpr ugt,L88
rl r2,#2
ldl rr4,L89(r2)
jp @rr4
.psec data
.data
.even
L89:
.addr L84
.addr L81
.addr L82
.addr L83
.addr L88
.addr L88
.addr L88
.addr L88
.addr L88
.addr L88
.addr L88
.addr L86
.addr L88
.addr L88
.addr L88
.addr L88
.addr L88
.addr L85
.addr L88
.addr L88
.addr L87
.psec
.code
L79:
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L91
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L92
L91:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L92:
ld FP(#~L1+%40),r2
jpr L93
L94:
inc _stkseg+~L1+%4c(fp),#%1
L95:
dec _stkseg+~L2+%8(fp),#%1
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L96
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L97
L96:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L97:
ld FP(#~L1+%40),r2
jpr L90
L93:
sub r2,#%2b
cp r2,#%2
jpr ugt,L98
rl r2,#2
ldl rr4,L99(r2)
jp @rr4
.psec data
.data
.even
L99:
.addr L95
.addr L98
.addr L94
.psec
.code
L98:
L90:
L102:
dec _stkseg+~L2+%8(fp),#%1
cp _stkseg+~L2+%8(fp),#0
jpr lt,L101
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%40(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%2
jpr ne,L104
cp _stkseg+~L1+%42(fp),#%10
jpr ne,L103
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%40(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%7
jpr eq,L103
L104:
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%40(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%2
jpr eq,L105
ld r2,#%30
jpr L106
L105:
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%40(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%0
jpr eq,L107
ld r2,#%37
jpr L108
L107:
ld r2,#%57
L108:
L106:
ld r3,FP(#~L1+%40)
sub r3,r2
ld FP(#~L1+%52),r3
ld r2,FP(#~L1+%52)
cp r2,_stkseg+~L1+%42(fp)
jpr lt,L109
jpr L101
L109:
cp _stkseg+~L2+%4(fp),#0
jpr eq,L110
cp _stkseg+~L1+%4a(fp),#0
jpr ne,L110
ld r3,FP(#~L1+%42)
exts rr2
ldl rr6,FP(#~L1+%4e)
multl rq4,rr2
ld r3,FP(#~L1+%52)
exts rr2
addl rr6,rr2
ldl FP(#~L1+%4e),rr6
L110:
inc _stkseg+~L1+%44(fp),#%1
jpr L100
L103:
cp _stkseg+~L1+%4a(fp),#0
jpr ne,L111
jpr L101
L111:
cp _stkseg+~L1+%40(fp),#%2e
jpr ne,L112
ld r2,FP(#~L1+%46)
inc _stkseg+~L1+%46(fp),#%1
cp r2,#0
jpr ne,L112
jpr L100
L112:
cp _stkseg+~L1+%40(fp),#%65
jpr eq,L114
cp _stkseg+~L1+%40(fp),#%45
jpr ne,L113
L114:
cp _stkseg+~L1+%44(fp),#0
jpr eq,L113
ld r2,FP(#~L1+%48)
inc _stkseg+~L1+%48(fp),#%1
cp r2,#0
jpr ne,L113
ldl rr2,rr8
inc r9,#%1
ldb rl4,FP(#~L1+%41)
extsb r4
ldb @rr2,rl4
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L115
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L116
L115:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L116:
ld FP(#~L1+%40),r2
ldl rr2,#__ctype+%1
add r3,_stkseg+~L1+%40(fp)
ldb rl2,@rr2
extsb r2
bit r2,#%2
jpr ne,L118
cp _stkseg+~L1+%40(fp),#%2b
jpr eq,L118
cp _stkseg+~L1+%40(fp),#%2d
jpr ne,L117
L118:
jpr L100
L117:
L113:
jpr L101
L100:
ldl rr2,rr8
inc r9,#%1
ldb rl4,FP(#~L1+%41)
extsb r4
ldb @rr2,rl4
ldl rr2,rr10
add r3,#%4
dec @rr2,#%1
cp @rr2,#0
jpr lt,L119
ldl rr2,@rr10
inc r3,#%1
ldl @rr10,rr2
dec r3,#%1
ldb rl2,@rr2
xorb rh2,rh2
jpr L120
L119:
pushl @SP,rr10
callr __filbuf
inc sp,#%4
L120:
ld FP(#~L1+%40),r2
jpr L102
L101:
cp _stkseg+~L2+%4(fp),#0
jpr eq,L121
cp _stkseg+~L1+%44(fp),#0
jpr eq,L121
cp _stkseg+~L1+%4a(fp),#0
jpr eq,L122
clrb @rr8
ldl rr2,FP
add r3,#~L1+%0
pushl @SP,rr2
callr _atof
inc sp,#%4
ldl FP(#~L1+%56),rr2
ldl FP(#~L1+%52),rr0
cp _stkseg+~L1+%4c(fp),#0
jpr eq,L123
ldl rr0,FP(#~L1+%52)
ldl rr2,FP(#~L1+%56)
callr negd
ldl _stkseg+~L1+%56(fp),rr2
ldl _stkseg+~L1+%52(fp),rr0
L123:
cp _stkseg+~L2+%a(fp),#%6c
jpr ne,L124
ldl rr2,FP(#~L2+%10)
ldl rr4,FP(#~L2+%10)
ldl rr4,@rr4
inc r5,#%4
ldl @rr2,rr4
dec r5,#%4
ldl rr2,@rr4
ldl rr4,_stkseg+~L1+%52(fp)
ldl rr6,_stkseg+~L1+%56(fp)
ldm @rr2,r4,#4
jpr L125
L124:
ldl rr0,FP(#~L1+%52)
ldl rr2,FP(#~L1+%56)
callr dtof
ldl rr2,rr2
callr ftod
callr dtof
ldl rr4,FP(#~L2+%10)
ldl rr6,FP(#~L2+%10)
ldl rr6,@rr6
inc r7,#%4
ldl @rr4,rr6
dec r7,#%4
ldl rr4,@rr6
ldl @rr4,rr2
L125:
jpr L126
L122:
cp _stkseg+~L1+%4c(fp),#0
jpr eq,L127
ldl rr2,FP(#~L1+%4e)
cpl rr2,#%80000000
jpr eq,L127
ldl rr2,FP(#~L1+%4e)
com r2
com r3
addl rr2,#1
ldl FP(#~L1+%4e),rr2
L127:
cp _stkseg+~L2+%a(fp),#%6c
jpr ne,L128
ldl rr2,FP(#~L2+%10)
ldl rr4,FP(#~L2+%10)
ldl rr4,@rr4
inc r5,#%4
ldl @rr2,rr4
dec r5,#%4
ldl rr2,@rr4
ldl rr4,FP(#~L1+%4e)
ldl @rr2,rr4
jpr L129
L128:
cp _stkseg+~L2+%a(fp),#%68
jpr ne,L130
ldl rr2,FP(#~L2+%10)
ldl rr4,FP(#~L2+%10)
ldl rr4,@rr4
inc r5,#%4
ldl @rr2,rr4
dec r5,#%4
ldl rr2,@rr4
ld r4,FP(#~L1+%50)
ld @rr2,r4
jpr L131
L130:
ldl rr2,FP(#~L2+%10)
ldl rr4,FP(#~L2+%10)
ldl rr4,@rr4
inc r5,#%4
ldl @rr2,rr4
dec r5,#%4
ldl rr2,@rr4
ld r4,FP(#~L1+%50)
ld @rr2,r4
L131:
L129:
L126:
L121:
pushl @SP,rr10
push @SP,_stkseg+~L1+%40(fp)
callr _ungetc
inc sp,#%6
cp r2,#%ffff
jpr ne,L132
ldl rr2,FP(#~L2+%10)
subl rr4,rr4
ldl @rr2,rr4
L132:
ld r2,FP(#~L1+%44)
jpr L78
L78:
add sp,#~L2-%c
ldm r8,@SP,#6
inc sp,#12
ret
~L1 := 2
~L2 := 104
}
.psec data
.data
.psec
.code
_string:
{
dec sp,#12
ldm @SP,r8,#6
sub sp,#~L2-%c
ld fp,sp
ld @SP,#~L2-4
ld r11,FP(#~L2+%4)
ld r10,FP(#~L2+%6)
ld r9,FP(#~L2+%8)
L134:
L135:
L137:
jpr L136
L138:
jpr L135
L136:
L139:
jpr L133
L140:
L141:
jpr L133
L133:
add sp,#~L2-%c
ldm r8,@SP,#6
inc sp,#12
ret
~L1 := 2
~L2 := 22
}
.psec data
.data
.psec
.code
_setup:
{
dec sp,#12
ldm @SP,r8,#6
sub sp,#~L2-%c
ld fp,sp
ld @SP,#~L2-4
L143:
L144:
L145:
jpr L142
L147:
jpr L149
L148:
L149:
jpr L145
L146:
jpr L142
L142:
add sp,#~L2-%c
ldm r8,@SP,#6
inc sp,#12
ret
~L1 := 2
~L2 := 22
}
.psec data
.data