lilium-voyager/lcc/alpha/osf/tst/sort.sbk

323 lines
4.2 KiB
Text

.sdata
.globl in
.align 2
in:
.long 0xa
.long 0x20
.long 0xffffffff
.long 0x237
.long 0x3
.long 0x12
.long 0x1
.long 0xffffffcd
.long 0x315
.long 0x0
.globl main
.text
.text
.ent main
main:
ldgp $gp,0($27)
lda $sp,-80($sp)
.mask 0x4004000,-72
.frame $sp,80,$26,48
stq $14,0($sp)
stq $26,8($sp)
.prologue 1
lda $16,in
lda $17,10
jsr $26,sort
ldgp $gp,0($26)
mov $31,$14
br L.5
L.2:
sll $14,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
ldl $16,in($27)
jsr $26,putd
ldgp $gp,0($26)
lda $16,10
jsr $26,putchar
ldgp $gp,0($26)
L.3:
lda $14,1($14)
L.5:
mov $14,$27
lda $25,10
cmpult $27,$25,$23
bne $23,L.2
mov $31,$0
L.1:
ldq $14,0($sp)
ldq $26,8($sp)
lda $sp,80($sp)
ret
.end main
.globl putd
.text
.ent putd
putd:
ldgp $gp,0($27)
lda $sp,-80($sp)
.mask 0x5004000,-64
.frame $sp,80,$26,48
stq $14,0($sp)
stq $24,8($sp)
stq $26,16($sp)
mov $16,$14
.prologue 1
cmplt $14,$31,$23
beq $23,L.7
lda $16,45
jsr $26,putchar
ldgp $gp,0($26)
negl $14,$14
L.7:
divl $14,10,$27
cmpeq $27,$31,$23
bne $23,L.9
divl $14,10,$16
jsr $26,putd
ldgp $gp,0($26)
L.9:
reml $14,10,$27
lda $16,48($27)
jsr $26,putchar
ldgp $gp,0($26)
mov $31,$0
L.6:
ldq $14,0($sp)
ldq $24,8($sp)
ldq $26,16($sp)
lda $sp,80($sp)
ret
.end putd
.globl sort
.text
.ent sort
sort:
ldgp $gp,0($27)
lda $sp,-64($sp)
.mask 0x4000000,-64
.frame $sp,64,$26,48
stq $26,0($sp)
stq $16,16($sp)
stq $17,24($sp)
.prologue 1
ldq $27,-48+64($sp)
stq $27,xx
mov $27,$16
mov $31,$17
ldl $27,-40+64($sp)
subl $27,1,$27
stl $27,-40+64($sp)
mov $27,$18
jsr $26,quick
ldgp $gp,0($26)
mov $31,$0
L.11:
ldq $26,0($sp)
lda $sp,64($sp)
ret
.end sort
.globl quick
.text
.ent quick
quick:
ldgp $gp,0($27)
lda $sp,-96($sp)
.mask 0x4007800,-64
.frame $sp,96,$26,48
stq $11,0($sp)
stq $12,8($sp)
stq $13,16($sp)
stq $14,24($sp)
stq $26,32($sp)
mov $16,$14
mov $17,$13
mov $18,$12
.prologue 1
cmplt $13,$12,$23
bne $23,L.13
br L.12
L.13:
mov $14,$16
mov $13,$17
mov $12,$18
jsr $26,partition
ldgp $gp,0($26)
mov $0,$11
mov $14,$16
mov $13,$17
subl $11,1,$18
jsr $26,quick
ldgp $gp,0($26)
mov $14,$16
lda $17,1($11)
mov $12,$18
jsr $26,quick
ldgp $gp,0($26)
mov $31,$0
L.12:
ldq $11,0($sp)
ldq $12,8($sp)
ldq $13,16($sp)
ldq $14,24($sp)
ldq $26,32($sp)
lda $sp,96($sp)
ret
.end quick
.globl partition
.text
.ent partition
partition:
ldgp $gp,0($27)
lda $sp,-112($sp)
.mask 0x4007c00,-72
.frame $sp,112,$26,48
stq $10,0($sp)
stq $11,8($sp)
stq $12,16($sp)
stq $13,24($sp)
stq $14,32($sp)
stq $26,40($sp)
mov $16,$14
mov $17,$13
mov $18,$12
.prologue 1
lda $12,1($12)
mov $13,$10
sll $10,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$27
ldl $11,($27)
br L.17
L.16:
lda $13,1($13)
br L.20
L.19:
lda $13,1($13)
L.20:
sll $13,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$27
ldl $27,($27)
cmplt $27,$11,$23
bne $23,L.19
subl $12,1,$12
br L.23
L.22:
subl $12,1,$12
L.23:
sll $12,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$27
ldl $27,($27)
cmple $27,$11,$23
beq $23,L.22
cmplt $13,$12,$23
beq $23,L.25
sll $13,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$16
sll $12,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$17
jsr $26,exchange
ldgp $gp,0($26)
L.25:
L.17:
cmplt $13,$12,$23
bne $23,L.16
sll $10,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$16
sll $12,8*(8-4),$27
sra $27,8*(8-4),$27
sll $27,2,$27
addq $27,$14,$17
jsr $26,exchange
ldgp $gp,0($26)
mov $12,$0
L.15:
ldq $10,0($sp)
ldq $11,8($sp)
ldq $12,16($sp)
ldq $13,24($sp)
ldq $14,32($sp)
ldq $26,40($sp)
lda $sp,112($sp)
ret
.end partition
.globl exchange
.text
.ent exchange
exchange:
ldgp $gp,0($27)
lda $sp,-112($sp)
.mask 0x5006000,-88
.frame $sp,112,$26,48
stq $13,0($sp)
stq $14,8($sp)
stq $24,16($sp)
stq $26,24($sp)
mov $16,$14
mov $17,$13
.prologue 1
lda $16,L.28
ldq $27,xx
stq $27,-80+112($sp)
mov $14,$25
subq $25,$27,$25
stq $25,-72+112($sp)
divq $25,4,$17
mov $13,$27
ldq $25,-80+112($sp)
subq $27,$25,$27
divq $27,4,$18
jsr $26,printf
ldgp $gp,0($26)
ldl $27,($14)
stl $27,-60+112($sp)
ldl $27,($13)
stl $27,($14)
ldl $27,-60+112($sp)
stl $27,($13)
mov $31,$0
L.27:
ldq $13,0($sp)
ldq $14,8($sp)
ldq $24,16($sp)
ldq $26,24($sp)
lda $sp,112($sp)
ret
.end exchange
.globl xx
.comm xx,8
.rdata
.align 0
L.28:
.byte 101
.byte 120
.byte 99
.byte 104
.byte 97
.byte 110
.byte 103
.byte 101
.byte 40
.byte 37
.byte 100
.byte 44
.byte 37
.byte 100
.byte 41
.byte 10
.byte 0