aboutsummaryrefslogtreecommitdiffstats
path: root/lcc/x86/linux/tst/struct.sbk
diff options
context:
space:
mode:
Diffstat (limited to 'lcc/x86/linux/tst/struct.sbk')
-rwxr-xr-xlcc/x86/linux/tst/struct.sbk477
1 files changed, 477 insertions, 0 deletions
diff --git a/lcc/x86/linux/tst/struct.sbk b/lcc/x86/linux/tst/struct.sbk
new file mode 100755
index 0000000..7c5b58b
--- /dev/null
+++ b/lcc/x86/linux/tst/struct.sbk
@@ -0,0 +1,477 @@
+.globl addpoint
+.text
+.align 16
+.type addpoint,@function
+addpoint:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+movl 32(%ebp),%edi
+addl %edi,24(%ebp)
+movl 36(%ebp),%edi
+addl %edi,28(%ebp)
+movl 20(%ebp),%edi
+leal 24(%ebp),%esi
+movl $8,%ecx
+rep
+movsb
+.LC1:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf5:
+.size addpoint,.Lf5-addpoint
+.globl canonrect
+.align 16
+.type canonrect,@function
+canonrect:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $32,%esp
+movl 32(%ebp),%edi
+cmpl %edi,24(%ebp)
+jge .LC11
+movl 24(%ebp),%edi
+movl %edi,-20(%ebp)
+jmp .LC12
+.LC11:
+movl 32(%ebp),%edi
+movl %edi,-20(%ebp)
+.LC12:
+movl -20(%ebp),%edi
+movl %edi,-16(%ebp)
+movl 36(%ebp),%edi
+cmpl %edi,28(%ebp)
+jge .LC21
+movl 28(%ebp),%edi
+movl %edi,-24(%ebp)
+jmp .LC22
+.LC21:
+movl 36(%ebp),%edi
+movl %edi,-24(%ebp)
+.LC22:
+movl -24(%ebp),%edi
+movl %edi,-12(%ebp)
+movl 32(%ebp),%edi
+cmpl %edi,24(%ebp)
+jle .LC27
+movl 24(%ebp),%edi
+movl %edi,-28(%ebp)
+jmp .LC28
+.LC27:
+movl 32(%ebp),%edi
+movl %edi,-28(%ebp)
+.LC28:
+movl -28(%ebp),%edi
+movl %edi,-8(%ebp)
+movl 36(%ebp),%edi
+cmpl %edi,28(%ebp)
+jle .LC38
+movl 28(%ebp),%edi
+movl %edi,-32(%ebp)
+jmp .LC39
+.LC38:
+movl 36(%ebp),%edi
+movl %edi,-32(%ebp)
+.LC39:
+movl -32(%ebp),%edi
+movl %edi,-4(%ebp)
+movl 20(%ebp),%edi
+leal -16(%ebp),%esi
+movl $16,%ecx
+rep
+movsb
+.LC6:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf40:
+.size canonrect,.Lf40-canonrect
+.globl makepoint
+.align 16
+.type makepoint,@function
+makepoint:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $8,%esp
+movl 24(%ebp),%edi
+movl %edi,-8(%ebp)
+movl 28(%ebp),%edi
+movl %edi,-4(%ebp)
+movl 20(%ebp),%edi
+leal -8(%ebp),%esi
+movl $8,%ecx
+rep
+movsb
+.LC41:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf44:
+.size makepoint,.Lf44-makepoint
+.globl makerect
+.align 16
+.type makerect,@function
+makerect:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $16,%esp
+leal -16(%ebp),%edi
+leal 24(%ebp),%esi
+movl $8,%ecx
+rep
+movsb
+leal -8(%ebp),%edi
+leal 32(%ebp),%esi
+movl $8,%ecx
+rep
+movsb
+leal -16(%ebp),%esi
+subl $16,%esp
+movl %esp,%edi
+movl $16,%ecx
+rep
+movsb
+pushl 20(%ebp)
+call canonrect
+addl $20,%esp
+.LC45:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf48:
+.size makerect,.Lf48-makerect
+.globl ptinrect
+.align 16
+.type ptinrect,@function
+ptinrect:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $4,%esp
+movl 20(%ebp),%edi
+cmpl 28(%ebp),%edi
+jl .LC57
+cmpl 36(%ebp),%edi
+jge .LC57
+movl 32(%ebp),%edi
+cmpl %edi,24(%ebp)
+jl .LC57
+movl 40(%ebp),%edi
+cmpl %edi,24(%ebp)
+jge .LC57
+movl $1,-4(%ebp)
+jmp .LC58
+.LC57:
+movl $0,-4(%ebp)
+.LC58:
+movl -4(%ebp),%eax
+.LC49:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf59:
+.size ptinrect,.Lf59-ptinrect
+.data
+.globl y
+.align 4
+.type y,@object
+.size y,4
+y:
+.byte 97
+.byte 98
+.byte 0
+.space 1
+.globl odd
+.text
+.align 16
+.type odd,@function
+odd:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $4,%esp
+leal -4(%ebp),%edi
+leal 20(%ebp),%esi
+movl $4,%ecx
+rep
+movsb
+leal -4(%ebp),%edi
+pushl %edi
+pushl $.LC61
+call printf
+addl $8,%esp
+movl $0,%eax
+.LC60:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf62:
+.size odd,.Lf62-odd
+.data
+.align 4
+.LC64:
+.long 0
+.long 0
+.align 4
+.LC65:
+.long 320
+.long 320
+.align 4
+.LC66:
+.long -1
+.long -1
+.long 1
+.long 1
+.long 20
+.long 300
+.long 500
+.long 400
+.globl main
+.text
+.align 16
+.type main,@function
+main:
+pushl %ebp
+pushl %ebx
+pushl %esi
+pushl %edi
+movl %esp,%ebp
+subl $108,%esp
+leal -68(%ebp),%edi
+leal .LC64,%esi
+movl $8,%ecx
+rep
+movsb
+leal -76(%ebp),%edi
+leal .LC65,%esi
+movl $8,%ecx
+rep
+movsb
+leal -36(%ebp),%edi
+leal .LC66,%esi
+movl $32,%ecx
+rep
+movsb
+pushl $-10
+pushl $-10
+leal -84(%ebp),%edi
+pushl %edi
+call makepoint
+addl $12,%esp
+leal -84(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -76(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -92(%ebp),%edi
+pushl %edi
+call addpoint
+addl $20,%esp
+pushl $10
+pushl $10
+leal -100(%ebp),%edi
+pushl %edi
+call makepoint
+addl $12,%esp
+leal -100(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -68(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -108(%ebp),%edi
+pushl %edi
+call addpoint
+addl $20,%esp
+leal -108(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -92(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+leal -52(%ebp),%edi
+pushl %edi
+call makerect
+addl $20,%esp
+movl $0,-4(%ebp)
+jmp .LC70
+.LC67:
+movl -4(%ebp),%edi
+leal (,%edi,8),%edi
+leal -32(%ebp),%esi
+pushl (%esi,%edi)
+leal -36(%ebp),%esi
+pushl (%esi,%edi)
+leal -60(%ebp),%edi
+pushl %edi
+call makepoint
+addl $12,%esp
+pushl -56(%ebp)
+movl -4(%ebp),%edi
+leal -36(%ebp),%esi
+pushl (%esi,%edi,8)
+pushl $.LC71
+call printf
+addl $12,%esp
+leal -52(%ebp),%esi
+subl $16,%esp
+movl %esp,%edi
+movl $16,%ecx
+rep
+movsb
+leal -60(%ebp),%esi
+subl $8,%esp
+movl %esp,%edi
+movl $8,%ecx
+rep
+movsb
+call ptinrect
+addl $24,%esp
+cmpl $0,%eax
+jne .LC74
+pushl $.LC76
+call printf
+addl $4,%esp
+.LC74:
+pushl -40(%ebp)
+pushl -44(%ebp)
+pushl -48(%ebp)
+pushl -52(%ebp)
+pushl $.LC77
+call printf
+addl $20,%esp
+.LC68:
+incl -4(%ebp)
+.LC70:
+movl -4(%ebp),%edi
+cmpl $4,%edi
+jb .LC67
+leal y,%esi
+subl $4,%esp
+movl %esp,%edi
+movl $4,%ecx
+rep
+movsb
+call odd
+addl $4,%esp
+pushl $0
+call exit
+addl $4,%esp
+movl $0,%eax
+.LC63:
+movl %ebp,%esp
+popl %edi
+popl %esi
+popl %ebx
+popl %ebp
+ret
+.Lf82:
+.size main,.Lf82-main
+.data
+.align 1
+.LC77:
+.byte 119
+.byte 105
+.byte 116
+.byte 104
+.byte 105
+.byte 110
+.byte 32
+.byte 91
+.byte 37
+.byte 100
+.byte 44
+.byte 37
+.byte 100
+.byte 59
+.byte 32
+.byte 37
+.byte 100
+.byte 44
+.byte 37
+.byte 100
+.byte 93
+.byte 10
+.byte 0
+.align 1
+.LC76:
+.byte 110
+.byte 111
+.byte 116
+.byte 32
+.byte 0
+.align 1
+.LC71:
+.byte 40
+.byte 37
+.byte 100
+.byte 44
+.byte 37
+.byte 100
+.byte 41
+.byte 32
+.byte 105
+.byte 115
+.byte 32
+.byte 0
+.align 1
+.LC61:
+.byte 37
+.byte 115
+.byte 10
+.byte 0
+.text
+.ident "LCC: 4.1"