The Quake III Arena sources as originally released under the GPL license on August 20, 2005.
This commit is contained in:
commit
dbe4ddb103
1409 changed files with 806066 additions and 0 deletions
330
lcc/x86/linux/tst/sort.sbk
Normal file
330
lcc/x86/linux/tst/sort.sbk
Normal file
|
@ -0,0 +1,330 @@
|
|||
.data
|
||||
.globl in
|
||||
.align 4
|
||||
.type in,@object
|
||||
in:
|
||||
.long 10
|
||||
.long 32
|
||||
.long -1
|
||||
.long 567
|
||||
.long 3
|
||||
.long 18
|
||||
.long 1
|
||||
.long -51
|
||||
.long 789
|
||||
.long 0
|
||||
.size in,40
|
||||
.globl main
|
||||
.text
|
||||
.align 16
|
||||
.type main,@function
|
||||
main:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $4,%esp
|
||||
pushl $10
|
||||
pushl $in
|
||||
call sort
|
||||
addl $8,%esp
|
||||
movl $0,-4(%ebp)
|
||||
jmp .LC5
|
||||
.LC2:
|
||||
movl -4(%ebp),%edi
|
||||
pushl in(,%edi,4)
|
||||
call putd
|
||||
addl $4,%esp
|
||||
pushl $10
|
||||
call putchar
|
||||
addl $4,%esp
|
||||
.LC3:
|
||||
incl -4(%ebp)
|
||||
.LC5:
|
||||
movl -4(%ebp),%edi
|
||||
cmpl $10,%edi
|
||||
jb .LC2
|
||||
movl $0,%eax
|
||||
.LC1:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf6:
|
||||
.size main,.Lf6-main
|
||||
.globl putd
|
||||
.align 16
|
||||
.type putd,@function
|
||||
putd:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
cmpl $0,20(%ebp)
|
||||
jge .LC8
|
||||
pushl $45
|
||||
call putchar
|
||||
addl $4,%esp
|
||||
negl 20(%ebp)
|
||||
.LC8:
|
||||
movl 20(%ebp),%eax
|
||||
movl $10,%ecx
|
||||
cdq
|
||||
idivl %ecx
|
||||
cmpl $0,%eax
|
||||
je .LC10
|
||||
movl 20(%ebp),%eax
|
||||
movl $10,%ecx
|
||||
cdq
|
||||
idivl %ecx
|
||||
pushl %eax
|
||||
call putd
|
||||
addl $4,%esp
|
||||
.LC10:
|
||||
movl 20(%ebp),%eax
|
||||
movl $10,%ecx
|
||||
cdq
|
||||
idivl %ecx
|
||||
leal 48(%edx),%edi
|
||||
pushl %edi
|
||||
call putchar
|
||||
addl $4,%esp
|
||||
movl $0,%eax
|
||||
.LC7:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf12:
|
||||
.size putd,.Lf12-putd
|
||||
.globl sort
|
||||
.align 16
|
||||
.type sort,@function
|
||||
sort:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
movl 24(%ebp),%edi
|
||||
subl $1,%edi
|
||||
movl %edi,24(%ebp)
|
||||
pushl %edi
|
||||
pushl $0
|
||||
movl 20(%ebp),%edi
|
||||
movl %edi,xx
|
||||
pushl %edi
|
||||
call quick
|
||||
addl $12,%esp
|
||||
movl $0,%eax
|
||||
.LC13:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf14:
|
||||
.size sort,.Lf14-sort
|
||||
.globl quick
|
||||
.align 16
|
||||
.type quick,@function
|
||||
quick:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $4,%esp
|
||||
movl 28(%ebp),%edi
|
||||
cmpl %edi,24(%ebp)
|
||||
jl .LC16
|
||||
jmp .LC15
|
||||
.LC16:
|
||||
pushl 28(%ebp)
|
||||
pushl 24(%ebp)
|
||||
pushl 20(%ebp)
|
||||
call partition
|
||||
addl $12,%esp
|
||||
movl %eax,-4(%ebp)
|
||||
movl -4(%ebp),%edi
|
||||
subl $1,%edi
|
||||
pushl %edi
|
||||
pushl 24(%ebp)
|
||||
pushl 20(%ebp)
|
||||
call quick
|
||||
addl $12,%esp
|
||||
pushl 28(%ebp)
|
||||
movl -4(%ebp),%edi
|
||||
leal 1(%edi),%edi
|
||||
pushl %edi
|
||||
pushl 20(%ebp)
|
||||
call quick
|
||||
addl $12,%esp
|
||||
movl $0,%eax
|
||||
.LC15:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf18:
|
||||
.size quick,.Lf18-quick
|
||||
.globl partition
|
||||
.align 16
|
||||
.type partition,@function
|
||||
partition:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $8,%esp
|
||||
incl 28(%ebp)
|
||||
movl 24(%ebp),%edi
|
||||
movl %edi,-8(%ebp)
|
||||
movl -8(%ebp),%edi
|
||||
movl 20(%ebp),%esi
|
||||
movl (%esi,%edi,4),%edi
|
||||
movl %edi,-4(%ebp)
|
||||
jmp .LC21
|
||||
.LC20:
|
||||
incl 24(%ebp)
|
||||
jmp .LC24
|
||||
.LC23:
|
||||
incl 24(%ebp)
|
||||
.LC24:
|
||||
movl 24(%ebp),%edi
|
||||
movl 20(%ebp),%esi
|
||||
movl -4(%ebp),%ebx
|
||||
cmpl %ebx,(%esi,%edi,4)
|
||||
jl .LC23
|
||||
decl 28(%ebp)
|
||||
jmp .LC27
|
||||
.LC26:
|
||||
decl 28(%ebp)
|
||||
.LC27:
|
||||
movl 28(%ebp),%edi
|
||||
movl 20(%ebp),%esi
|
||||
movl -4(%ebp),%ebx
|
||||
cmpl %ebx,(%esi,%edi,4)
|
||||
jg .LC26
|
||||
movl 28(%ebp),%edi
|
||||
cmpl %edi,24(%ebp)
|
||||
jge .LC29
|
||||
movl 20(%ebp),%edi
|
||||
movl 28(%ebp),%esi
|
||||
leal (%edi,%esi,4),%esi
|
||||
pushl %esi
|
||||
movl 24(%ebp),%esi
|
||||
leal (%edi,%esi,4),%edi
|
||||
pushl %edi
|
||||
call exchange
|
||||
addl $8,%esp
|
||||
.LC29:
|
||||
.LC21:
|
||||
movl 28(%ebp),%edi
|
||||
cmpl %edi,24(%ebp)
|
||||
jl .LC20
|
||||
movl 20(%ebp),%edi
|
||||
movl 28(%ebp),%esi
|
||||
leal (%edi,%esi,4),%esi
|
||||
pushl %esi
|
||||
movl -8(%ebp),%esi
|
||||
leal (%edi,%esi,4),%edi
|
||||
pushl %edi
|
||||
call exchange
|
||||
addl $8,%esp
|
||||
movl 28(%ebp),%eax
|
||||
.LC19:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf31:
|
||||
.size partition,.Lf31-partition
|
||||
.globl exchange
|
||||
.align 16
|
||||
.type exchange,@function
|
||||
exchange:
|
||||
pushl %ebp
|
||||
pushl %ebx
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl %esp,%ebp
|
||||
subl $4,%esp
|
||||
movl xx,%edi
|
||||
movl $4,%esi
|
||||
movl 24(%ebp),%ebx
|
||||
subl %edi,%ebx
|
||||
movl %ebx,%eax
|
||||
movl %esi,%ecx
|
||||
cdq
|
||||
idivl %ecx
|
||||
pushl %eax
|
||||
movl 20(%ebp),%ebx
|
||||
subl %edi,%ebx
|
||||
movl %ebx,%eax
|
||||
movl %esi,%ecx
|
||||
cdq
|
||||
idivl %ecx
|
||||
pushl %eax
|
||||
pushl $.LC33
|
||||
call printf
|
||||
addl $12,%esp
|
||||
movl 20(%ebp),%edi
|
||||
movl (,%edi),%esi
|
||||
movl %esi,-4(%ebp)
|
||||
movl 24(%ebp),%esi
|
||||
movl (,%esi),%esi
|
||||
movl %esi,(,%edi)
|
||||
movl 24(%ebp),%edi
|
||||
movl -4(%ebp),%esi
|
||||
movl %esi,(,%edi)
|
||||
movl $0,%eax
|
||||
.LC32:
|
||||
movl %ebp,%esp
|
||||
popl %edi
|
||||
popl %esi
|
||||
popl %ebx
|
||||
popl %ebp
|
||||
ret
|
||||
.Lf34:
|
||||
.size exchange,.Lf34-exchange
|
||||
.bss
|
||||
.globl xx
|
||||
.align 4
|
||||
.type xx,@object
|
||||
.size xx,4
|
||||
.comm xx,4
|
||||
.data
|
||||
.align 1
|
||||
.LC33:
|
||||
.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
|
||||
.text
|
||||
.ident "LCC: 4.1"
|
Loading…
Add table
Add a link
Reference in a new issue