mirror of
https://github.com/UberGames/lilium-voyager.git
synced 2024-12-14 14:11:15 +00:00
321 lines
3.6 KiB
Text
321 lines
3.6 KiB
Text
.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"
|