mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-06 14:32:24 +00:00
486 lines
13 KiB
ArmAsm
486 lines
13 KiB
ArmAsm
55 pushl %ebp
|
|
89E5 movl %esp, %ebp
|
|
83EC10 subl $16, %esp
|
|
C745FC00 movl $0, -4(%ebp)
|
|
8B55FC movl -4(%ebp), %edx
|
|
8B4508 movl 8(%ebp), %eax
|
|
01D0 addl %edx, %eax
|
|
0FB600 movzbl (%eax), %eax
|
|
8845FB movb %al, -5(%ebp)
|
|
8B55FC movl -4(%ebp), %edx
|
|
8B450C movl 12(%ebp), %eax
|
|
01D0 addl %edx, %eax
|
|
0FB600 movzbl (%eax), %eax
|
|
8845FA movb %al, -6(%ebp)
|
|
8345FC01 addl $1, -4(%ebp)
|
|
807DFB00 cmpb $0, -5(%ebp)
|
|
7508 jne L2
|
|
0FB645FA movzbl -6(%ebp), %eax
|
|
F7D8 negl %eax
|
|
EB15 jmp L3
|
|
0FB645FB movzbl -5(%ebp), %eax
|
|
3A45FA cmpb -6(%ebp), %al
|
|
74C9 je L4
|
|
0FB655FB movzbl -5(%ebp), %edx
|
|
0FB645FA movzbl -6(%ebp), %eax
|
|
29C2 subl %eax, %edx
|
|
89D0 movl %edx, %eax
|
|
C9 leave
|
|
C3 ret
|
|
55 pushl %ebp
|
|
89E5 movl %esp, %ebp
|
|
53 pushl %ebx
|
|
83EC34 subl $52, %esp
|
|
66C745F4 movw $0, -12(%ebp)
|
|
C745EC01 movl $1, -20(%ebp)
|
|
E9BE0000 jmp L6
|
|
C745E801 movl $1, -24(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
780F js L7
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB0F jmp L8
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3EA shrl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
8B45E8 movl -24(%ebp), %eax
|
|
3B45EC cmpl -20(%ebp), %eax
|
|
740C je L9
|
|
C7042410 movl $16, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
C745E801 movl $1, -24(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7827 js L10
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89D3 movl %edx, %ebx
|
|
89C1 movl %eax, %ecx
|
|
D3E3 sall %cl, %ebx
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9200000 movl $32, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3EA shrl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB21 jmp L11
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89D3 movl %edx, %ebx
|
|
89C1 movl %eax, %ecx
|
|
D3EB shrl %cl, %ebx
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C020 addl $32, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
8B45E8 movl -24(%ebp), %eax
|
|
3B45EC cmpl -20(%ebp), %eax
|
|
740C je L12
|
|
C7042411 movl $17, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
D165EC sall -20(%ebp)
|
|
0FB745F4 movzwl -12(%ebp), %eax
|
|
83C001 addl $1, %eax
|
|
668945F4 movw %ax, -12(%ebp)
|
|
66837DF4 cmpw $31, -12(%ebp)
|
|
0F8E37FF jle L13
|
|
66C745F4 movw $0, -12(%ebp)
|
|
66C745F2 movw $1, -14(%ebp)
|
|
E9E50000 jmp L14
|
|
66C745E6 movw $1, -26(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7813 js L15
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB13 jmp L16
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
663B45F2 cmpw -14(%ebp), %ax
|
|
740C je L17
|
|
C7042417 movl $23, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
66C745E6 movw $1, -26(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7831 js L18
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9100000 movl $16, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB2B jmp L19
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C010 addl $16, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
663B45F2 cmpw -14(%ebp), %ax
|
|
740C je L20
|
|
C7042418 movl $24, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
0FBF45F2 movswl -14(%ebp), %eax
|
|
01C0 addl %eax, %eax
|
|
668945F2 movw %ax, -14(%ebp)
|
|
0FB745F4 movzwl -12(%ebp), %eax
|
|
83C001 addl $1, %eax
|
|
668945F4 movw %ax, -12(%ebp)
|
|
66837DF4 cmpw $15, -12(%ebp)
|
|
0F8E10FF jle L21
|
|
66C745F4 movw $0, -12(%ebp)
|
|
C645F701 movb $1, -9(%ebp)
|
|
E9DC0000 jmp L22
|
|
C645E501 movb $1, -27(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7813 js L23
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB13 jmp L24
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
8845E5 movb %al, -27(%ebp)
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
3A45F7 cmpb -9(%ebp), %al
|
|
740C je L25
|
|
C704241E movl $30, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
C645E501 movb $1, -27(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7831 js L26
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9080000 movl $8, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB2B jmp L27
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C008 addl $8, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
8845E5 movb %al, -27(%ebp)
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
3A45F7 cmpb -9(%ebp), %al
|
|
740C je L28
|
|
C704241F movl $31, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
0FBE45F7 movsbl -9(%ebp), %eax
|
|
01C0 addl %eax, %eax
|
|
8845F7 movb %al, -9(%ebp)
|
|
0FB745F4 movzwl -12(%ebp), %eax
|
|
83C001 addl $1, %eax
|
|
668945F4 movw %ax, -12(%ebp)
|
|
66837DF4 cmpw $7, -12(%ebp)
|
|
0F8E19FF jle L29
|
|
66C745F4 movw $-1, -12(%ebp)
|
|
C745EC01 movl $1, -20(%ebp)
|
|
8B45EC movl -20(%ebp), %eax
|
|
C1E01E sall $30, %eax
|
|
8945EC movl %eax, -20(%ebp)
|
|
8B45EC movl -20(%ebp), %eax
|
|
01C0 addl %eax, %eax
|
|
8945E0 movl %eax, -32(%ebp)
|
|
E9BC0000 jmp L30
|
|
8B45E0 movl -32(%ebp), %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
780F js L31
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB0F jmp L32
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3EA shrl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
8B45E8 movl -24(%ebp), %eax
|
|
3B45EC cmpl -20(%ebp), %eax
|
|
740C je L33
|
|
C7042427 movl $39, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
8B45E0 movl -32(%ebp), %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7827 js L34
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89D3 movl %edx, %ebx
|
|
89C1 movl %eax, %ecx
|
|
D3E3 sall %cl, %ebx
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9200000 movl $32, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3EA shrl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB21 jmp L35
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89D3 movl %edx, %ebx
|
|
89C1 movl %eax, %ecx
|
|
D3EB shrl %cl, %ebx
|
|
8B55E8 movl -24(%ebp), %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C020 addl $32, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
8945E8 movl %eax, -24(%ebp)
|
|
8B45E8 movl -24(%ebp), %eax
|
|
3B45EC cmpl -20(%ebp), %eax
|
|
740C je L36
|
|
C7042428 movl $40, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
D17DEC sarl -20(%ebp)
|
|
0FB745F4 movzwl -12(%ebp), %eax
|
|
83E801 subl $1, %eax
|
|
668945F4 movw %ax, -12(%ebp)
|
|
66837DF4 cmpw $-31, -12(%ebp)
|
|
0F8D39FF jge L37
|
|
66C745F4 movw $-1, -12(%ebp)
|
|
66C745F2 movw $1, -14(%ebp)
|
|
0FB745F2 movzwl -14(%ebp), %eax
|
|
0FB7C0 movzwl %ax, %eax
|
|
C1E00E sall $14, %eax
|
|
668945F2 movw %ax, -14(%ebp)
|
|
0FBF45F2 movswl -14(%ebp), %eax
|
|
01C0 addl %eax, %eax
|
|
668945DE movw %ax, -34(%ebp)
|
|
E9E30000 jmp L38
|
|
0FB745DE movzwl -34(%ebp), %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7813 js L39
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB13 jmp L40
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
663B45F2 cmpw -14(%ebp), %ax
|
|
740C je L41
|
|
C704242E movl $46, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
0FB745DE movzwl -34(%ebp), %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7831 js L42
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9100000 movl $16, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB2B jmp L43
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
0FB7D0 movzwl %ax, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C010 addl $16, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
668945E6 movw %ax, -26(%ebp)
|
|
0FB745E6 movzwl -26(%ebp), %eax
|
|
663B45F2 cmpw -14(%ebp), %ax
|
|
740C je L44
|
|
C704242F movl $47, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
66D17DF2 sarw -14(%ebp)
|
|
0FB745F4 movzwl -12(%ebp), %eax
|
|
83E801 subl $1, %eax
|
|
668945F4 movw %ax, -12(%ebp)
|
|
66837DF4 cmpw $-15, -12(%ebp)
|
|
0F8D12FF jge L45
|
|
66C745F4 movw $-1, -12(%ebp)
|
|
C645F701 movb $1, -9(%ebp)
|
|
0FB645F7 movzbl -9(%ebp), %eax
|
|
0FB6C0 movzbl %al, %eax
|
|
C1E006 sall $6, %eax
|
|
8845F7 movb %al, -9(%ebp)
|
|
0FBE45F7 movsbl -9(%ebp), %eax
|
|
01C0 addl %eax, %eax
|
|
8845DD movb %al, -35(%ebp)
|
|
E9DC0000 jmp L46
|
|
0FB645DD movzbl -35(%ebp), %eax
|
|
8845E5 movb %al, -27(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7813 js L47
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
EB13 jmp L48
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
8845E5 movb %al, -27(%ebp)
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
3A45F7 cmpb -9(%ebp), %al
|
|
740C je L49
|
|
C7042435 movl $53, (%esp)
|
|
E8000000 call _Platform_AssertFail
|
|
0FB645DD movzbl -35(%ebp), %eax
|
|
8845E5 movb %al, -27(%ebp)
|
|
66837DF4 cmpw $0, -12(%ebp)
|
|
7831 js L50
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
B9080000 movl $8, %ecx
|
|
29C1 subl %eax, %ecx
|
|
89C8 movl %ecx, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
EB2B jmp L51
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
F7D8 negl %eax
|
|
89C1 movl %eax, %ecx
|
|
D3FA sarl %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
89C3 movl %eax, %ebx
|
|
0FB645E5 movzbl -27(%ebp), %eax
|
|
0FB6D0 movzbl %al, %edx
|
|
0FBF45F4 movswl -12(%ebp), %eax
|
|
83C008 addl $8, %eax
|
|
89C1 movl %eax, %ecx
|
|
D3E2 sall %cl, %edx
|
|
89D0 movl %edx, %eax
|
|
09D8 orl %ebx, %eax
|
|
8845E5 movb %al, -27(%ebp)
|