diff options
Diffstat (limited to 'lcc/x86/linux/tst/sort.sbk')
-rwxr-xr-x | lcc/x86/linux/tst/sort.sbk | 660 |
1 files changed, 330 insertions, 330 deletions
diff --git a/lcc/x86/linux/tst/sort.sbk b/lcc/x86/linux/tst/sort.sbk index 11dbcdd..25cc4d9 100755 --- a/lcc/x86/linux/tst/sort.sbk +++ b/lcc/x86/linux/tst/sort.sbk @@ -1,330 +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"
+.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" |