diff options
Diffstat (limited to 'code/tools/lcc/x86/linux/tst/array.sbk')
-rw-r--r-- | code/tools/lcc/x86/linux/tst/array.sbk | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/code/tools/lcc/x86/linux/tst/array.sbk b/code/tools/lcc/x86/linux/tst/array.sbk new file mode 100644 index 0000000..d50395c --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/array.sbk @@ -0,0 +1,235 @@ +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $60,%esp +movl $0,-8(%ebp) +.LC2: +movl $0,-4(%ebp) +.LC6: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl %esi,%ebx +sall $4,%ebx +leal x(%ebx),%ebx +imul $1000,%esi,%esi +leal (%edi,%esi),%esi +movl %esi,(%ebx,%edi,4) +.LC7: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC6 +movl -8(%ebp),%edi +movl %edi,%esi +sall $4,%esi +leal x(%esi),%esi +movl %esi,y(,%edi,4) +.LC3: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC2 +call f +movl $0,-8(%ebp) +.LC10: +movl -8(%ebp),%edi +movl %edi,%esi +sall $4,%esi +leal -60(%ebp),%ebx +leal (%ebx,%esi),%esi +movl %esi,-12(%ebp) +movl %esi,y(,%edi,4) +movl $0,-4(%ebp) +.LC14: +movl -4(%ebp),%edi +leal (,%edi,4),%edi +movl -12(%ebp),%esi +movl -8(%ebp),%ebx +sall $4,%ebx +leal x(%ebx),%ebx +movl (%ebx,%edi),%ebx +movl %ebx,(%esi,%edi) +.LC15: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC14 +.LC11: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC10 +pushl $y +leal -60(%ebp),%edi +pushl %edi +call g +addl $8,%esp +movl $0,%eax +.LC1: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf18: +.size main,.Lf18-main +.globl f +.align 16 +.type f,@function +f: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +.LC20: +movl $0,-4(%ebp) +.LC24: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +sall $4,%esi +leal x(%esi),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC25: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC24 +.LC21: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC20 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,-8(%ebp) +.LC30: +movl $0,-4(%ebp) +.LC34: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl y(,%esi,4),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC35: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC34 +.LC31: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC30 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,%eax +.LC19: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf38: +.size f,.Lf38-f +.globl g +.align 16 +.type g,@function +g: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $8,%esp +movl $0,-8(%ebp) +.LC40: +movl $0,-4(%ebp) +.LC44: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +sall $4,%esi +movl 20(%ebp),%ebx +leal (%ebx,%esi),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC45: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC44 +.LC41: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC40 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,-8(%ebp) +.LC48: +movl $0,-4(%ebp) +.LC52: +movl -4(%ebp),%edi +movl -8(%ebp),%esi +movl 24(%ebp),%ebx +movl (%ebx,%esi,4),%esi +pushl (%esi,%edi,4) +pushl $.LC28 +call printf +addl $8,%esp +.LC53: +incl -4(%ebp) +cmpl $4,-4(%ebp) +jl .LC52 +.LC49: +incl -8(%ebp) +cmpl $3,-8(%ebp) +jl .LC48 +pushl $.LC29 +call printf +addl $4,%esp +movl $0,%eax +.LC39: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf56: +.size g,.Lf56-g +.bss +.globl y +.align 4 +.type y,@object +.size y,12 +.comm y,12 +.globl x +.align 4 +.type x,@object +.size x,48 +.comm x,48 +.data +.align 1 +.LC29: +.byte 10 +.byte 0 +.align 1 +.LC28: +.byte 32 +.byte 37 +.byte 100 +.byte 0 +.text +.ident "LCC: 4.1" |