diff options
Diffstat (limited to 'code/tools/lcc/x86/linux/tst/fields.sbk')
-rw-r--r-- | code/tools/lcc/x86/linux/tst/fields.sbk | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/code/tools/lcc/x86/linux/tst/fields.sbk b/code/tools/lcc/x86/linux/tst/fields.sbk new file mode 100644 index 0000000..4664f80 --- /dev/null +++ b/code/tools/lcc/x86/linux/tst/fields.sbk @@ -0,0 +1,321 @@ +.data +.globl x +.align 4 +.type x,@object +.size x,16 +x: +.long 1 +.byte 2 +.space 3 +.byte 3 +.byte 64 +.space 2 +.byte 80 +.byte 6 +.space 2 +.globl i +.align 4 +.type i,@object +.size i,4 +i: +.long 16 +.globl y +.align 4 +.type y,@object +.size y,8 +y: +.byte 35 +.space 3 +.byte 9 +.byte 0 +.byte 0 +.byte 0 +.globl main +.text +.align 16 +.type main,@function +main: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movsbl x+13,%edi +pushl %edi +movl x+12,%edi +sall $25,%edi +sarl $29,%edi +pushl %edi +movl x+8,%edi +sall $16,%edi +sarl $28,%edi +pushl %edi +movl x+8,%edi +sall $20,%edi +sarl $20,%edi +pushl %edi +movsbl x+4,%edi +pushl %edi +pushl x +pushl $.LC4 +call printf +addl $28,%esp +pushl y+4 +movl y,%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC10 +call printf +addl $16,%esp +movl x+8,%edi +andl $0xffff0fff,%edi +movl i,%esi +sall $28,%esi +sarl $28,%esi +shll $12,%esi +andl $0xf000,%esi +orl %esi,%edi +movl %edi,x+8 +movl x+12,%edi +andl $0xffffff8f,%edi +movl %edi,x+12 +movsbl x+13,%edi +pushl %edi +movl x+12,%edi +sall $25,%edi +sarl $29,%edi +pushl %edi +movl x+8,%edi +sall $16,%edi +sarl $28,%edi +pushl %edi +movl x+8,%edi +sall $20,%edi +sarl $20,%edi +pushl %edi +movsbl x+4,%edi +pushl %edi +pushl x +pushl $.LC4 +call printf +addl $28,%esp +movl y,%edi +andl $0xfffffffc,%edi +orl $2,%edi +movl %edi,y +movl i,%edi +movl %edi,y+4 +pushl y+4 +movl y,%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC10 +call printf +addl $16,%esp +pushl $x +call f2 +addl $4,%esp +movl $0,%eax +.LC3: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf21: +.size main,.Lf21-main +.globl f1 +.align 16 +.type f1,@function +f1: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +movl 20(%ebp),%edi +andl $0xffffffc3,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%esi +andl $0xfffffffc,%esi +movl $0,%ebx +andl $3,%ebx +andl $3,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%edi +andl $60,%edi +cmpl $0,%edi +je .LC23 +pushl $.LC25 +call printf +addl $4,%esp +.LC23: +movl 20(%ebp),%edi +orl $3,(,%edi) +movl 20(%ebp),%edi +orl $60,(,%edi) +movl 20(%ebp),%edi +movl (,%edi),%edi +movl %edi,%esi +shrl $2,%esi +andl $15,%esi +pushl %esi +andl $3,%edi +pushl %edi +pushl $.LC26 +call printf +addl $12,%esp +movl $0,%eax +.LC22: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf27: +.size f1,.Lf27-f1 +.globl f2 +.align 16 +.type f2,@function +f2: +pushl %ebp +pushl %ebx +pushl %esi +pushl %edi +movl %esp,%ebp +subl $4,%esp +cmpl $0,i +jne .LC30 +movl $1,-4(%ebp) +jmp .LC31 +.LC30: +movl $0,-4(%ebp) +.LC31: +movl 20(%ebp),%edi +movl (,%edi),%esi +andl $0xfffffffc,%esi +movl -4(%ebp),%ebx +andl $3,%ebx +andl $3,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl 20(%ebp),%edi +pushl %edi +call f1 +addl $4,%esp +movl (,%edi),%esi +andl $0xffffffc3,%esi +movl $0,%ebx +andl $15,%ebx +leal (,%ebx,4),%ebx +andl $60,%ebx +orl %ebx,%esi +movl %esi,(,%edi) +movl $0,%eax +.LC28: +movl %ebp,%esp +popl %edi +popl %esi +popl %ebx +popl %ebp +ret +.Lf32: +.size f2,.Lf32-f2 +.data +.align 1 +.LC26: +.byte 112 +.byte 45 +.byte 62 +.byte 97 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 44 +.byte 32 +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 61 +.byte 32 +.byte 48 +.byte 120 +.byte 37 +.byte 120 +.byte 10 +.byte 0 +.align 1 +.LC25: +.byte 112 +.byte 45 +.byte 62 +.byte 98 +.byte 32 +.byte 33 +.byte 61 +.byte 32 +.byte 48 +.byte 33 +.byte 10 +.byte 0 +.align 1 +.LC10: +.byte 121 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.align 1 +.LC4: +.byte 120 +.byte 32 +.byte 61 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 32 +.byte 37 +.byte 100 +.byte 10 +.byte 0 +.text +.ident "LCC: 4.1" |