add LCC - a better C-Compiler for WEGA
This commit is contained in:
parent
b448be8c80
commit
2bf1018f97
|
|
@ -0,0 +1,322 @@
|
||||||
|
.line 1 ""
|
||||||
|
.seg
|
||||||
|
fp := r13
|
||||||
|
FP := rr12
|
||||||
|
sp := r15
|
||||||
|
SP := rr14
|
||||||
|
.psec data
|
||||||
|
.data
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
cps::
|
||||||
|
{
|
||||||
|
dec sp,#12
|
||||||
|
ldm @SP,r8,#6
|
||||||
|
ld fp,sp
|
||||||
|
inc fp,#8
|
||||||
|
sub sp,#~L2-12
|
||||||
|
ldl FP(#%fff4),rr0
|
||||||
|
ldl FP(#%fff0),rr2
|
||||||
|
ldl rr2,#%80000000
|
||||||
|
ldl FP(#%ffec),rr2
|
||||||
|
ldl rr2,#%7ff00000
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L24
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
L24:
|
||||||
|
ldl rr2,#%7ff00000
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L25
|
||||||
|
ldl rr2,FP(#%ffe0)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
L25:
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
cpl rr2,_stkseg+%ffe0(fp)
|
||||||
|
jpr eq,L26
|
||||||
|
ldl rr2,FP(#%ffe0)
|
||||||
|
subl rr2,_stkseg+%ffe4(fp)
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L23
|
||||||
|
L26:
|
||||||
|
ldl rr2,#%fffff
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L27
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
L27:
|
||||||
|
ldl rr2,#%fffff
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L28
|
||||||
|
ldl rr2,FP(#%ffe0)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
L28:
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
subl rr2,_stkseg+%ffe0(fp)
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L23
|
||||||
|
L23:
|
||||||
|
ld sp,fp
|
||||||
|
dec sp,#8
|
||||||
|
ldm r8,@SP,#6
|
||||||
|
inc sp,#12
|
||||||
|
ldctlb flags,rl0
|
||||||
|
ret
|
||||||
|
~L1 := 32
|
||||||
|
~L2 := 36
|
||||||
|
}
|
||||||
|
|
||||||
|
.psec data
|
||||||
|
.data
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
cpdd::
|
||||||
|
{
|
||||||
|
dec sp,#12
|
||||||
|
ldm @SP,r8,#6
|
||||||
|
ld fp,sp
|
||||||
|
inc fp,#8
|
||||||
|
sub sp,#~L2-12
|
||||||
|
ldl FP(#%fff4),rr0
|
||||||
|
ldl FP(#%fff0),rr4
|
||||||
|
ldl FP(#%ffec),rr2
|
||||||
|
ldl FP(#%ffe8),rr6
|
||||||
|
ldl rr2,#%80000000
|
||||||
|
ldl FP(#%ffdc),rr2
|
||||||
|
subl rr2,rr2
|
||||||
|
ldl FP(#%ffd8),rr2
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
cpl rr2,_stkseg+%ffe8(fp)
|
||||||
|
jpr ne,L31
|
||||||
|
ldl rr2,FP(#%fff4)
|
||||||
|
cpl rr2,_stkseg+%fff0(fp)
|
||||||
|
jpr ne,L31
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L30
|
||||||
|
L31:
|
||||||
|
ldl rr2,#%7ff00000
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
ldl rr2,FP(#%ffdc)
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L32
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
L32:
|
||||||
|
ldl rr2,#%7ff00000
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
ldl rr2,FP(#%ffdc)
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L33
|
||||||
|
ldl rr2,FP(#%ffe0)
|
||||||
|
ldl rr2,rr2
|
||||||
|
com r2
|
||||||
|
com r3
|
||||||
|
addl rr2,#1
|
||||||
|
ldl FP(#%ffe0),rr2
|
||||||
|
L33:
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
cpl rr2,_stkseg+%ffe0(fp)
|
||||||
|
jpr eq,L34
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L30
|
||||||
|
L34:
|
||||||
|
ldl rr2,FP(#%ffdc)
|
||||||
|
and r2,_stkseg+%fff4(fp)
|
||||||
|
and r3,_stkseg+%fff6(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L35
|
||||||
|
ldl rr2,FP(#%ffd8)
|
||||||
|
subl rr2,_stkseg+%ffec(fp)
|
||||||
|
ldl FP(#%ffec),rr2
|
||||||
|
callr carry
|
||||||
|
ld FP(#%ffd2),r2
|
||||||
|
ld r2,FP(#%ffd2)
|
||||||
|
neg r2
|
||||||
|
ld r3,r2
|
||||||
|
exts rr2
|
||||||
|
subl rr2,_stkseg+%fff4(fp)
|
||||||
|
ldl FP(#%fff4),rr2
|
||||||
|
L35:
|
||||||
|
ldl rr2,FP(#%ffdc)
|
||||||
|
and r2,_stkseg+%fff0(fp)
|
||||||
|
and r3,_stkseg+%fff2(fp)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L37
|
||||||
|
ldl rr2,FP(#%ffd8)
|
||||||
|
subl rr2,_stkseg+%ffe8(fp)
|
||||||
|
ldl FP(#%ffe8),rr2
|
||||||
|
callr carry
|
||||||
|
ld FP(#%ffd2),r2
|
||||||
|
ld r2,FP(#%ffd2)
|
||||||
|
neg r2
|
||||||
|
ld r3,r2
|
||||||
|
exts rr2
|
||||||
|
subl rr2,_stkseg+%fff0(fp)
|
||||||
|
ldl FP(#%fff0),rr2
|
||||||
|
L37:
|
||||||
|
ldl rr2,FP(#%ffec)
|
||||||
|
subl rr2,_stkseg+%ffe8(fp)
|
||||||
|
ldl FP(#%ffd4),rr2
|
||||||
|
callr carry
|
||||||
|
ld FP(#%ffd2),r2
|
||||||
|
ld r2,FP(#%ffd2)
|
||||||
|
neg r2
|
||||||
|
ld r3,r2
|
||||||
|
exts rr2
|
||||||
|
addl rr2,_stkseg+%fff4(fp)
|
||||||
|
subl rr2,_stkseg+%fff0(fp)
|
||||||
|
ldl FP(#%ffe4),rr2
|
||||||
|
ldl rr2,FP(#%ffd4)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L39
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L38
|
||||||
|
L39:
|
||||||
|
ldl rr2,FP(#%ffe4)
|
||||||
|
testl rr2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L30
|
||||||
|
L38:
|
||||||
|
ld r2,#%1
|
||||||
|
test r2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L30
|
||||||
|
L30:
|
||||||
|
ld sp,fp
|
||||||
|
dec sp,#8
|
||||||
|
ldm r8,@SP,#6
|
||||||
|
inc sp,#12
|
||||||
|
ldctlb flags,rl0
|
||||||
|
ret
|
||||||
|
~L1 := 46
|
||||||
|
~L2 := 50
|
||||||
|
}
|
||||||
|
|
||||||
|
.psec data
|
||||||
|
.data
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
cpzs::
|
||||||
|
{
|
||||||
|
dec sp,#12
|
||||||
|
ldm @SP,r8,#6
|
||||||
|
ld fp,sp
|
||||||
|
inc fp,#8
|
||||||
|
sub sp,#~L2-12
|
||||||
|
ldl rr2,FP(#%8)
|
||||||
|
ldl FP(#%8),rr2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L41
|
||||||
|
L41:
|
||||||
|
ld sp,fp
|
||||||
|
dec sp,#8
|
||||||
|
ldm r8,@SP,#6
|
||||||
|
inc sp,#12
|
||||||
|
ldctlb flags,rl0
|
||||||
|
ret
|
||||||
|
~L1 := 8
|
||||||
|
~L2 := 12
|
||||||
|
}
|
||||||
|
|
||||||
|
.psec data
|
||||||
|
.data
|
||||||
|
.psec
|
||||||
|
.code
|
||||||
|
cpzd::
|
||||||
|
{
|
||||||
|
dec sp,#12
|
||||||
|
ldm @SP,r8,#6
|
||||||
|
ld fp,sp
|
||||||
|
inc fp,#8
|
||||||
|
sub sp,#~L2-12
|
||||||
|
ldl FP(#%fff4),rr0
|
||||||
|
ldl FP(#%fff0),rr2
|
||||||
|
ldl rr2,#%1
|
||||||
|
ldl FP(#%ffec),rr2
|
||||||
|
ldl rr2,FP(#%fff4)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr ne,L44
|
||||||
|
ldl rr2,FP(#%fff0)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr ne,L44
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L43
|
||||||
|
L44:
|
||||||
|
ldl rr2,FP(#%fff4)
|
||||||
|
cpl rr2,#0
|
||||||
|
jpr eq,L45
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L43
|
||||||
|
L45:
|
||||||
|
ldl rr2,#%1
|
||||||
|
ldl FP(#%fff4),rr2
|
||||||
|
ldctlb rl0,flags
|
||||||
|
jpr L43
|
||||||
|
L43:
|
||||||
|
ld sp,fp
|
||||||
|
dec sp,#8
|
||||||
|
ldm r8,@SP,#6
|
||||||
|
inc sp,#12
|
||||||
|
ldctlb flags,rl0
|
||||||
|
ret
|
||||||
|
~L1 := 20
|
||||||
|
~L2 := 24
|
||||||
|
}
|
||||||
|
|
||||||
|
.psec data
|
||||||
|
.data
|
||||||
Loading…
Reference in New Issue