mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-05 22:38:44 +00:00
6568 lines
112 KiB
ArmAsm
6568 lines
112 KiB
ArmAsm
.file "runtime.c"
|
|
.text
|
|
.section .rodata
|
|
.LC0:
|
|
.string "*** FAILURE: "
|
|
.text
|
|
.type vfailure, @function
|
|
vfailure:
|
|
.LFB6:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq stderr(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $13, %edx
|
|
movl $1, %esi
|
|
leaq .LC0(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fwrite@PLT
|
|
movq stderr(%rip), %rax
|
|
movq -16(%rbp), %rdx
|
|
movq -8(%rbp), %rcx
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call vfprintf@PLT
|
|
movl $255, %edi
|
|
call exit@PLT
|
|
.cfi_endproc
|
|
.LFE6:
|
|
.size vfailure, .-vfailure
|
|
.globl failure
|
|
.type failure, @function
|
|
failure:
|
|
.LFB7:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L3
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L3:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vfailure
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L4
|
|
call __stack_chk_fail@PLT
|
|
.L4:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE7:
|
|
.size failure, .-failure
|
|
.globl Lassert
|
|
.type Lassert, @function
|
|
Lassert:
|
|
.LFB8:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -224(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L6
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L6:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movq -216(%rbp), %rax
|
|
sarq %rax
|
|
testq %rax, %rax
|
|
jne .L9
|
|
movl $16, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -224(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vfailure
|
|
.L9:
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L8
|
|
call __stack_chk_fail@PLT
|
|
.L8:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE8:
|
|
.size Lassert, .-Lassert
|
|
.globl global_sysargs
|
|
.bss
|
|
.align 8
|
|
.type global_sysargs, @object
|
|
.size global_sysargs, 8
|
|
global_sysargs:
|
|
.zero 8
|
|
.text
|
|
.globl LkindOf
|
|
.type LkindOf, @function
|
|
LkindOf:
|
|
.LFB9:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L11
|
|
movl $9, %eax
|
|
jmp .L12
|
|
.L11:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
.L12:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE9:
|
|
.size LkindOf, .-LkindOf
|
|
.section .rodata
|
|
.LC1:
|
|
.string "compareTags, 0"
|
|
.LC2:
|
|
.string "boxed value expected in %s\n"
|
|
.LC3:
|
|
.string "compareTags, 1"
|
|
.align 8
|
|
.LC4:
|
|
.string "not a sexpr in compareTags: %d, %d\n"
|
|
.text
|
|
.globl LcompareTags
|
|
.type LcompareTags, @function
|
|
LcompareTags:
|
|
.LFB10:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L14
|
|
leaq .LC1(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L14:
|
|
movq -32(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L15
|
|
leaq .LC3(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L15:
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L16
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L16
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %edx
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %eax
|
|
subl %eax, %edx
|
|
leal (%rdx,%rdx), %eax
|
|
orl $1, %eax
|
|
jmp .L17
|
|
.L16:
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, %edx
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, %esi
|
|
leaq .LC4(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
movl $0, %eax
|
|
.L17:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE10:
|
|
.size LcompareTags, .-LcompareTags
|
|
.section .rodata
|
|
.LC5:
|
|
.string "runtime.c"
|
|
.LC6:
|
|
.string "__gc_stack_top != 0"
|
|
.align 8
|
|
.LC7:
|
|
.string "__builtin_frame_address(0) <= (void *)__gc_stack_top"
|
|
.LC8:
|
|
.string "cons"
|
|
.text
|
|
.globl Ls__Infix_58
|
|
.type Ls__Infix_58, @function
|
|
Ls__Infix_58:
|
|
.LFB11:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movb $0, -9(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -9(%rbp)
|
|
cmpb $0, -9(%rbp)
|
|
je .L19
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L19:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L20
|
|
leaq __PRETTY_FUNCTION__.15(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $94, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L20:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L21
|
|
leaq __PRETTY_FUNCTION__.15(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $94, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L21:
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
leaq -32(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
leaq .LC8(%rip), %rax
|
|
movq %rax, %rdi
|
|
call LtagHash
|
|
movl %eax, %ecx
|
|
movq -32(%rbp), %rdx
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rsi
|
|
movl $7, %edi
|
|
movl $0, %eax
|
|
call Bsexp
|
|
movq %rax, -8(%rbp)
|
|
leaq -32(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L22
|
|
leaq __PRETTY_FUNCTION__.15(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $102, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L22:
|
|
cmpb $0, -9(%rbp)
|
|
je .L23
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L23:
|
|
movq -8(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE11:
|
|
.size Ls__Infix_58, .-Ls__Infix_58
|
|
.section .rodata
|
|
.LC9:
|
|
.string "captured !!:1"
|
|
.LC10:
|
|
.string "unboxed value expected in %s\n"
|
|
.LC11:
|
|
.string "captured !!:2"
|
|
.text
|
|
.globl Ls__Infix_3333
|
|
.type Ls__Infix_3333, @function
|
|
Ls__Infix_3333:
|
|
.LFB12:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L26
|
|
leaq .LC9(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L26:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L27
|
|
leaq .LC11(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L27:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
testq %rax, %rax
|
|
jne .L28
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
testq %rax, %rax
|
|
je .L29
|
|
.L28:
|
|
movl $1, %eax
|
|
jmp .L30
|
|
.L29:
|
|
movl $0, %eax
|
|
.L30:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE12:
|
|
.size Ls__Infix_3333, .-Ls__Infix_3333
|
|
.section .rodata
|
|
.LC12:
|
|
.string "captured &&:1"
|
|
.LC13:
|
|
.string "captured &&:2"
|
|
.text
|
|
.globl Ls__Infix_3838
|
|
.type Ls__Infix_3838, @function
|
|
Ls__Infix_3838:
|
|
.LFB13:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L33
|
|
leaq .LC12(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L33:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L34
|
|
leaq .LC13(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L34:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
testq %rax, %rax
|
|
je .L35
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
testq %rax, %rax
|
|
je .L35
|
|
movl $1, %eax
|
|
jmp .L36
|
|
.L35:
|
|
movl $0, %eax
|
|
.L36:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE13:
|
|
.size Ls__Infix_3838, .-Ls__Infix_3838
|
|
.globl Ls__Infix_6161
|
|
.type Ls__Infix_6161, @function
|
|
Ls__Infix_6161:
|
|
.LFB14:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
cmpq -16(%rbp), %rax
|
|
jne .L39
|
|
movl $3, %eax
|
|
jmp .L41
|
|
.L39:
|
|
movl $1, %eax
|
|
.L41:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE14:
|
|
.size Ls__Infix_6161, .-Ls__Infix_6161
|
|
.section .rodata
|
|
.LC14:
|
|
.string "captured !=:1"
|
|
.LC15:
|
|
.string "captured !=:2"
|
|
.text
|
|
.globl Ls__Infix_3361
|
|
.type Ls__Infix_3361, @function
|
|
Ls__Infix_3361:
|
|
.LFB15:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L43
|
|
leaq .LC14(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L43:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L44
|
|
leaq .LC15(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L44:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
cmpq %rax, %rdx
|
|
je .L45
|
|
movl $3, %eax
|
|
jmp .L47
|
|
.L45:
|
|
movl $1, %eax
|
|
.L47:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE15:
|
|
.size Ls__Infix_3361, .-Ls__Infix_3361
|
|
.section .rodata
|
|
.LC16:
|
|
.string "captured <=:1"
|
|
.LC17:
|
|
.string "captured <=:2"
|
|
.text
|
|
.globl Ls__Infix_6061
|
|
.type Ls__Infix_6061, @function
|
|
Ls__Infix_6061:
|
|
.LFB16:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L49
|
|
leaq .LC16(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L49:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L50
|
|
leaq .LC17(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L50:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
cmpq %rax, %rdx
|
|
jg .L51
|
|
movl $3, %eax
|
|
jmp .L53
|
|
.L51:
|
|
movl $1, %eax
|
|
.L53:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE16:
|
|
.size Ls__Infix_6061, .-Ls__Infix_6061
|
|
.section .rodata
|
|
.LC18:
|
|
.string "captured <:1"
|
|
.LC19:
|
|
.string "captured <:2"
|
|
.text
|
|
.globl Ls__Infix_60
|
|
.type Ls__Infix_60, @function
|
|
Ls__Infix_60:
|
|
.LFB17:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L55
|
|
leaq .LC18(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L55:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L56
|
|
leaq .LC19(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L56:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
cmpq %rax, %rdx
|
|
jge .L57
|
|
movl $3, %eax
|
|
jmp .L59
|
|
.L57:
|
|
movl $1, %eax
|
|
.L59:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE17:
|
|
.size Ls__Infix_60, .-Ls__Infix_60
|
|
.section .rodata
|
|
.LC20:
|
|
.string "captured >=:1"
|
|
.LC21:
|
|
.string "captured >=:2"
|
|
.text
|
|
.globl Ls__Infix_6261
|
|
.type Ls__Infix_6261, @function
|
|
Ls__Infix_6261:
|
|
.LFB18:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L61
|
|
leaq .LC20(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L61:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L62
|
|
leaq .LC21(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L62:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
cmpq %rax, %rdx
|
|
jl .L63
|
|
movl $3, %eax
|
|
jmp .L65
|
|
.L63:
|
|
movl $1, %eax
|
|
.L65:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE18:
|
|
.size Ls__Infix_6261, .-Ls__Infix_6261
|
|
.section .rodata
|
|
.LC22:
|
|
.string "captured >:1"
|
|
.LC23:
|
|
.string "captured >:2"
|
|
.text
|
|
.globl Ls__Infix_62
|
|
.type Ls__Infix_62, @function
|
|
Ls__Infix_62:
|
|
.LFB19:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L67
|
|
leaq .LC22(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L67:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L68
|
|
leaq .LC23(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L68:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
cmpq %rax, %rdx
|
|
jle .L69
|
|
movl $3, %eax
|
|
jmp .L71
|
|
.L69:
|
|
movl $1, %eax
|
|
.L71:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE19:
|
|
.size Ls__Infix_62, .-Ls__Infix_62
|
|
.section .rodata
|
|
.LC24:
|
|
.string "captured +:1"
|
|
.LC25:
|
|
.string "captured +:2"
|
|
.text
|
|
.globl Ls__Infix_43
|
|
.type Ls__Infix_43, @function
|
|
Ls__Infix_43:
|
|
.LFB20:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L73
|
|
leaq .LC24(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L73:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L74
|
|
leaq .LC25(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L74:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
addq %rdx, %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE20:
|
|
.size Ls__Infix_43, .-Ls__Infix_43
|
|
.section .rodata
|
|
.LC26:
|
|
.string "captured -:2"
|
|
.LC27:
|
|
.string "captured -:1"
|
|
.text
|
|
.globl Ls__Infix_45
|
|
.type Ls__Infix_45, @function
|
|
Ls__Infix_45:
|
|
.LFB21:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L77
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L78
|
|
leaq .LC26(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L78:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
subq %rax, %rdx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L79
|
|
.L77:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L80
|
|
leaq .LC27(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L80:
|
|
movq -8(%rbp), %rax
|
|
subq -16(%rbp), %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L79:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE21:
|
|
.size Ls__Infix_45, .-Ls__Infix_45
|
|
.section .rodata
|
|
.LC28:
|
|
.string "captured *:1"
|
|
.LC29:
|
|
.string "captured *:2"
|
|
.text
|
|
.globl Ls__Infix_42
|
|
.type Ls__Infix_42, @function
|
|
Ls__Infix_42:
|
|
.LFB22:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L82
|
|
leaq .LC28(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L82:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L83
|
|
leaq .LC29(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L83:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movl %eax, %edx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
imull %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE22:
|
|
.size Ls__Infix_42, .-Ls__Infix_42
|
|
.section .rodata
|
|
.LC30:
|
|
.string "captured /:1"
|
|
.LC31:
|
|
.string "captured /:2"
|
|
.text
|
|
.globl Ls__Infix_47
|
|
.type Ls__Infix_47, @function
|
|
Ls__Infix_47:
|
|
.LFB23:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L86
|
|
leaq .LC30(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L86:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L87
|
|
leaq .LC31(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L87:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq -16(%rbp), %rdx
|
|
movq %rdx, %rcx
|
|
sarq %rcx
|
|
cqto
|
|
idivq %rcx
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE23:
|
|
.size Ls__Infix_47, .-Ls__Infix_47
|
|
.section .rodata
|
|
.LC32:
|
|
.string "captured %:1"
|
|
.LC33:
|
|
.string "captured %:2"
|
|
.text
|
|
.globl Ls__Infix_37
|
|
.type Ls__Infix_37, @function
|
|
Ls__Infix_37:
|
|
.LFB24:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L90
|
|
leaq .LC32(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L90:
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L91
|
|
leaq .LC33(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L91:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq -16(%rbp), %rdx
|
|
sarq %rdx
|
|
movq %rdx, %rcx
|
|
cqto
|
|
idivq %rcx
|
|
movq %rdx, %rcx
|
|
movq %rcx, %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE24:
|
|
.size Ls__Infix_37, .-Ls__Infix_37
|
|
.section .rodata
|
|
.LC34:
|
|
.string ".length"
|
|
.text
|
|
.globl Llength
|
|
.type Llength, @function
|
|
Llength:
|
|
.LFB25:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L94
|
|
leaq .LC34(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L94:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE25:
|
|
.size Llength, .-Llength
|
|
.section .rodata
|
|
.align 8
|
|
.LC35:
|
|
.string "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'"
|
|
.section .data.rel.local,"aw"
|
|
.align 8
|
|
.type chars, @object
|
|
.size chars, 8
|
|
chars:
|
|
.quad .LC35
|
|
.section .rodata
|
|
.align 8
|
|
.LC36:
|
|
.string "tagHash: character not found: %c\n"
|
|
.LC37:
|
|
.string "%s <-> %s\n"
|
|
.text
|
|
.globl LtagHash
|
|
.type LtagHash, @function
|
|
LtagHash:
|
|
.LFB26:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movl $0, -28(%rbp)
|
|
movl $0, -24(%rbp)
|
|
movq -40(%rbp), %rax
|
|
movq %rax, -16(%rbp)
|
|
jmp .L97
|
|
.L104:
|
|
movq chars(%rip), %rax
|
|
movq %rax, -8(%rbp)
|
|
movl $0, -20(%rbp)
|
|
jmp .L98
|
|
.L100:
|
|
addq $1, -8(%rbp)
|
|
addl $1, -20(%rbp)
|
|
.L98:
|
|
movq -8(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
testb %al, %al
|
|
je .L99
|
|
movq -8(%rbp), %rax
|
|
movzbl (%rax), %edx
|
|
movq -16(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
cmpb %al, %dl
|
|
jne .L100
|
|
.L99:
|
|
movq -8(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
testb %al, %al
|
|
je .L101
|
|
movl -28(%rbp), %eax
|
|
sall $6, %eax
|
|
orl -20(%rbp), %eax
|
|
movl %eax, -28(%rbp)
|
|
jmp .L102
|
|
.L101:
|
|
movq -16(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
movsbl %al, %eax
|
|
movl %eax, %esi
|
|
leaq .LC36(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L102:
|
|
addq $1, -16(%rbp)
|
|
.L97:
|
|
movq -16(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
testb %al, %al
|
|
je .L103
|
|
movl -24(%rbp), %eax
|
|
leal 1(%rax), %edx
|
|
movl %edx, -24(%rbp)
|
|
cmpl $4, %eax
|
|
jle .L104
|
|
.L103:
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %edi
|
|
call de_hash
|
|
movq %rax, %rcx
|
|
movq -40(%rbp), %rax
|
|
movl $5, %edx
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call strncmp@PLT
|
|
testl %eax, %eax
|
|
je .L105
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %edi
|
|
call de_hash
|
|
movq %rax, %rdx
|
|
movq -40(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC37(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L105:
|
|
movl -28(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE26:
|
|
.size LtagHash, .-LtagHash
|
|
.globl de_hash
|
|
.type de_hash, @function
|
|
de_hash:
|
|
.LFB27:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movl %edi, -20(%rbp)
|
|
movq $1, -8(%rbp)
|
|
leaq 5+buf.14(%rip), %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
leaq -1(%rax), %rdx
|
|
movq %rdx, -8(%rbp)
|
|
movb $0, (%rax)
|
|
jmp .L108
|
|
.L109:
|
|
movq chars(%rip), %rax
|
|
movl -20(%rbp), %edx
|
|
movslq %edx, %rdx
|
|
andl $63, %edx
|
|
leaq (%rax,%rdx), %rcx
|
|
movq -8(%rbp), %rax
|
|
leaq -1(%rax), %rdx
|
|
movq %rdx, -8(%rbp)
|
|
movzbl (%rcx), %edx
|
|
movb %dl, (%rax)
|
|
sarl $6, -20(%rbp)
|
|
.L108:
|
|
cmpl $0, -20(%rbp)
|
|
jne .L109
|
|
addq $1, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE27:
|
|
.size de_hash, .-de_hash
|
|
.local stringBuf
|
|
.comm stringBuf,16,16
|
|
.type createStringBuf, @function
|
|
createStringBuf:
|
|
.LFB28:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movl $128, %edi
|
|
call malloc@PLT
|
|
movq %rax, stringBuf(%rip)
|
|
movq stringBuf(%rip), %rax
|
|
movl $128, %edx
|
|
movl $0, %esi
|
|
movq %rax, %rdi
|
|
call memset@PLT
|
|
movl $0, 8+stringBuf(%rip)
|
|
movl $128, 12+stringBuf(%rip)
|
|
nop
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE28:
|
|
.size createStringBuf, .-createStringBuf
|
|
.type deleteStringBuf, @function
|
|
deleteStringBuf:
|
|
.LFB29:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq stringBuf(%rip), %rax
|
|
movq %rax, %rdi
|
|
call free@PLT
|
|
nop
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE29:
|
|
.size deleteStringBuf, .-deleteStringBuf
|
|
.type extendStringBuf, @function
|
|
extendStringBuf:
|
|
.LFB30:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movl 12+stringBuf(%rip), %eax
|
|
addl %eax, %eax
|
|
movl %eax, -4(%rbp)
|
|
movl -4(%rbp), %eax
|
|
movslq %eax, %rdx
|
|
movq stringBuf(%rip), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call realloc@PLT
|
|
movq %rax, stringBuf(%rip)
|
|
movl -4(%rbp), %eax
|
|
movl %eax, 12+stringBuf(%rip)
|
|
nop
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE30:
|
|
.size extendStringBuf, .-extendStringBuf
|
|
.type vprintStringBuf, @function
|
|
vprintStringBuf:
|
|
.LFB31:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $64, %rsp
|
|
movq %rdi, -56(%rbp)
|
|
movq %rsi, -64(%rbp)
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
movl $0, -48(%rbp)
|
|
movl $0, -44(%rbp)
|
|
movq $1, -40(%rbp)
|
|
.L115:
|
|
leaq -32(%rbp), %rcx
|
|
movq -64(%rbp), %rsi
|
|
movq (%rsi), %rax
|
|
movq 8(%rsi), %rdx
|
|
movq %rax, (%rcx)
|
|
movq %rdx, 8(%rcx)
|
|
movq 16(%rsi), %rax
|
|
movq %rax, 16(%rcx)
|
|
movq stringBuf(%rip), %rdx
|
|
movl 8+stringBuf(%rip), %eax
|
|
cltq
|
|
addq %rdx, %rax
|
|
movq %rax, -40(%rbp)
|
|
movl 12+stringBuf(%rip), %edx
|
|
movl 8+stringBuf(%rip), %eax
|
|
subl %eax, %edx
|
|
movl %edx, -44(%rbp)
|
|
movl -44(%rbp), %eax
|
|
movslq %eax, %rsi
|
|
leaq -32(%rbp), %rcx
|
|
movq -56(%rbp), %rdx
|
|
movq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call vsnprintf@PLT
|
|
movl %eax, -48(%rbp)
|
|
movl -48(%rbp), %eax
|
|
cmpl -44(%rbp), %eax
|
|
jl .L116
|
|
movl $0, %eax
|
|
call extendStringBuf
|
|
jmp .L115
|
|
.L116:
|
|
movl 8+stringBuf(%rip), %edx
|
|
movl -48(%rbp), %eax
|
|
addl %edx, %eax
|
|
movl %eax, 8+stringBuf(%rip)
|
|
nop
|
|
movq -8(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L117
|
|
call __stack_chk_fail@PLT
|
|
.L117:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE31:
|
|
.size vprintStringBuf, .-vprintStringBuf
|
|
.type printStringBuf, @function
|
|
printStringBuf:
|
|
.LFB32:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L119
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L119:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vprintStringBuf
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L120
|
|
call __stack_chk_fail@PLT
|
|
.L120:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE32:
|
|
.size printStringBuf, .-printStringBuf
|
|
.section .rodata
|
|
.LC38:
|
|
.string "%d"
|
|
.LC39:
|
|
.string "0x%x"
|
|
.LC40:
|
|
.string "\"%s\""
|
|
.LC41:
|
|
.string "<closure "
|
|
.LC42:
|
|
.string ", "
|
|
.LC43:
|
|
.string ">"
|
|
.LC44:
|
|
.string "["
|
|
.LC45:
|
|
.string "]"
|
|
.LC46:
|
|
.string "{"
|
|
.LC47:
|
|
.string "}"
|
|
.LC48:
|
|
.string "%s"
|
|
.LC49:
|
|
.string " ("
|
|
.LC50:
|
|
.string ")"
|
|
.align 8
|
|
.LC51:
|
|
.string "*** invalid data_header: 0x%x ***"
|
|
.text
|
|
.type printValue, @function
|
|
printValue:
|
|
.LFB33:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $64, %rsp
|
|
movq %rdi, -56(%rbp)
|
|
movq $1, -32(%rbp)
|
|
movl $1, -48(%rbp)
|
|
movq -56(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L122
|
|
movq -56(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rsi
|
|
leaq .LC38(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L122:
|
|
movq -56(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call is_valid_heap_pointer@PLT
|
|
xorl $1, %eax
|
|
testb %al, %al
|
|
je .L124
|
|
movq -56(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC39(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L124:
|
|
movq -56(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -32(%rbp)
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $7, %eax
|
|
je .L125
|
|
cmpl $7, %eax
|
|
jg .L126
|
|
cmpl $5, %eax
|
|
je .L127
|
|
cmpl $5, %eax
|
|
jg .L126
|
|
cmpl $1, %eax
|
|
je .L128
|
|
cmpl $3, %eax
|
|
je .L129
|
|
jmp .L126
|
|
.L128:
|
|
movq -32(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, %rsi
|
|
leaq .LC40(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L125:
|
|
leaq .LC41(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
movl $0, -48(%rbp)
|
|
jmp .L130
|
|
.L134:
|
|
cmpl $0, -48(%rbp)
|
|
je .L131
|
|
movq -32(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -48(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call printValue
|
|
jmp .L132
|
|
.L131:
|
|
movq -32(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -48(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
movq %rax, %rsi
|
|
leaq .LC39(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
.L132:
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%rax), %edx
|
|
movl -48(%rbp), %eax
|
|
cmpl %eax, %edx
|
|
je .L133
|
|
leaq .LC42(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
.L133:
|
|
addl $1, -48(%rbp)
|
|
.L130:
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl -48(%rbp), %edx
|
|
cmpl %eax, %edx
|
|
jb .L134
|
|
leaq .LC43(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L129:
|
|
leaq .LC44(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
movl $0, -48(%rbp)
|
|
jmp .L135
|
|
.L137:
|
|
movq -32(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -48(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call printValue
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%rax), %edx
|
|
movl -48(%rbp), %eax
|
|
cmpl %eax, %edx
|
|
je .L136
|
|
leaq .LC42(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
.L136:
|
|
addl $1, -48(%rbp)
|
|
.L135:
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl -48(%rbp), %edx
|
|
cmpl %eax, %edx
|
|
jb .L137
|
|
leaq .LC45(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L127:
|
|
movq -32(%rbp), %rax
|
|
movq %rax, -24(%rbp)
|
|
movq -24(%rbp), %rax
|
|
movl 16(%rax), %eax
|
|
movl %eax, %edi
|
|
call de_hash
|
|
movq %rax, -16(%rbp)
|
|
movq -16(%rbp), %rax
|
|
leaq .LC8(%rip), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call strcmp@PLT
|
|
testl %eax, %eax
|
|
jne .L138
|
|
movq -24(%rbp), %rax
|
|
movq %rax, -40(%rbp)
|
|
leaq .LC46(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L139
|
|
.L142:
|
|
movq -40(%rbp), %rax
|
|
movl 20(%rax), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call printValue
|
|
movq -40(%rbp), %rax
|
|
movl 24(%rax), %eax
|
|
movl %eax, -44(%rbp)
|
|
movl -44(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L147
|
|
leaq .LC42(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
movl -44(%rbp), %eax
|
|
cltq
|
|
subq $12, %rax
|
|
movq %rax, -40(%rbp)
|
|
.L139:
|
|
movq -40(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
jne .L142
|
|
jmp .L141
|
|
.L147:
|
|
nop
|
|
.L141:
|
|
leaq .LC47(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L148
|
|
.L138:
|
|
movq -16(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC48(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
movq -32(%rbp), %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
je .L148
|
|
leaq .LC49(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
movl $0, -48(%rbp)
|
|
jmp .L144
|
|
.L146:
|
|
movq -8(%rbp), %rax
|
|
leaq 20(%rax), %rdx
|
|
movl -48(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call printValue
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%rax), %edx
|
|
movl -48(%rbp), %eax
|
|
cmpl %eax, %edx
|
|
je .L145
|
|
leaq .LC42(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
.L145:
|
|
addl $1, -48(%rbp)
|
|
.L144:
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl -48(%rbp), %edx
|
|
cmpl %eax, %edx
|
|
jb .L146
|
|
leaq .LC50(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L148
|
|
.L126:
|
|
movq -32(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, %esi
|
|
leaq .LC51(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L121
|
|
.L148:
|
|
nop
|
|
.L121:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE33:
|
|
.size printValue, .-printValue
|
|
.section .rodata
|
|
.align 8
|
|
.LC52:
|
|
.string "*** non-list data_header: %s ***"
|
|
.text
|
|
.type stringcat, @function
|
|
stringcat:
|
|
.LFB34:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L161
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L151
|
|
cmpl $5, %eax
|
|
je .L152
|
|
jmp .L160
|
|
.L151:
|
|
movq -16(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, %rsi
|
|
leaq .LC48(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L150
|
|
.L152:
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %eax
|
|
movl %eax, %edi
|
|
call de_hash
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
leaq .LC8(%rip), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call strcmp@PLT
|
|
testl %eax, %eax
|
|
jne .L154
|
|
movq -16(%rbp), %rax
|
|
movq %rax, -24(%rbp)
|
|
jmp .L155
|
|
.L158:
|
|
movq -24(%rbp), %rax
|
|
movl 20(%rax), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call stringcat
|
|
movq -24(%rbp), %rax
|
|
movl 24(%rax), %eax
|
|
movl %eax, -28(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L162
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
subq $12, %rax
|
|
movq %rax, -24(%rbp)
|
|
.L155:
|
|
movq -24(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
jne .L158
|
|
jmp .L150
|
|
.L154:
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC52(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L150
|
|
.L162:
|
|
nop
|
|
jmp .L150
|
|
.L160:
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, %esi
|
|
leaq .LC51(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printStringBuf
|
|
jmp .L161
|
|
.L150:
|
|
.L161:
|
|
nop
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE34:
|
|
.size stringcat, .-stringcat
|
|
.section .rodata
|
|
.LC53:
|
|
.string "Luppercase:1"
|
|
.text
|
|
.globl Luppercase
|
|
.type Luppercase, @function
|
|
Luppercase:
|
|
.LFB35:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L164
|
|
leaq .LC53(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L164:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movl %eax, %edi
|
|
call toupper@PLT
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE35:
|
|
.size Luppercase, .-Luppercase
|
|
.section .rodata
|
|
.LC54:
|
|
.string "Llowercase:1"
|
|
.text
|
|
.globl Llowercase
|
|
.type Llowercase, @function
|
|
Llowercase:
|
|
.LFB36:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L167
|
|
leaq .LC54(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L167:
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movl %eax, %edi
|
|
call tolower@PLT
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE36:
|
|
.size Llowercase, .-Llowercase
|
|
.section .rodata
|
|
.LC55:
|
|
.string "matchSubString:1"
|
|
.LC56:
|
|
.string "string value expected in %s\n"
|
|
.LC57:
|
|
.string "matchSubString:2"
|
|
.LC58:
|
|
.string "matchSubString:3"
|
|
.text
|
|
.globl LmatchSubString
|
|
.type LmatchSubString, @function
|
|
LmatchSubString:
|
|
.LFB37:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $64, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movq %rsi, -48(%rbp)
|
|
movl %edx, -52(%rbp)
|
|
movq -48(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L170
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L170
|
|
leaq .LC55(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L170:
|
|
movq -48(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L171
|
|
movq -48(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L171
|
|
leaq .LC57(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L171:
|
|
movl -52(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L172
|
|
leaq .LC58(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L172:
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -20(%rbp)
|
|
movl -20(%rbp), %eax
|
|
movslq %eax, %rdx
|
|
movl -52(%rbp), %eax
|
|
sarl %eax
|
|
cltq
|
|
addq %rax, %rdx
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %eax
|
|
cmpq %rax, %rdx
|
|
jle .L173
|
|
movl $1, %eax
|
|
jmp .L174
|
|
.L173:
|
|
movl -20(%rbp), %eax
|
|
movslq %eax, %rdx
|
|
movl -52(%rbp), %eax
|
|
sarl %eax
|
|
movslq %eax, %rcx
|
|
movq -40(%rbp), %rax
|
|
addq %rax, %rcx
|
|
movq -48(%rbp), %rax
|
|
movq %rax, %rsi
|
|
movq %rcx, %rdi
|
|
call strncmp@PLT
|
|
testl %eax, %eax
|
|
jne .L175
|
|
movl $3, %eax
|
|
jmp .L174
|
|
.L175:
|
|
movl $1, %eax
|
|
.L174:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE37:
|
|
.size LmatchSubString, .-LmatchSubString
|
|
.section .rodata
|
|
.LC59:
|
|
.string "substring:1"
|
|
.LC60:
|
|
.string "substring:2"
|
|
.LC61:
|
|
.string "substring:3"
|
|
.align 8
|
|
.LC62:
|
|
.string "substring: index out of bounds (position=%d, length=%d, subject length=%d)"
|
|
.text
|
|
.globl Lsubstring
|
|
.type Lsubstring, @function
|
|
Lsubstring:
|
|
.LFB38:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movl %esi, -44(%rbp)
|
|
movl %edx, -48(%rbp)
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movl -44(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -24(%rbp)
|
|
movl -48(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -20(%rbp)
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L178
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L178
|
|
leaq .LC59(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L178:
|
|
movl -44(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L179
|
|
leaq .LC60(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L179:
|
|
movl -48(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L180
|
|
leaq .LC61(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L180:
|
|
movl -24(%rbp), %edx
|
|
movl -20(%rbp), %eax
|
|
addl %edx, %eax
|
|
movl %eax, %edx
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
cmpl %edx, %eax
|
|
jb .L181
|
|
movb $0, -25(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -25(%rbp)
|
|
cmpb $0, -25(%rbp)
|
|
je .L182
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L182:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L183
|
|
leaq __PRETTY_FUNCTION__.13(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $453, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L183:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L184
|
|
leaq __PRETTY_FUNCTION__.13(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $453, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L184:
|
|
leaq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movl -20(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_string@PLT
|
|
movq %rax, -8(%rbp)
|
|
leaq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movl -20(%rbp), %eax
|
|
cltq
|
|
movq -40(%rbp), %rcx
|
|
movl -24(%rbp), %edx
|
|
movslq %edx, %rdx
|
|
leaq (%rcx,%rdx), %rsi
|
|
movq -8(%rbp), %rdx
|
|
leaq 16(%rdx), %rcx
|
|
movq %rax, %rdx
|
|
movq %rcx, %rdi
|
|
call strncpy@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L185
|
|
leaq __PRETTY_FUNCTION__.13(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $461, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L185:
|
|
cmpb $0, -25(%rbp)
|
|
je .L186
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L186:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
jmp .L177
|
|
.L181:
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %ecx
|
|
movl -20(%rbp), %edx
|
|
movl -24(%rbp), %eax
|
|
movl %eax, %esi
|
|
leaq .LC62(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L177:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE38:
|
|
.size Lsubstring, .-Lsubstring
|
|
.section .rodata
|
|
.LC63:
|
|
.string "%"
|
|
.text
|
|
.globl Lregexp
|
|
.type Lregexp, @function
|
|
Lregexp:
|
|
.LFB39:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movl $64, %edi
|
|
call malloc@PLT
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl $64, %edx
|
|
movl $0, %esi
|
|
movq %rax, %rdi
|
|
call memset@PLT
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call strlen@PLT
|
|
movq %rax, %rcx
|
|
movq -8(%rbp), %rdx
|
|
movq -24(%rbp), %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call re_compile_pattern@PLT
|
|
movl %eax, -12(%rbp)
|
|
cmpl $0, -12(%rbp)
|
|
je .L189
|
|
movl -12(%rbp), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rsi
|
|
leaq .LC63(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L189:
|
|
movq -8(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE39:
|
|
.size Lregexp, .-Lregexp
|
|
.section .rodata
|
|
.LC64:
|
|
.string "regexpMatch:1"
|
|
.LC65:
|
|
.string "regexpMatch:2"
|
|
.LC66:
|
|
.string "regexpMatch:3"
|
|
.text
|
|
.globl LregexpMatch
|
|
.type LregexpMatch, @function
|
|
LregexpMatch:
|
|
.LFB40:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movl %edx, -36(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L192
|
|
leaq .LC64(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L192:
|
|
movq -32(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L193
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L193
|
|
leaq .LC65(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L193:
|
|
movl -36(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L194
|
|
leaq .LC66(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L194:
|
|
movl -36(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edi
|
|
movq -32(%rbp), %rsi
|
|
movq -24(%rbp), %rax
|
|
movl $0, %r8d
|
|
movl %edx, %ecx
|
|
movl %edi, %edx
|
|
movq %rax, %rdi
|
|
call re_match@PLT
|
|
movl %eax, -4(%rbp)
|
|
cmpl $0, -4(%rbp)
|
|
je .L195
|
|
movl -4(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L196
|
|
.L195:
|
|
movl -4(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L196:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE40:
|
|
.size LregexpMatch, .-LregexpMatch
|
|
.section .rodata
|
|
.align 8
|
|
.LC67:
|
|
.string "invalid data_header %d in clone *****\n"
|
|
.text
|
|
.globl Lclone
|
|
.type Lclone, @function
|
|
Lclone:
|
|
.LFB41:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $64, %rsp
|
|
movq %rdi, -56(%rbp)
|
|
movq -56(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L198
|
|
movq -56(%rbp), %rax
|
|
jmp .L199
|
|
.L198:
|
|
movb $0, -33(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -33(%rbp)
|
|
cmpb $0, -33(%rbp)
|
|
je .L200
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L200:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L201
|
|
leaq __PRETTY_FUNCTION__.12(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $512, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L201:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L202
|
|
leaq __PRETTY_FUNCTION__.12(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $512, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L202:
|
|
movq -56(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -32(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -28(%rbp)
|
|
leaq -56(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
cmpl $7, -32(%rbp)
|
|
je .L203
|
|
cmpl $7, -32(%rbp)
|
|
jg .L204
|
|
cmpl $5, -32(%rbp)
|
|
je .L205
|
|
cmpl $5, -32(%rbp)
|
|
jg .L204
|
|
cmpl $1, -32(%rbp)
|
|
je .L206
|
|
cmpl $3, -32(%rbp)
|
|
je .L207
|
|
jmp .L204
|
|
.L206:
|
|
movq -56(%rbp), %rax
|
|
subq $12, %rax
|
|
addq $16, %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -24(%rbp)
|
|
jmp .L208
|
|
.L207:
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_array@PLT
|
|
movq %rax, -8(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call array_size@PLT
|
|
movq %rax, %rdx
|
|
movq -56(%rbp), %rax
|
|
leaq -12(%rax), %rcx
|
|
movq -8(%rbp), %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call memcpy@PLT
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, -24(%rbp)
|
|
jmp .L208
|
|
.L203:
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_closure@PLT
|
|
movq %rax, -8(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call closure_size@PLT
|
|
movq %rax, %rdx
|
|
movq -56(%rbp), %rax
|
|
leaq -12(%rax), %rcx
|
|
movq -8(%rbp), %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call memcpy@PLT
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, -24(%rbp)
|
|
jmp .L208
|
|
.L205:
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_sexp@PLT
|
|
movq %rax, -8(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
movq %rax, %rdi
|
|
call sexp_size@PLT
|
|
movq %rax, %rdx
|
|
movq -56(%rbp), %rax
|
|
leaq -12(%rax), %rcx
|
|
movq -8(%rbp), %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call memcpy@PLT
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, -24(%rbp)
|
|
jmp .L208
|
|
.L204:
|
|
movl -32(%rbp), %eax
|
|
movl %eax, %esi
|
|
leaq .LC67(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L208:
|
|
leaq -56(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L209
|
|
leaq __PRETTY_FUNCTION__.12(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $542, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L209:
|
|
cmpb $0, -33(%rbp)
|
|
je .L210
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L210:
|
|
movq -24(%rbp), %rax
|
|
.L199:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE41:
|
|
.size Lclone, .-Lclone
|
|
.section .rodata
|
|
.align 8
|
|
.LC68:
|
|
.string "invalid data_header %d in hash *****\n"
|
|
.text
|
|
.globl inner_hash
|
|
.type inner_hash, @function
|
|
inner_hash:
|
|
.LFB42:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $64, %rsp
|
|
movl %edi, -52(%rbp)
|
|
movl %esi, -56(%rbp)
|
|
movq %rdx, -64(%rbp)
|
|
cmpl $3, -52(%rbp)
|
|
jle .L212
|
|
movl -56(%rbp), %eax
|
|
jmp .L213
|
|
.L212:
|
|
movq -64(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L214
|
|
movq -64(%rbp), %rax
|
|
sarq %rax
|
|
movl %eax, %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
jmp .L213
|
|
.L214:
|
|
movq -64(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call is_valid_heap_pointer@PLT
|
|
testb %al, %al
|
|
je .L215
|
|
movq -64(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -28(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -36(%rbp)
|
|
movl -28(%rbp), %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, -56(%rbp)
|
|
movl -36(%rbp), %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, -56(%rbp)
|
|
cmpl $7, -28(%rbp)
|
|
je .L216
|
|
cmpl $7, -28(%rbp)
|
|
jg .L217
|
|
cmpl $5, -28(%rbp)
|
|
je .L218
|
|
cmpl $5, -28(%rbp)
|
|
jg .L217
|
|
cmpl $1, -28(%rbp)
|
|
je .L219
|
|
cmpl $3, -28(%rbp)
|
|
je .L220
|
|
jmp .L217
|
|
.L219:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, -16(%rbp)
|
|
jmp .L221
|
|
.L222:
|
|
movq -16(%rbp), %rax
|
|
leaq 1(%rax), %rdx
|
|
movq %rdx, -16(%rbp)
|
|
movzbl (%rax), %eax
|
|
movsbl %al, %eax
|
|
movl %eax, -20(%rbp)
|
|
movl -20(%rbp), %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, -56(%rbp)
|
|
.L221:
|
|
movq -16(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
testb %al, %al
|
|
jne .L222
|
|
movl -56(%rbp), %eax
|
|
jmp .L213
|
|
.L216:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq (%rax), %rax
|
|
movl %eax, %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, -56(%rbp)
|
|
movl $1, -32(%rbp)
|
|
jmp .L223
|
|
.L220:
|
|
movl $0, -32(%rbp)
|
|
jmp .L223
|
|
.L218:
|
|
movq -64(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %eax
|
|
movl %eax, -24(%rbp)
|
|
movl -24(%rbp), %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, -56(%rbp)
|
|
movl $1, -32(%rbp)
|
|
addl $1, -36(%rbp)
|
|
jmp .L223
|
|
.L217:
|
|
movl -28(%rbp), %eax
|
|
movl %eax, %esi
|
|
leaq .LC68(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L223:
|
|
jmp .L224
|
|
.L225:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -32(%rbp), %eax
|
|
cltq
|
|
salq $3, %rax
|
|
addq %rdx, %rax
|
|
movq (%rax), %rdx
|
|
movl -52(%rbp), %eax
|
|
leal 1(%rax), %ecx
|
|
movl -56(%rbp), %eax
|
|
movl %eax, %esi
|
|
movl %ecx, %edi
|
|
call inner_hash
|
|
movl %eax, -56(%rbp)
|
|
addl $1, -32(%rbp)
|
|
.L224:
|
|
movl -32(%rbp), %eax
|
|
cmpl -36(%rbp), %eax
|
|
jl .L225
|
|
movl -56(%rbp), %eax
|
|
jmp .L213
|
|
.L215:
|
|
movq -64(%rbp), %rax
|
|
movl %eax, %edx
|
|
movl -56(%rbp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
.L213:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE42:
|
|
.size inner_hash, .-inner_hash
|
|
.globl LstringInt
|
|
.type LstringInt, @function
|
|
LstringInt:
|
|
.LFB43:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
leaq -12(%rbp), %rdx
|
|
movq -24(%rbp), %rax
|
|
leaq .LC38(%rip), %rcx
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call __isoc23_sscanf@PLT
|
|
movl -12(%rbp), %eax
|
|
cltq
|
|
addq %rax, %rax
|
|
orq $1, %rax
|
|
movq -8(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L228
|
|
call __stack_chk_fail@PLT
|
|
.L228:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE43:
|
|
.size LstringInt, .-LstringInt
|
|
.globl Lhash
|
|
.type Lhash, @function
|
|
Lhash:
|
|
.LFB44:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdx
|
|
movl $0, %esi
|
|
movl $0, %edi
|
|
call inner_hash
|
|
addl %eax, %eax
|
|
andl $8388606, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE44:
|
|
.size Lhash, .-Lhash
|
|
.globl LflatCompare
|
|
.type LflatCompare, @function
|
|
LflatCompare:
|
|
.LFB45:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L232
|
|
movq -16(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L233
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
sarq %rax
|
|
subq %rax, %rdx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L234
|
|
.L233:
|
|
movl $-1, %eax
|
|
jmp .L234
|
|
.L232:
|
|
movq -8(%rbp), %rax
|
|
subq -16(%rbp), %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L234:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE45:
|
|
.size LflatCompare, .-LflatCompare
|
|
.section .rodata
|
|
.align 8
|
|
.LC69:
|
|
.string "invalid data_header %d in compare *****\n"
|
|
.text
|
|
.globl Lcompare
|
|
.type Lcompare, @function
|
|
Lcompare:
|
|
.LFB46:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $80, %rsp
|
|
movq %rdi, -72(%rbp)
|
|
movq %rsi, -80(%rbp)
|
|
movq -72(%rbp), %rax
|
|
cmpq -80(%rbp), %rax
|
|
jne .L236
|
|
movl $1, %eax
|
|
jmp .L237
|
|
.L236:
|
|
movq -72(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L238
|
|
movq -80(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L239
|
|
movq -72(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rdx
|
|
movq -80(%rbp), %rax
|
|
sarq %rax
|
|
subq %rax, %rdx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L239:
|
|
movl $-1, %eax
|
|
jmp .L237
|
|
.L238:
|
|
movq -80(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L240
|
|
movl $3, %eax
|
|
jmp .L237
|
|
.L240:
|
|
movq -72(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call is_valid_heap_pointer@PLT
|
|
testb %al, %al
|
|
je .L241
|
|
movq -80(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call is_valid_heap_pointer@PLT
|
|
testb %al, %al
|
|
je .L242
|
|
movq -72(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -80(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -44(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -40(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -36(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -32(%rbp)
|
|
movl $0, -48(%rbp)
|
|
movl -44(%rbp), %eax
|
|
cmpl -40(%rbp), %eax
|
|
je .L243
|
|
movl -44(%rbp), %eax
|
|
subl -40(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L243:
|
|
cmpl $7, -44(%rbp)
|
|
je .L244
|
|
cmpl $7, -44(%rbp)
|
|
jg .L245
|
|
cmpl $5, -44(%rbp)
|
|
je .L246
|
|
cmpl $5, -44(%rbp)
|
|
jg .L245
|
|
cmpl $1, -44(%rbp)
|
|
je .L247
|
|
cmpl $3, -44(%rbp)
|
|
je .L248
|
|
jmp .L245
|
|
.L247:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movq -16(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call strcmp@PLT
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L244:
|
|
movq -16(%rbp), %rax
|
|
addq $16, %rax
|
|
movq (%rax), %rdx
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq (%rax), %rax
|
|
cmpq %rax, %rdx
|
|
je .L249
|
|
movq -16(%rbp), %rax
|
|
addq $16, %rax
|
|
movq (%rax), %rdx
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq (%rax), %rax
|
|
subq %rax, %rdx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L249:
|
|
movl -36(%rbp), %eax
|
|
cmpl -32(%rbp), %eax
|
|
je .L250
|
|
movl -36(%rbp), %eax
|
|
subl -32(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L250:
|
|
movl $1, -52(%rbp)
|
|
jmp .L251
|
|
.L248:
|
|
movl -36(%rbp), %eax
|
|
cmpl -32(%rbp), %eax
|
|
je .L252
|
|
movl -36(%rbp), %eax
|
|
subl -32(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L252:
|
|
movl $0, -52(%rbp)
|
|
jmp .L251
|
|
.L246:
|
|
movq -72(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %eax
|
|
movl %eax, -28(%rbp)
|
|
movq -80(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %eax
|
|
movl %eax, -24(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cmpl -24(%rbp), %eax
|
|
je .L253
|
|
movl -28(%rbp), %eax
|
|
subl -24(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L253:
|
|
movl -36(%rbp), %eax
|
|
cmpl -32(%rbp), %eax
|
|
je .L254
|
|
movl -36(%rbp), %eax
|
|
subl -32(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L237
|
|
.L254:
|
|
movl $0, -52(%rbp)
|
|
movl $1, -48(%rbp)
|
|
jmp .L251
|
|
.L245:
|
|
movl -44(%rbp), %eax
|
|
movl %eax, %esi
|
|
leaq .LC69(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L251:
|
|
jmp .L255
|
|
.L257:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rcx
|
|
movl -52(%rbp), %edx
|
|
movl -48(%rbp), %eax
|
|
addl %edx, %eax
|
|
cltq
|
|
salq $3, %rax
|
|
addq %rcx, %rax
|
|
movq (%rax), %rdx
|
|
movq -16(%rbp), %rax
|
|
leaq 16(%rax), %rsi
|
|
movl -52(%rbp), %ecx
|
|
movl -48(%rbp), %eax
|
|
addl %ecx, %eax
|
|
cltq
|
|
salq $3, %rax
|
|
addq %rsi, %rax
|
|
movq (%rax), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call Lcompare
|
|
movl %eax, -20(%rbp)
|
|
cmpl $1, -20(%rbp)
|
|
je .L256
|
|
movl -20(%rbp), %eax
|
|
jmp .L237
|
|
.L256:
|
|
addl $1, -52(%rbp)
|
|
.L255:
|
|
movl -52(%rbp), %eax
|
|
cmpl -36(%rbp), %eax
|
|
jl .L257
|
|
movl $1, %eax
|
|
jmp .L237
|
|
.L242:
|
|
movl $-1, %eax
|
|
jmp .L237
|
|
.L241:
|
|
movq -80(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call is_valid_heap_pointer@PLT
|
|
testb %al, %al
|
|
je .L258
|
|
movl $3, %eax
|
|
jmp .L237
|
|
.L258:
|
|
movq -72(%rbp), %rax
|
|
subq -80(%rbp), %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L237:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE46:
|
|
.size Lcompare, .-Lcompare
|
|
.section .rodata
|
|
.LC70:
|
|
.string ".elem:1"
|
|
.LC71:
|
|
.string ".elem:2"
|
|
.text
|
|
.globl Belem
|
|
.type Belem, @function
|
|
Belem:
|
|
.LFB47:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movl %esi, -28(%rbp)
|
|
movq $1, -8(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L260
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L260
|
|
leaq .LC70(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L260:
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L261
|
|
leaq .LC71(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L261:
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
sarl -28(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L262
|
|
cmpl $5, %eax
|
|
je .L263
|
|
jmp .L266
|
|
.L262:
|
|
movq -8(%rbp), %rdx
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
movzbl 16(%rdx,%rax), %eax
|
|
movsbq %al, %rax
|
|
addq %rax, %rax
|
|
orq $1, %rax
|
|
jmp .L265
|
|
.L263:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
addq $1, %rax
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
jmp .L265
|
|
.L266:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rdx, %rax
|
|
movl (%rax), %eax
|
|
cltq
|
|
.L265:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE47:
|
|
.size Belem, .-Belem
|
|
.section .rodata
|
|
.LC72:
|
|
.string "makeArray:1"
|
|
.text
|
|
.globl LmakeArray
|
|
.type LmakeArray, @function
|
|
LmakeArray:
|
|
.LFB48:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movl %edi, -36(%rbp)
|
|
movl -36(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L268
|
|
leaq .LC72(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L268:
|
|
movb $0, -21(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -21(%rbp)
|
|
cmpb $0, -21(%rbp)
|
|
je .L269
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L269:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L270
|
|
leaq __PRETTY_FUNCTION__.11(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $697, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L270:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L271
|
|
leaq __PRETTY_FUNCTION__.11(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $697, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L271:
|
|
movl -36(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -20(%rbp)
|
|
movl -20(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_array@PLT
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rax, -16(%rbp)
|
|
jmp .L272
|
|
.L273:
|
|
movq -16(%rbp), %rax
|
|
leaq 4(%rax), %rdx
|
|
movq %rdx, -16(%rbp)
|
|
movl $1, (%rax)
|
|
.L272:
|
|
movl -20(%rbp), %eax
|
|
leal -1(%rax), %edx
|
|
movl %edx, -20(%rbp)
|
|
testl %eax, %eax
|
|
jne .L273
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L274
|
|
leaq __PRETTY_FUNCTION__.11(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $705, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L274:
|
|
cmpb $0, -21(%rbp)
|
|
je .L275
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L275:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE48:
|
|
.size LmakeArray, .-LmakeArray
|
|
.section .rodata
|
|
.LC73:
|
|
.string "makeString"
|
|
.text
|
|
.globl LmakeString
|
|
.type LmakeString, @function
|
|
LmakeString:
|
|
.LFB49:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movl %edi, -20(%rbp)
|
|
movl -20(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -12(%rbp)
|
|
movl -20(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L278
|
|
leaq .LC73(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L278:
|
|
movb $0, -13(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -13(%rbp)
|
|
cmpb $0, -13(%rbp)
|
|
je .L279
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L279:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L280
|
|
leaq __PRETTY_FUNCTION__.10(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $716, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L280:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L281
|
|
leaq __PRETTY_FUNCTION__.10(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $716, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L281:
|
|
movl -12(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_string@PLT
|
|
movq %rax, -8(%rbp)
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L282
|
|
leaq __PRETTY_FUNCTION__.10(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $720, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L282:
|
|
cmpb $0, -13(%rbp)
|
|
je .L283
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L283:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE49:
|
|
.size LmakeString, .-LmakeString
|
|
.globl Bstring
|
|
.type Bstring, @function
|
|
Bstring:
|
|
.LFB50:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call strlen@PLT
|
|
movl %eax, -12(%rbp)
|
|
movq $0, -8(%rbp)
|
|
movb $0, -13(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -13(%rbp)
|
|
cmpb $0, -13(%rbp)
|
|
je .L286
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L286:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L287
|
|
leaq __PRETTY_FUNCTION__.9(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $729, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L287:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L288
|
|
leaq __PRETTY_FUNCTION__.9(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $729, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L288:
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movl -12(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edi
|
|
call LmakeString
|
|
movq %rax, -8(%rbp)
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movl -12(%rbp), %eax
|
|
addl $1, %eax
|
|
movslq %eax, %rdx
|
|
movq -24(%rbp), %rax
|
|
movq -8(%rbp), %rcx
|
|
subq $12, %rcx
|
|
addq $16, %rcx
|
|
movq %rax, %rsi
|
|
movq %rcx, %rdi
|
|
call strncpy@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L289
|
|
leaq __PRETTY_FUNCTION__.9(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $736, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L289:
|
|
cmpb $0, -13(%rbp)
|
|
je .L290
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L290:
|
|
movq -8(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE50:
|
|
.size Bstring, .-Bstring
|
|
.globl Lstringcat
|
|
.type Lstringcat, @function
|
|
Lstringcat:
|
|
.LFB51:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movb $0, -9(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -9(%rbp)
|
|
cmpb $0, -9(%rbp)
|
|
je .L293
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L293:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L294
|
|
leaq __PRETTY_FUNCTION__.8(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $746, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L294:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L295
|
|
leaq __PRETTY_FUNCTION__.8(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $746, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L295:
|
|
movl $0, %eax
|
|
call createStringBuf
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call stringcat
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movq stringBuf(%rip), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -8(%rbp)
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movl $0, %eax
|
|
call deleteStringBuf
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L296
|
|
leaq __PRETTY_FUNCTION__.8(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $757, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L296:
|
|
cmpb $0, -9(%rbp)
|
|
je .L297
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L297:
|
|
movq -8(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE51:
|
|
.size Lstringcat, .-Lstringcat
|
|
.globl Lstring
|
|
.type Lstring, @function
|
|
Lstring:
|
|
.LFB52:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq $1, -8(%rbp)
|
|
movb $0, -9(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -9(%rbp)
|
|
cmpb $0, -9(%rbp)
|
|
je .L300
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L300:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L301
|
|
leaq __PRETTY_FUNCTION__.7(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $765, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L301:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L302
|
|
leaq __PRETTY_FUNCTION__.7(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $765, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L302:
|
|
movl $0, %eax
|
|
call createStringBuf
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call printValue
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movq stringBuf(%rip), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -8(%rbp)
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movl $0, %eax
|
|
call deleteStringBuf
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L303
|
|
leaq __PRETTY_FUNCTION__.7(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $776, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L303:
|
|
cmpb $0, -9(%rbp)
|
|
je .L304
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L304:
|
|
movq -8(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE52:
|
|
.size Lstring, .-Lstring
|
|
.globl Bclosure
|
|
.type Bclosure, @function
|
|
Bclosure:
|
|
.LFB53:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $256, %rsp
|
|
movl %edi, -244(%rbp)
|
|
movq %rsi, -256(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L307
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L307:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl -244(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -232(%rbp)
|
|
movb $0, -237(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -237(%rbp)
|
|
cmpb $0, -237(%rbp)
|
|
je .L308
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L308:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L309
|
|
leaq __PRETTY_FUNCTION__.6(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $789, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L309:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L310
|
|
leaq __PRETTY_FUNCTION__.6(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $789, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L310:
|
|
movq %rbp, %rax
|
|
addq $48, %rax
|
|
movq %rax, -216(%rbp)
|
|
movl $0, -236(%rbp)
|
|
jmp .L311
|
|
.L312:
|
|
movq -216(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
addl $1, -236(%rbp)
|
|
addq $8, -216(%rbp)
|
|
.L311:
|
|
movl -236(%rbp), %eax
|
|
cmpl -232(%rbp), %eax
|
|
jl .L312
|
|
movl -232(%rbp), %eax
|
|
addl $1, %eax
|
|
movl %eax, %edi
|
|
call alloc_closure@PLT
|
|
movq %rax, -224(%rbp)
|
|
leaq -224(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movq -224(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movq -256(%rbp), %rax
|
|
movq %rax, (%rdx)
|
|
movl $16, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
movl $0, -236(%rbp)
|
|
jmp .L313
|
|
.L316:
|
|
movl -208(%rbp), %eax
|
|
cmpl $47, %eax
|
|
ja .L314
|
|
movq -192(%rbp), %rax
|
|
movl -208(%rbp), %edx
|
|
movl %edx, %edx
|
|
addq %rdx, %rax
|
|
movl -208(%rbp), %edx
|
|
addl $8, %edx
|
|
movl %edx, -208(%rbp)
|
|
jmp .L315
|
|
.L314:
|
|
movq -200(%rbp), %rax
|
|
leaq 8(%rax), %rdx
|
|
movq %rdx, -200(%rbp)
|
|
.L315:
|
|
movl (%rax), %eax
|
|
movl %eax, -228(%rbp)
|
|
movq -224(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -236(%rbp), %eax
|
|
cltq
|
|
addq $1, %rax
|
|
salq $2, %rax
|
|
addq %rax, %rdx
|
|
movl -228(%rbp), %eax
|
|
movl %eax, (%rdx)
|
|
addl $1, -236(%rbp)
|
|
.L313:
|
|
movl -236(%rbp), %eax
|
|
cmpl -232(%rbp), %eax
|
|
jl .L316
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L317
|
|
leaq __PRETTY_FUNCTION__.6(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $807, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L317:
|
|
cmpb $0, -237(%rbp)
|
|
je .L318
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L318:
|
|
leaq -224(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
subq $8, -216(%rbp)
|
|
movl $0, -236(%rbp)
|
|
jmp .L319
|
|
.L320:
|
|
movq -216(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
addl $1, -236(%rbp)
|
|
subq $8, -216(%rbp)
|
|
.L319:
|
|
movl -236(%rbp), %eax
|
|
cmpl -232(%rbp), %eax
|
|
jl .L320
|
|
movq -224(%rbp), %rax
|
|
addq $16, %rax
|
|
movq -184(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L322
|
|
call __stack_chk_fail@PLT
|
|
.L322:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE53:
|
|
.size Bclosure, .-Bclosure
|
|
.globl Barray
|
|
.type Barray, @function
|
|
Barray:
|
|
.LFB54:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $256, %rsp
|
|
movl %edi, -244(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L324
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L324:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl -244(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -224(%rbp)
|
|
movb $0, -229(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -229(%rbp)
|
|
cmpb $0, -229(%rbp)
|
|
je .L325
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L325:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L326
|
|
leaq __PRETTY_FUNCTION__.5(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $821, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L326:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L327
|
|
leaq __PRETTY_FUNCTION__.5(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $821, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L327:
|
|
movl -224(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_array@PLT
|
|
movq %rax, -216(%rbp)
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
movl $0, -228(%rbp)
|
|
jmp .L328
|
|
.L331:
|
|
movl -208(%rbp), %eax
|
|
cmpl $47, %eax
|
|
ja .L329
|
|
movq -192(%rbp), %rax
|
|
movl -208(%rbp), %edx
|
|
movl %edx, %edx
|
|
addq %rdx, %rax
|
|
movl -208(%rbp), %edx
|
|
addl $8, %edx
|
|
movl %edx, -208(%rbp)
|
|
jmp .L330
|
|
.L329:
|
|
movq -200(%rbp), %rax
|
|
leaq 8(%rax), %rdx
|
|
movq %rdx, -200(%rbp)
|
|
.L330:
|
|
movl (%rax), %eax
|
|
movl %eax, -220(%rbp)
|
|
movq -216(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -228(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rax, %rdx
|
|
movl -220(%rbp), %eax
|
|
movl %eax, (%rdx)
|
|
addl $1, -228(%rbp)
|
|
.L328:
|
|
movl -228(%rbp), %eax
|
|
cmpl -224(%rbp), %eax
|
|
jl .L331
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L332
|
|
leaq __PRETTY_FUNCTION__.5(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $834, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L332:
|
|
cmpb $0, -229(%rbp)
|
|
je .L333
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L333:
|
|
movq -216(%rbp), %rax
|
|
addq $16, %rax
|
|
movq -184(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L335
|
|
call __stack_chk_fail@PLT
|
|
.L335:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE54:
|
|
.size Barray, .-Barray
|
|
.globl Bsexp
|
|
.type Bsexp, @function
|
|
Bsexp:
|
|
.LFB55:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $272, %rsp
|
|
movl %edi, -260(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L337
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L337:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl -260(%rbp), %eax
|
|
sarl %eax
|
|
movl %eax, -236(%rbp)
|
|
movb $0, -241(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -241(%rbp)
|
|
cmpb $0, -241(%rbp)
|
|
je .L338
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L338:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L339
|
|
leaq __PRETTY_FUNCTION__.4(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $850, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L339:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L340
|
|
leaq __PRETTY_FUNCTION__.4(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $850, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L340:
|
|
movl -236(%rbp), %eax
|
|
subl $1, %eax
|
|
movl %eax, -232(%rbp)
|
|
movl -232(%rbp), %eax
|
|
movl %eax, %edi
|
|
call alloc_sexp@PLT
|
|
movq %rax, -224(%rbp)
|
|
movq -224(%rbp), %rax
|
|
movl $0, 16(%rax)
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
movl $1, -240(%rbp)
|
|
jmp .L341
|
|
.L344:
|
|
movl -208(%rbp), %eax
|
|
cmpl $47, %eax
|
|
ja .L342
|
|
movq -192(%rbp), %rax
|
|
movl -208(%rbp), %edx
|
|
movl %edx, %edx
|
|
addq %rdx, %rax
|
|
movl -208(%rbp), %edx
|
|
addl $8, %edx
|
|
movl %edx, -208(%rbp)
|
|
jmp .L343
|
|
.L342:
|
|
movq -200(%rbp), %rax
|
|
leaq 8(%rax), %rdx
|
|
movq %rdx, -200(%rbp)
|
|
.L343:
|
|
movl (%rax), %eax
|
|
movl %eax, -228(%rbp)
|
|
movl -228(%rbp), %eax
|
|
cltq
|
|
movq %rax, -216(%rbp)
|
|
movq -224(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movl -240(%rbp), %eax
|
|
cltq
|
|
salq $2, %rax
|
|
addq %rax, %rdx
|
|
movl -228(%rbp), %eax
|
|
movl %eax, (%rdx)
|
|
addl $1, -240(%rbp)
|
|
.L341:
|
|
movl -240(%rbp), %eax
|
|
cmpl -236(%rbp), %eax
|
|
jl .L344
|
|
movl -208(%rbp), %eax
|
|
cmpl $47, %eax
|
|
ja .L345
|
|
movq -192(%rbp), %rax
|
|
movl -208(%rbp), %edx
|
|
movl %edx, %edx
|
|
addq %rdx, %rax
|
|
movl -208(%rbp), %edx
|
|
addl $8, %edx
|
|
movl %edx, -208(%rbp)
|
|
jmp .L346
|
|
.L345:
|
|
movq -200(%rbp), %rax
|
|
leaq 8(%rax), %rdx
|
|
movq %rdx, -200(%rbp)
|
|
.L346:
|
|
movl (%rax), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movq -224(%rbp), %rax
|
|
movl %edx, 16(%rax)
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L347
|
|
leaq __PRETTY_FUNCTION__.4(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $868, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L347:
|
|
cmpb $0, -241(%rbp)
|
|
je .L348
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L348:
|
|
movq -224(%rbp), %rax
|
|
addq $16, %rax
|
|
movq -184(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L350
|
|
call __stack_chk_fail@PLT
|
|
.L350:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE55:
|
|
.size Bsexp, .-Bsexp
|
|
.globl Btag
|
|
.type Btag, @function
|
|
Btag:
|
|
.LFB56:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -24(%rbp)
|
|
movl %esi, -28(%rbp)
|
|
movl %edx, -32(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L352
|
|
movl $1, %eax
|
|
jmp .L353
|
|
.L352:
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L354
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movl 16(%rax), %edx
|
|
movl -28(%rbp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jne .L354
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -32(%rbp), %eax
|
|
sarl %eax
|
|
cltq
|
|
cmpq %rax, %rdx
|
|
jne .L354
|
|
movl $1, %eax
|
|
jmp .L355
|
|
.L354:
|
|
movl $0, %eax
|
|
.L355:
|
|
cltq
|
|
addq %rax, %rax
|
|
orq $1, %rax
|
|
.L353:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE56:
|
|
.size Btag, .-Btag
|
|
.globl get_tag
|
|
.type get_tag, @function
|
|
get_tag:
|
|
.LFB57:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE57:
|
|
.size get_tag, .-get_tag
|
|
.globl get_len
|
|
.type get_len, @function
|
|
get_len:
|
|
.LFB58:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE58:
|
|
.size get_len, .-get_len
|
|
.globl Barray_patt
|
|
.type Barray_patt, @function
|
|
Barray_patt:
|
|
.LFB59:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movl %esi, -28(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L361
|
|
movl $1, %eax
|
|
jmp .L362
|
|
.L361:
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call get_tag
|
|
cmpl $3, %eax
|
|
jne .L363
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call get_len
|
|
movl -28(%rbp), %edx
|
|
sarl %edx
|
|
cmpl %edx, %eax
|
|
jne .L363
|
|
movl $1, %eax
|
|
jmp .L364
|
|
.L363:
|
|
movl $0, %eax
|
|
.L364:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L362:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE59:
|
|
.size Barray_patt, .-Barray_patt
|
|
.section .rodata
|
|
.LC74:
|
|
.string ".string_patt:2"
|
|
.text
|
|
.globl Bstring_patt
|
|
.type Bstring_patt, @function
|
|
Bstring_patt:
|
|
.LFB60:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movq $1, -16(%rbp)
|
|
movq $1, -8(%rbp)
|
|
movq -32(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L366
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L366
|
|
leaq .LC74(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L366:
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L367
|
|
movl $1, %eax
|
|
jmp .L368
|
|
.L367:
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L369
|
|
movl $1, %eax
|
|
jmp .L368
|
|
.L369:
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movq -16(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call strcmp@PLT
|
|
testl %eax, %eax
|
|
jne .L370
|
|
movl $3, %eax
|
|
jmp .L368
|
|
.L370:
|
|
movl $1, %eax
|
|
.L368:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE60:
|
|
.size Bstring_patt, .-Bstring_patt
|
|
.globl Bclosure_tag_patt
|
|
.type Bclosure_tag_patt, @function
|
|
Bclosure_tag_patt:
|
|
.LFB61:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L373
|
|
movl $1, %eax
|
|
jmp .L374
|
|
.L373:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $7, %eax
|
|
jne .L375
|
|
movl $3, %eax
|
|
jmp .L374
|
|
.L375:
|
|
movl $1, %eax
|
|
.L374:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE61:
|
|
.size Bclosure_tag_patt, .-Bclosure_tag_patt
|
|
.globl Bboxed_patt
|
|
.type Bboxed_patt, @function
|
|
Bboxed_patt:
|
|
.LFB62:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L378
|
|
movl $3, %eax
|
|
jmp .L380
|
|
.L378:
|
|
movl $1, %eax
|
|
.L380:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE62:
|
|
.size Bboxed_patt, .-Bboxed_patt
|
|
.globl Bunboxed_patt
|
|
.type Bunboxed_patt, @function
|
|
Bunboxed_patt:
|
|
.LFB63:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
addl %eax, %eax
|
|
andl $2, %eax
|
|
orl $1, %eax
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE63:
|
|
.size Bunboxed_patt, .-Bunboxed_patt
|
|
.globl Barray_tag_patt
|
|
.type Barray_tag_patt, @function
|
|
Barray_tag_patt:
|
|
.LFB64:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L384
|
|
movl $1, %eax
|
|
jmp .L385
|
|
.L384:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $3, %eax
|
|
jne .L386
|
|
movl $3, %eax
|
|
jmp .L385
|
|
.L386:
|
|
movl $1, %eax
|
|
.L385:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE64:
|
|
.size Barray_tag_patt, .-Barray_tag_patt
|
|
.globl Bstring_tag_patt
|
|
.type Bstring_tag_patt, @function
|
|
Bstring_tag_patt:
|
|
.LFB65:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L389
|
|
movl $1, %eax
|
|
jmp .L390
|
|
.L389:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
jne .L391
|
|
movl $3, %eax
|
|
jmp .L390
|
|
.L391:
|
|
movl $1, %eax
|
|
.L390:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE65:
|
|
.size Bstring_tag_patt, .-Bstring_tag_patt
|
|
.globl Bsexp_tag_patt
|
|
.type Bsexp_tag_patt, @function
|
|
Bsexp_tag_patt:
|
|
.LFB66:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L394
|
|
movl $1, %eax
|
|
jmp .L395
|
|
.L394:
|
|
movq -8(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L396
|
|
movl $3, %eax
|
|
jmp .L395
|
|
.L396:
|
|
movl $1, %eax
|
|
.L395:
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE66:
|
|
.size Bsexp_tag_patt, .-Bsexp_tag_patt
|
|
.section .rodata
|
|
.LC75:
|
|
.string ".sta:3"
|
|
.text
|
|
.globl Bsta
|
|
.type Bsta, @function
|
|
Bsta:
|
|
.LFB67:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movl %esi, -28(%rbp)
|
|
movq %rdx, -40(%rbp)
|
|
movl -28(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L399
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L400
|
|
leaq .LC75(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L400:
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L401
|
|
cmpl $5, %eax
|
|
je .L402
|
|
jmp .L407
|
|
.L401:
|
|
movq -24(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rcx
|
|
movl -28(%rbp), %eax
|
|
sarl %eax
|
|
movslq %eax, %rdx
|
|
movq -40(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movl %ecx, %edx
|
|
movb %dl, (%rax)
|
|
jmp .L405
|
|
.L402:
|
|
movq -24(%rbp), %rcx
|
|
movl -28(%rbp), %eax
|
|
sarl %eax
|
|
cltq
|
|
addq $1, %rax
|
|
leaq 0(,%rax,4), %rdx
|
|
movq -40(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movl %ecx, %edx
|
|
movl %edx, (%rax)
|
|
jmp .L405
|
|
.L407:
|
|
movq -24(%rbp), %rcx
|
|
movl -28(%rbp), %eax
|
|
sarl %eax
|
|
cltq
|
|
leaq 0(,%rax,4), %rdx
|
|
movq -40(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movl %ecx, %edx
|
|
movl %edx, (%rax)
|
|
jmp .L405
|
|
.L399:
|
|
movq -40(%rbp), %rax
|
|
movq -24(%rbp), %rdx
|
|
movq %rdx, (%rax)
|
|
.L405:
|
|
movq -24(%rbp), %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE67:
|
|
.size Bsta, .-Bsta
|
|
.type fix_unboxed, @function
|
|
fix_unboxed:
|
|
.LFB68:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq %rdi, -40(%rbp)
|
|
movq %rsi, -48(%rbp)
|
|
movq -48(%rbp), %rax
|
|
movq %rax, -16(%rbp)
|
|
movl $0, -20(%rbp)
|
|
jmp .L409
|
|
.L412:
|
|
movq -40(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
cmpb $37, %al
|
|
jne .L410
|
|
movl -20(%rbp), %eax
|
|
cltq
|
|
leaq 0(,%rax,8), %rdx
|
|
movq -16(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movq (%rax), %rax
|
|
movq %rax, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L411
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rcx
|
|
movl -20(%rbp), %eax
|
|
cltq
|
|
leaq 0(,%rax,8), %rdx
|
|
movq -16(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movq %rcx, %rdx
|
|
movq %rdx, (%rax)
|
|
.L411:
|
|
addl $1, -20(%rbp)
|
|
.L410:
|
|
addq $1, -40(%rbp)
|
|
.L409:
|
|
movq -40(%rbp), %rax
|
|
movzbl (%rax), %eax
|
|
testb %al, %al
|
|
jne .L412
|
|
nop
|
|
nop
|
|
popq %rbp
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE68:
|
|
.size fix_unboxed, .-fix_unboxed
|
|
.globl Lfailure
|
|
.type Lfailure, @function
|
|
Lfailure:
|
|
.LFB69:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L414
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L414:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fix_unboxed
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vfailure
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L415
|
|
call __stack_chk_fail@PLT
|
|
.L415:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE69:
|
|
.size Lfailure, .-Lfailure
|
|
.section .rodata
|
|
.align 8
|
|
.LC76:
|
|
.string "match failure at %s:%d:%d, value '%s'\n"
|
|
.text
|
|
.globl Bmatch_failure
|
|
.type Bmatch_failure, @function
|
|
Bmatch_failure:
|
|
.LFB70:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq %rsi, -16(%rbp)
|
|
movl %edx, -20(%rbp)
|
|
movl %ecx, -24(%rbp)
|
|
movl $0, %eax
|
|
call createStringBuf
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call printValue
|
|
movq stringBuf(%rip), %rsi
|
|
movl -24(%rbp), %eax
|
|
sarl %eax
|
|
movslq %eax, %rcx
|
|
movl -20(%rbp), %eax
|
|
sarl %eax
|
|
movslq %eax, %rdx
|
|
movq -16(%rbp), %rax
|
|
movq %rsi, %r8
|
|
movq %rax, %rsi
|
|
leaq .LC76(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
nop
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE70:
|
|
.size Bmatch_failure, .-Bmatch_failure
|
|
.section .rodata
|
|
.LC77:
|
|
.string "++:1"
|
|
.LC78:
|
|
.string "++:2"
|
|
.text
|
|
.globl Li__Infix_4343
|
|
.type Li__Infix_4343, @function
|
|
Li__Infix_4343:
|
|
.LFB71:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movq %rsi, -48(%rbp)
|
|
movq $1, -24(%rbp)
|
|
movq $1, -16(%rbp)
|
|
movq $1, -8(%rbp)
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L418
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L418
|
|
leaq .LC77(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L418:
|
|
movq -48(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L419
|
|
movq -48(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L419
|
|
leaq .LC78(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L419:
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -24(%rbp)
|
|
movq -48(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movb $0, -25(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -25(%rbp)
|
|
cmpb $0, -25(%rbp)
|
|
je .L420
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L420:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L421
|
|
leaq __PRETTY_FUNCTION__.3(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1011, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L421:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L422
|
|
leaq __PRETTY_FUNCTION__.3(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1011, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L422:
|
|
leaq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
leaq -48(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movq -24(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
addl %edx, %eax
|
|
movl %eax, %edi
|
|
call alloc_string@PLT
|
|
movq %rax, -8(%rbp)
|
|
leaq -48(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
leaq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -24(%rbp)
|
|
movq -48(%rbp), %rax
|
|
subq $12, %rax
|
|
movq %rax, -16(%rbp)
|
|
movq -24(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movq -24(%rbp), %rax
|
|
leaq 16(%rax), %rcx
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call strncpy@PLT
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %esi
|
|
movq -16(%rbp), %rax
|
|
leaq 16(%rax), %rcx
|
|
movq -8(%rbp), %rax
|
|
leaq 16(%rax), %rdx
|
|
movq -24(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %eax
|
|
addq %rdx, %rax
|
|
movq %rsi, %rdx
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call strncpy@PLT
|
|
movq -24(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movq -16(%rbp), %rax
|
|
movl (%rax), %eax
|
|
shrl $3, %eax
|
|
addl %eax, %edx
|
|
movq -8(%rbp), %rax
|
|
movl %edx, %edx
|
|
movb $0, 16(%rax,%rdx)
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L423
|
|
leaq __PRETTY_FUNCTION__.3(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1026, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L423:
|
|
cmpb $0, -25(%rbp)
|
|
je .L424
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L424:
|
|
movq -8(%rbp), %rax
|
|
addq $16, %rax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE71:
|
|
.size Li__Infix_4343, .-Li__Infix_4343
|
|
.section .rodata
|
|
.LC79:
|
|
.string "sprintf:1"
|
|
.text
|
|
.globl Lsprintf
|
|
.type Lsprintf, @function
|
|
Lsprintf:
|
|
.LFB72:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $240, %rsp
|
|
movq %rdi, -232(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L427
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L427:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movq -232(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L428
|
|
movq -232(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L428
|
|
leaq .LC79(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L428:
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
movq -232(%rbp), %rax
|
|
leaq -208(%rbp), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fix_unboxed
|
|
movl $0, %eax
|
|
call createStringBuf
|
|
movq -232(%rbp), %rax
|
|
leaq -208(%rbp), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vprintStringBuf
|
|
movb $0, -217(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -217(%rbp)
|
|
cmpb $0, -217(%rbp)
|
|
je .L429
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L429:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L430
|
|
leaq __PRETTY_FUNCTION__.2(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1044, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L430:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L431
|
|
leaq __PRETTY_FUNCTION__.2(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1044, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L431:
|
|
leaq -232(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movq stringBuf(%rip), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -216(%rbp)
|
|
leaq -232(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L432
|
|
leaq __PRETTY_FUNCTION__.2(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1050, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L432:
|
|
cmpb $0, -217(%rbp)
|
|
je .L433
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L433:
|
|
movl $0, %eax
|
|
call deleteStringBuf
|
|
movq -216(%rbp), %rax
|
|
movq -184(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L435
|
|
call __stack_chk_fail@PLT
|
|
.L435:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE72:
|
|
.size Lsprintf, .-Lsprintf
|
|
.globl LgetEnv
|
|
.type LgetEnv, @function
|
|
LgetEnv:
|
|
.LFB73:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movq -40(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call getenv@PLT
|
|
movq %rax, -16(%rbp)
|
|
cmpq $0, -16(%rbp)
|
|
jne .L437
|
|
movl $1, %eax
|
|
jmp .L438
|
|
.L437:
|
|
movb $0, -17(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -17(%rbp)
|
|
cmpb $0, -17(%rbp)
|
|
je .L439
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L439:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L440
|
|
leaq __PRETTY_FUNCTION__.1(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1063, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L440:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L441
|
|
leaq __PRETTY_FUNCTION__.1(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1063, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L441:
|
|
movq -16(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -8(%rbp)
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L442
|
|
leaq __PRETTY_FUNCTION__.1(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1067, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L442:
|
|
cmpb $0, -17(%rbp)
|
|
je .L443
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L443:
|
|
movq -8(%rbp), %rax
|
|
.L438:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE73:
|
|
.size LgetEnv, .-LgetEnv
|
|
.globl Lsystem
|
|
.type Lsystem, @function
|
|
Lsystem:
|
|
.LFB74:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call system@PLT
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE74:
|
|
.size Lsystem, .-Lsystem
|
|
.section .rodata
|
|
.LC80:
|
|
.string "fprintf:1"
|
|
.LC81:
|
|
.string "fprintf:2"
|
|
.LC82:
|
|
.string "fprintf (...): %s\n"
|
|
.text
|
|
.globl Lfprintf
|
|
.type Lfprintf, @function
|
|
Lfprintf:
|
|
.LFB75:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -224(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L447
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L447:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movq -216(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L448
|
|
leaq .LC80(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L448:
|
|
movq -224(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L449
|
|
movq -224(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L449
|
|
leaq .LC81(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L449:
|
|
movl $16, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -224(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fix_unboxed
|
|
leaq -208(%rbp), %rdx
|
|
movq -224(%rbp), %rcx
|
|
movq -216(%rbp), %rax
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
call vfprintf@PLT
|
|
testl %eax, %eax
|
|
jns .L452
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rsi
|
|
leaq .LC82(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L452:
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L451
|
|
call __stack_chk_fail@PLT
|
|
.L451:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE75:
|
|
.size Lfprintf, .-Lfprintf
|
|
.section .rodata
|
|
.LC83:
|
|
.string "printf:1"
|
|
.text
|
|
.globl Lprintf
|
|
.type Lprintf, @function
|
|
Lprintf:
|
|
.LFB76:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $224, %rsp
|
|
movq %rdi, -216(%rbp)
|
|
movq %rsi, -168(%rbp)
|
|
movq %rdx, -160(%rbp)
|
|
movq %rcx, -152(%rbp)
|
|
movq %r8, -144(%rbp)
|
|
movq %r9, -136(%rbp)
|
|
testb %al, %al
|
|
je .L454
|
|
movaps %xmm0, -128(%rbp)
|
|
movaps %xmm1, -112(%rbp)
|
|
movaps %xmm2, -96(%rbp)
|
|
movaps %xmm3, -80(%rbp)
|
|
movaps %xmm4, -64(%rbp)
|
|
movaps %xmm5, -48(%rbp)
|
|
movaps %xmm6, -32(%rbp)
|
|
movaps %xmm7, -16(%rbp)
|
|
.L454:
|
|
movq %fs:40, %rax
|
|
movq %rax, -184(%rbp)
|
|
xorl %eax, %eax
|
|
movq -216(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L455
|
|
movq -216(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L455
|
|
leaq .LC83(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L455:
|
|
movl $8, -208(%rbp)
|
|
movl $48, -204(%rbp)
|
|
leaq 16(%rbp), %rax
|
|
movq %rax, -200(%rbp)
|
|
leaq -176(%rbp), %rax
|
|
movq %rax, -192(%rbp)
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fix_unboxed
|
|
leaq -208(%rbp), %rdx
|
|
movq -216(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call vprintf@PLT
|
|
testl %eax, %eax
|
|
jns .L456
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rsi
|
|
leaq .LC82(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L456:
|
|
movq stdout(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fflush@PLT
|
|
nop
|
|
movq -184(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L457
|
|
call __stack_chk_fail@PLT
|
|
.L457:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE76:
|
|
.size Lprintf, .-Lprintf
|
|
.section .rodata
|
|
.LC84:
|
|
.string "fopen:1"
|
|
.LC85:
|
|
.string "fopen:2"
|
|
.align 8
|
|
.LC86:
|
|
.string "fopen (\"%s\", \"%s\"): %s, %s, %s\n"
|
|
.text
|
|
.globl Lfopen
|
|
.type Lfopen, @function
|
|
Lfopen:
|
|
.LFB77:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L459
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L459
|
|
leaq .LC84(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L459:
|
|
movq -32(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L460
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L460
|
|
leaq .LC85(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L460:
|
|
movq -32(%rbp), %rdx
|
|
movq -24(%rbp), %rax
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fopen@PLT
|
|
movq %rax, -8(%rbp)
|
|
cmpq $0, -8(%rbp)
|
|
je .L461
|
|
movq -8(%rbp), %rax
|
|
jmp .L458
|
|
.L461:
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rcx
|
|
movq -32(%rbp), %rdx
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC86(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L458:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE77:
|
|
.size Lfopen, .-Lfopen
|
|
.section .rodata
|
|
.LC87:
|
|
.string "fclose"
|
|
.text
|
|
.globl Lfclose
|
|
.type Lfclose, @function
|
|
Lfclose:
|
|
.LFB78:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
je .L464
|
|
leaq .LC87(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC2(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L464:
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call fclose@PLT
|
|
nop
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE78:
|
|
.size Lfclose, .-Lfclose
|
|
.section .rodata
|
|
.LC88:
|
|
.string "%m[^\n]"
|
|
.LC89:
|
|
.string "readLine (): %s\n"
|
|
.text
|
|
.globl LreadLine
|
|
.type LreadLine, @function
|
|
LreadLine:
|
|
.LFB79:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
leaq -24(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC88(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call __isoc23_scanf@PLT
|
|
cmpl $1, %eax
|
|
jne .L466
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, -16(%rbp)
|
|
call getchar@PLT
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call free@PLT
|
|
movq -16(%rbp), %rax
|
|
jmp .L469
|
|
.L466:
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
testl %eax, %eax
|
|
je .L468
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rsi
|
|
leaq .LC89(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L468:
|
|
movl $1, %eax
|
|
.L469:
|
|
movq -8(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L470
|
|
call __stack_chk_fail@PLT
|
|
.L470:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE79:
|
|
.size LreadLine, .-LreadLine
|
|
.section .rodata
|
|
.LC90:
|
|
.string "fread"
|
|
.LC91:
|
|
.string "r"
|
|
.LC92:
|
|
.string "fread (\"%s\"): %s\n"
|
|
.text
|
|
.globl Lfread
|
|
.type Lfread, @function
|
|
Lfread:
|
|
.LFB80:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movq %rdi, -40(%rbp)
|
|
movq -40(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L472
|
|
movq -40(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L472
|
|
leaq .LC90(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L472:
|
|
movq -40(%rbp), %rax
|
|
leaq .LC91(%rip), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fopen@PLT
|
|
movq %rax, -24(%rbp)
|
|
cmpq $0, -24(%rbp)
|
|
je .L473
|
|
movq -24(%rbp), %rax
|
|
movl $2, %edx
|
|
movl $0, %esi
|
|
movq %rax, %rdi
|
|
call fseek@PLT
|
|
testl %eax, %eax
|
|
js .L473
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call ftell@PLT
|
|
movq %rax, -16(%rbp)
|
|
movq -16(%rbp), %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edi
|
|
call LmakeString
|
|
movq %rax, -8(%rbp)
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call rewind@PLT
|
|
movq -16(%rbp), %rdx
|
|
movq -24(%rbp), %rcx
|
|
movq -8(%rbp), %rax
|
|
movl $1, %esi
|
|
movq %rax, %rdi
|
|
call fread@PLT
|
|
movq %rax, %rdx
|
|
movq -16(%rbp), %rax
|
|
cmpq %rax, %rdx
|
|
jne .L473
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call fclose@PLT
|
|
movq -8(%rbp), %rax
|
|
jmp .L471
|
|
.L473:
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rdx
|
|
movq -40(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC92(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L471:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE80:
|
|
.size Lfread, .-Lfread
|
|
.section .rodata
|
|
.LC93:
|
|
.string "fwrite:1"
|
|
.LC94:
|
|
.string "fwrite:2"
|
|
.LC95:
|
|
.string "w"
|
|
.LC96:
|
|
.string "fwrite (\"%s\"): %s\n"
|
|
.text
|
|
.globl Lfwrite
|
|
.type Lfwrite, @function
|
|
Lfwrite:
|
|
.LFB81:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq %rsi, -32(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L476
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L476
|
|
leaq .LC93(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L476:
|
|
movq -32(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L477
|
|
movq -32(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L477
|
|
leaq .LC94(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L477:
|
|
movq -24(%rbp), %rax
|
|
leaq .LC95(%rip), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fopen@PLT
|
|
movq %rax, -8(%rbp)
|
|
cmpq $0, -8(%rbp)
|
|
je .L478
|
|
movq -32(%rbp), %rdx
|
|
movq -8(%rbp), %rax
|
|
leaq .LC48(%rip), %rcx
|
|
movq %rcx, %rsi
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call fprintf@PLT
|
|
testl %eax, %eax
|
|
js .L478
|
|
movq -8(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call fclose@PLT
|
|
jmp .L479
|
|
.L478:
|
|
call __errno_location@PLT
|
|
movl (%rax), %eax
|
|
movl %eax, %edi
|
|
call strerror@PLT
|
|
movq %rax, %rdx
|
|
movq -24(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC96(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
nop
|
|
.L479:
|
|
nop
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE81:
|
|
.size Lfwrite, .-Lfwrite
|
|
.section .rodata
|
|
.LC97:
|
|
.string "fexists"
|
|
.text
|
|
.globl Lfexists
|
|
.type Lfexists, @function
|
|
Lfexists:
|
|
.LFB82:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %rdi, -24(%rbp)
|
|
movq -24(%rbp), %rax
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L481
|
|
movq -24(%rbp), %rax
|
|
subq $12, %rax
|
|
movl (%rax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L481
|
|
leaq .LC97(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC56(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L481:
|
|
movq -24(%rbp), %rax
|
|
leaq .LC91(%rip), %rdx
|
|
movq %rdx, %rsi
|
|
movq %rax, %rdi
|
|
call fopen@PLT
|
|
movq %rax, -8(%rbp)
|
|
cmpq $0, -8(%rbp)
|
|
je .L482
|
|
movl $3, %eax
|
|
jmp .L483
|
|
.L482:
|
|
movl $1, %eax
|
|
.L483:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE82:
|
|
.size Lfexists, .-Lfexists
|
|
.globl Lfst
|
|
.type Lfst, @function
|
|
Lfst:
|
|
.LFB83:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl $1, %esi
|
|
movq %rax, %rdi
|
|
call Belem
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE83:
|
|
.size Lfst, .-Lfst
|
|
.globl Lsnd
|
|
.type Lsnd, @function
|
|
Lsnd:
|
|
.LFB84:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl $3, %esi
|
|
movq %rax, %rdi
|
|
call Belem
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE84:
|
|
.size Lsnd, .-Lsnd
|
|
.globl Lhd
|
|
.type Lhd, @function
|
|
Lhd:
|
|
.LFB85:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl $1, %esi
|
|
movq %rax, %rdi
|
|
call Belem
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE85:
|
|
.size Lhd, .-Lhd
|
|
.globl Ltl
|
|
.type Ltl, @function
|
|
Ltl:
|
|
.LFB86:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
movl $3, %esi
|
|
movq %rax, %rdi
|
|
call Belem
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE86:
|
|
.size Ltl, .-Ltl
|
|
.section .rodata
|
|
.LC98:
|
|
.string "> "
|
|
.LC99:
|
|
.string "%li"
|
|
.text
|
|
.globl Lread
|
|
.type Lread, @function
|
|
Lread:
|
|
.LFB87:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
movq $1, -16(%rbp)
|
|
leaq .LC98(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printf@PLT
|
|
movq stdout(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fflush@PLT
|
|
leaq -16(%rbp), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC99(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call __isoc23_scanf@PLT
|
|
movq -16(%rbp), %rax
|
|
addq %rax, %rax
|
|
orq $1, %rax
|
|
movq -8(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L494
|
|
call __stack_chk_fail@PLT
|
|
.L494:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE87:
|
|
.size Lread, .-Lread
|
|
.section .rodata
|
|
.align 8
|
|
.LC100:
|
|
.string "ERROR: POINTER ARITHMETICS is forbidden; EXIT\n"
|
|
.text
|
|
.globl Lbinoperror
|
|
.type Lbinoperror, @function
|
|
Lbinoperror:
|
|
.LFB88:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq stderr(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $46, %edx
|
|
movl $1, %esi
|
|
leaq .LC100(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fwrite@PLT
|
|
movl $1, %edi
|
|
call exit@PLT
|
|
.cfi_endproc
|
|
.LFE88:
|
|
.size Lbinoperror, .-Lbinoperror
|
|
.section .rodata
|
|
.align 8
|
|
.LC101:
|
|
.string "ERROR: Comparing BOXED and UNBOXED value ; EXIT\n"
|
|
.text
|
|
.globl Lbinoperror2
|
|
.type Lbinoperror2, @function
|
|
Lbinoperror2:
|
|
.LFB89:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
movq stderr(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $48, %edx
|
|
movl $1, %esi
|
|
leaq .LC101(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fwrite@PLT
|
|
movl $1, %edi
|
|
call exit@PLT
|
|
.cfi_endproc
|
|
.LFE89:
|
|
.size Lbinoperror2, .-Lbinoperror2
|
|
.section .rodata
|
|
.LC102:
|
|
.string "%ld\n"
|
|
.text
|
|
.globl Lwrite
|
|
.type Lwrite, @function
|
|
Lwrite:
|
|
.LFB90:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movq %rdi, -8(%rbp)
|
|
movq -8(%rbp), %rax
|
|
sarq %rax
|
|
movq %rax, %rsi
|
|
leaq .LC102(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call printf@PLT
|
|
movq stdout(%rip), %rax
|
|
movq %rax, %rdi
|
|
call fflush@PLT
|
|
movl $0, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE90:
|
|
.size Lwrite, .-Lwrite
|
|
.section .rodata
|
|
.LC103:
|
|
.string "Lrandom, 0"
|
|
.LC104:
|
|
.string "invalid range in random: %d\n"
|
|
.text
|
|
.globl Lrandom
|
|
.type Lrandom, @function
|
|
Lrandom:
|
|
.LFB91:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $16, %rsp
|
|
movl %edi, -4(%rbp)
|
|
movl -4(%rbp), %eax
|
|
cltq
|
|
andl $1, %eax
|
|
testq %rax, %rax
|
|
jne .L500
|
|
leaq .LC103(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC10(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L500:
|
|
movl -4(%rbp), %eax
|
|
sarl %eax
|
|
testl %eax, %eax
|
|
jg .L501
|
|
movl -4(%rbp), %eax
|
|
sarl %eax
|
|
cltq
|
|
movq %rax, %rsi
|
|
leaq .LC104(%rip), %rax
|
|
movq %rax, %rdi
|
|
movl $0, %eax
|
|
call failure
|
|
.L501:
|
|
call random@PLT
|
|
movl -4(%rbp), %edx
|
|
sarl %edx
|
|
movslq %edx, %rcx
|
|
cqto
|
|
idivq %rcx
|
|
movq %rdx, %rcx
|
|
movq %rcx, %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE91:
|
|
.size Lrandom, .-Lrandom
|
|
.globl Ltime
|
|
.type Ltime, @function
|
|
Ltime:
|
|
.LFB92:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $32, %rsp
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
leaq -32(%rbp), %rax
|
|
movq %rax, %rsi
|
|
movl $4, %edi
|
|
call clock_gettime@PLT
|
|
movq -32(%rbp), %rax
|
|
imulq $1000000, %rax, %rsi
|
|
movq -24(%rbp), %rcx
|
|
movabsq $2361183241434822607, %rdx
|
|
movq %rcx, %rax
|
|
imulq %rdx
|
|
sarq $7, %rdx
|
|
movq %rcx, %rax
|
|
sarq $63, %rax
|
|
subq %rax, %rdx
|
|
leaq (%rsi,%rdx), %rax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movq -8(%rbp), %rdx
|
|
subq %fs:40, %rdx
|
|
je .L505
|
|
call __stack_chk_fail@PLT
|
|
.L505:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE92:
|
|
.size Ltime, .-Ltime
|
|
.globl set_args
|
|
.type set_args, @function
|
|
set_args:
|
|
.LFB93:
|
|
.cfi_startproc
|
|
pushq %rbp
|
|
.cfi_def_cfa_offset 16
|
|
.cfi_offset 6, -16
|
|
movq %rsp, %rbp
|
|
.cfi_def_cfa_register 6
|
|
subq $48, %rsp
|
|
movl %edi, -36(%rbp)
|
|
movq %rsi, -48(%rbp)
|
|
movq %fs:40, %rax
|
|
movq %rax, -8(%rbp)
|
|
xorl %eax, %eax
|
|
movl -36(%rbp), %eax
|
|
movl %eax, -20(%rbp)
|
|
movq $0, -16(%rbp)
|
|
movb $0, -25(%rbp)
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
sete %al
|
|
movb %al, -25(%rbp)
|
|
cmpb $0, -25(%rbp)
|
|
je .L507
|
|
movq %rbp, %rax
|
|
movq %rax, __gc_stack_top(%rip)
|
|
.L507:
|
|
movq __gc_stack_top(%rip), %rax
|
|
testq %rax, %rax
|
|
jne .L508
|
|
leaq __PRETTY_FUNCTION__.0(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1244, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC6(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L508:
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L509
|
|
leaq __PRETTY_FUNCTION__.0(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1244, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L509:
|
|
movl -20(%rbp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edi
|
|
call LmakeArray
|
|
movq %rax, -16(%rbp)
|
|
leaq -16(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
movl $0, -24(%rbp)
|
|
jmp .L510
|
|
.L511:
|
|
movl -24(%rbp), %eax
|
|
cltq
|
|
leaq 0(,%rax,8), %rdx
|
|
movq -48(%rbp), %rax
|
|
addq %rdx, %rax
|
|
movq (%rax), %rax
|
|
movq %rax, %rdi
|
|
call Bstring
|
|
movq %rax, %rcx
|
|
movq -16(%rbp), %rax
|
|
movl -24(%rbp), %edx
|
|
movslq %edx, %rdx
|
|
salq $2, %rdx
|
|
addq %rdx, %rax
|
|
movl %ecx, %edx
|
|
movl %edx, (%rax)
|
|
addl $1, -24(%rbp)
|
|
.L510:
|
|
movl -24(%rbp), %eax
|
|
cmpl -20(%rbp), %eax
|
|
jl .L511
|
|
leaq -16(%rbp), %rax
|
|
movq %rax, %rdi
|
|
call pop_extra_root@PLT
|
|
movq %rbp, %rax
|
|
movq __gc_stack_top(%rip), %rdx
|
|
cmpq %rax, %rdx
|
|
jnb .L512
|
|
leaq __PRETTY_FUNCTION__.0(%rip), %rax
|
|
movq %rax, %rcx
|
|
movl $1252, %edx
|
|
leaq .LC5(%rip), %rax
|
|
movq %rax, %rsi
|
|
leaq .LC7(%rip), %rax
|
|
movq %rax, %rdi
|
|
call __assert_fail@PLT
|
|
.L512:
|
|
cmpb $0, -25(%rbp)
|
|
je .L513
|
|
movq $0, __gc_stack_top(%rip)
|
|
.L513:
|
|
movq -16(%rbp), %rax
|
|
movq %rax, global_sysargs(%rip)
|
|
leaq global_sysargs(%rip), %rax
|
|
movq %rax, %rdi
|
|
call push_extra_root@PLT
|
|
nop
|
|
movq -8(%rbp), %rax
|
|
subq %fs:40, %rax
|
|
je .L514
|
|
call __stack_chk_fail@PLT
|
|
.L514:
|
|
leave
|
|
.cfi_def_cfa 7, 8
|
|
ret
|
|
.cfi_endproc
|
|
.LFE93:
|
|
.size set_args, .-set_args
|
|
.section .rodata
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.15, @object
|
|
.size __PRETTY_FUNCTION__.15, 13
|
|
__PRETTY_FUNCTION__.15:
|
|
.string "Ls__Infix_58"
|
|
.local buf.14
|
|
.comm buf.14,6,1
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.13, @object
|
|
.size __PRETTY_FUNCTION__.13, 11
|
|
__PRETTY_FUNCTION__.13:
|
|
.string "Lsubstring"
|
|
.type __PRETTY_FUNCTION__.12, @object
|
|
.size __PRETTY_FUNCTION__.12, 7
|
|
__PRETTY_FUNCTION__.12:
|
|
.string "Lclone"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.11, @object
|
|
.size __PRETTY_FUNCTION__.11, 11
|
|
__PRETTY_FUNCTION__.11:
|
|
.string "LmakeArray"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.10, @object
|
|
.size __PRETTY_FUNCTION__.10, 12
|
|
__PRETTY_FUNCTION__.10:
|
|
.string "LmakeString"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.9, @object
|
|
.size __PRETTY_FUNCTION__.9, 8
|
|
__PRETTY_FUNCTION__.9:
|
|
.string "Bstring"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.8, @object
|
|
.size __PRETTY_FUNCTION__.8, 11
|
|
__PRETTY_FUNCTION__.8:
|
|
.string "Lstringcat"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.7, @object
|
|
.size __PRETTY_FUNCTION__.7, 8
|
|
__PRETTY_FUNCTION__.7:
|
|
.string "Lstring"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.6, @object
|
|
.size __PRETTY_FUNCTION__.6, 9
|
|
__PRETTY_FUNCTION__.6:
|
|
.string "Bclosure"
|
|
.type __PRETTY_FUNCTION__.5, @object
|
|
.size __PRETTY_FUNCTION__.5, 7
|
|
__PRETTY_FUNCTION__.5:
|
|
.string "Barray"
|
|
.type __PRETTY_FUNCTION__.4, @object
|
|
.size __PRETTY_FUNCTION__.4, 6
|
|
__PRETTY_FUNCTION__.4:
|
|
.string "Bsexp"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.3, @object
|
|
.size __PRETTY_FUNCTION__.3, 15
|
|
__PRETTY_FUNCTION__.3:
|
|
.string "Li__Infix_4343"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.2, @object
|
|
.size __PRETTY_FUNCTION__.2, 9
|
|
__PRETTY_FUNCTION__.2:
|
|
.string "Lsprintf"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.1, @object
|
|
.size __PRETTY_FUNCTION__.1, 8
|
|
__PRETTY_FUNCTION__.1:
|
|
.string "LgetEnv"
|
|
.align 8
|
|
.type __PRETTY_FUNCTION__.0, @object
|
|
.size __PRETTY_FUNCTION__.0, 9
|
|
__PRETTY_FUNCTION__.0:
|
|
.string "set_args"
|
|
.ident "GCC: (GNU) 13.2.1 20230801"
|
|
.section .note.GNU-stack,"",@progbits
|