mirror of
https://github.com/ProgramSnail/Lama.git
synced 2025-12-15 11:18:43 +00:00
6209 lines
105 KiB
ArmAsm
6209 lines
105 KiB
ArmAsm
.file "runtime.c"
|
|
.text
|
|
.local from_space
|
|
.comm from_space,16,4
|
|
.local to_space
|
|
.comm to_space,16,4
|
|
.comm current,4,4
|
|
.local extra_roots
|
|
.comm extra_roots,20,4
|
|
.globl clear_extra_roots
|
|
.type clear_extra_roots, @function
|
|
clear_extra_roots:
|
|
.LFB5:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $0, extra_roots@GOTOFF(%eax)
|
|
nop
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE5:
|
|
.size clear_extra_roots, .-clear_extra_roots
|
|
.section .rodata
|
|
.align 4
|
|
.LC0:
|
|
.string "ERROR: push_extra_roots: extra_roots_pool overflow"
|
|
.text
|
|
.globl push_extra_root
|
|
.type push_extra_root, @function
|
|
push_extra_root:
|
|
.LFB6:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
cmpl $3, %eax
|
|
jle .L3
|
|
subl $12, %esp
|
|
leal .LC0@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L3:
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
movl 8(%ebp), %edx
|
|
movl %edx, 4+extra_roots@GOTOFF(%ebx,%eax,4)
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
addl $1, %eax
|
|
movl %eax, extra_roots@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE6:
|
|
.size push_extra_root, .-push_extra_root
|
|
.section .rodata
|
|
.align 4
|
|
.LC1:
|
|
.string "ERROR: pop_extra_root: extra_roots are empty"
|
|
.align 4
|
|
.LC2:
|
|
.string "ERROR: pop_extra_root: stack invariant violation"
|
|
.text
|
|
.globl pop_extra_root
|
|
.type pop_extra_root, @function
|
|
pop_extra_root:
|
|
.LFB7:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
testl %eax, %eax
|
|
jne .L5
|
|
subl $12, %esp
|
|
leal .LC1@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L5:
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
subl $1, %eax
|
|
movl %eax, extra_roots@GOTOFF(%ebx)
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
movl 4+extra_roots@GOTOFF(%ebx,%eax,4), %eax
|
|
cmpl %eax, 8(%ebp)
|
|
je .L7
|
|
subl $12, %esp
|
|
leal .LC2@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L7:
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE7:
|
|
.size pop_extra_root, .-pop_extra_root
|
|
.section .rodata
|
|
.LC3:
|
|
.string "*** FAILURE: "
|
|
.text
|
|
.type vfailure, @function
|
|
vfailure:
|
|
.LFB8:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl stderr@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
pushl %eax
|
|
pushl $13
|
|
pushl $1
|
|
leal .LC3@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call fwrite@PLT
|
|
addl $16, %esp
|
|
movl stderr@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $4, %esp
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl %eax
|
|
call vfprintf@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $255
|
|
call exit@PLT
|
|
.cfi_endproc
|
|
.LFE8:
|
|
.size vfailure, .-vfailure
|
|
.type failure, @function
|
|
failure:
|
|
.LFB9:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $40, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call vfailure
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L10
|
|
call __stack_chk_fail_local
|
|
.L10:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE9:
|
|
.size failure, .-failure
|
|
.comm global_sysargs,4,4
|
|
.globl Ls__Infix_58
|
|
.type Ls__Infix_58, @function
|
|
Ls__Infix_58:
|
|
.LFB10:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
call __pre_gc@PLT
|
|
pushl $848787
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl $3
|
|
call Bsexp
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE10:
|
|
.size Ls__Infix_58, .-Ls__Infix_58
|
|
.section .rodata
|
|
.LC4:
|
|
.string "captured !!:1"
|
|
.LC5:
|
|
.string "unboxed value expected in %s\n"
|
|
.LC6:
|
|
.string "captured !!:2"
|
|
.text
|
|
.globl Ls__Infix_3333
|
|
.type Ls__Infix_3333, @function
|
|
Ls__Infix_3333:
|
|
.LFB11:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L14
|
|
subl $8, %esp
|
|
leal .LC4@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L14:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L15
|
|
subl $8, %esp
|
|
leal .LC6@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L15:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
testl %eax, %eax
|
|
jne .L16
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
testl %eax, %eax
|
|
je .L17
|
|
.L16:
|
|
movl $1, %eax
|
|
jmp .L18
|
|
.L17:
|
|
movl $0, %eax
|
|
.L18:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE11:
|
|
.size Ls__Infix_3333, .-Ls__Infix_3333
|
|
.section .rodata
|
|
.LC7:
|
|
.string "captured &&:1"
|
|
.LC8:
|
|
.string "captured &&:2"
|
|
.text
|
|
.globl Ls__Infix_3838
|
|
.type Ls__Infix_3838, @function
|
|
Ls__Infix_3838:
|
|
.LFB12:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L21
|
|
subl $8, %esp
|
|
leal .LC7@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L21:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L22
|
|
subl $8, %esp
|
|
leal .LC8@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L22:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
testl %eax, %eax
|
|
je .L23
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
testl %eax, %eax
|
|
je .L23
|
|
movl $1, %eax
|
|
jmp .L24
|
|
.L23:
|
|
movl $0, %eax
|
|
.L24:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE12:
|
|
.size Ls__Infix_3838, .-Ls__Infix_3838
|
|
.section .rodata
|
|
.LC9:
|
|
.string "captured ==:1"
|
|
.LC10:
|
|
.string "captured ==:2"
|
|
.text
|
|
.globl Ls__Infix_6161
|
|
.type Ls__Infix_6161, @function
|
|
Ls__Infix_6161:
|
|
.LFB13:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L27
|
|
subl $8, %esp
|
|
leal .LC9@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L27:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L28
|
|
subl $8, %esp
|
|
leal .LC10@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L28:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jne .L29
|
|
movl $3, %eax
|
|
jmp .L31
|
|
.L29:
|
|
movl $1, %eax
|
|
.L31:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE13:
|
|
.size Ls__Infix_6161, .-Ls__Infix_6161
|
|
.section .rodata
|
|
.LC11:
|
|
.string "captured !=:1"
|
|
.LC12:
|
|
.string "captured !=:2"
|
|
.text
|
|
.globl Ls__Infix_3361
|
|
.type Ls__Infix_3361, @function
|
|
Ls__Infix_3361:
|
|
.LFB14:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L33
|
|
subl $8, %esp
|
|
leal .LC11@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L33:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L34
|
|
subl $8, %esp
|
|
leal .LC12@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L34:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
je .L35
|
|
movl $3, %eax
|
|
jmp .L37
|
|
.L35:
|
|
movl $1, %eax
|
|
.L37:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE14:
|
|
.size Ls__Infix_3361, .-Ls__Infix_3361
|
|
.section .rodata
|
|
.LC13:
|
|
.string "captured <=:1"
|
|
.LC14:
|
|
.string "captured <=:2"
|
|
.text
|
|
.globl Ls__Infix_6061
|
|
.type Ls__Infix_6061, @function
|
|
Ls__Infix_6061:
|
|
.LFB15:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L39
|
|
subl $8, %esp
|
|
leal .LC13@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L39:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L40
|
|
subl $8, %esp
|
|
leal .LC14@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L40:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jg .L41
|
|
movl $3, %eax
|
|
jmp .L43
|
|
.L41:
|
|
movl $1, %eax
|
|
.L43:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE15:
|
|
.size Ls__Infix_6061, .-Ls__Infix_6061
|
|
.section .rodata
|
|
.LC15:
|
|
.string "captured <:1"
|
|
.LC16:
|
|
.string "captured <:2"
|
|
.text
|
|
.globl Ls__Infix_60
|
|
.type Ls__Infix_60, @function
|
|
Ls__Infix_60:
|
|
.LFB16:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L45
|
|
subl $8, %esp
|
|
leal .LC15@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L45:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L46
|
|
subl $8, %esp
|
|
leal .LC16@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L46:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jge .L47
|
|
movl $3, %eax
|
|
jmp .L49
|
|
.L47:
|
|
movl $1, %eax
|
|
.L49:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE16:
|
|
.size Ls__Infix_60, .-Ls__Infix_60
|
|
.section .rodata
|
|
.LC17:
|
|
.string "captured >=:1"
|
|
.LC18:
|
|
.string "captured >=:2"
|
|
.text
|
|
.globl Ls__Infix_6261
|
|
.type Ls__Infix_6261, @function
|
|
Ls__Infix_6261:
|
|
.LFB17:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L51
|
|
subl $8, %esp
|
|
leal .LC17@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L51:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L52
|
|
subl $8, %esp
|
|
leal .LC18@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L52:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jl .L53
|
|
movl $3, %eax
|
|
jmp .L55
|
|
.L53:
|
|
movl $1, %eax
|
|
.L55:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE17:
|
|
.size Ls__Infix_6261, .-Ls__Infix_6261
|
|
.section .rodata
|
|
.LC19:
|
|
.string "captured >:1"
|
|
.LC20:
|
|
.string "captured >:2"
|
|
.text
|
|
.globl Ls__Infix_62
|
|
.type Ls__Infix_62, @function
|
|
Ls__Infix_62:
|
|
.LFB18:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L57
|
|
subl $8, %esp
|
|
leal .LC19@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L57:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L58
|
|
subl $8, %esp
|
|
leal .LC20@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L58:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
cmpl %eax, %edx
|
|
jle .L59
|
|
movl $3, %eax
|
|
jmp .L61
|
|
.L59:
|
|
movl $1, %eax
|
|
.L61:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE18:
|
|
.size Ls__Infix_62, .-Ls__Infix_62
|
|
.section .rodata
|
|
.LC21:
|
|
.string "captured +:1"
|
|
.LC22:
|
|
.string "captured +:2"
|
|
.text
|
|
.globl Ls__Infix_43
|
|
.type Ls__Infix_43, @function
|
|
Ls__Infix_43:
|
|
.LFB19:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L63
|
|
subl $8, %esp
|
|
leal .LC21@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L63:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L64
|
|
subl $8, %esp
|
|
leal .LC22@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L64:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
addl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE19:
|
|
.size Ls__Infix_43, .-Ls__Infix_43
|
|
.section .rodata
|
|
.LC23:
|
|
.string "captured -:1"
|
|
.LC24:
|
|
.string "captured -:2"
|
|
.text
|
|
.globl Ls__Infix_45
|
|
.type Ls__Infix_45, @function
|
|
Ls__Infix_45:
|
|
.LFB20:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L67
|
|
subl $8, %esp
|
|
leal .LC23@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L67:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L68
|
|
subl $8, %esp
|
|
leal .LC24@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L68:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
subl %eax, %edx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE20:
|
|
.size Ls__Infix_45, .-Ls__Infix_45
|
|
.section .rodata
|
|
.LC25:
|
|
.string "captured *:1"
|
|
.LC26:
|
|
.string "captured *:2"
|
|
.text
|
|
.globl Ls__Infix_42
|
|
.type Ls__Infix_42, @function
|
|
Ls__Infix_42:
|
|
.LFB21:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L71
|
|
subl $8, %esp
|
|
leal .LC25@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L71:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L72
|
|
subl $8, %esp
|
|
leal .LC26@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L72:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
imull %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE21:
|
|
.size Ls__Infix_42, .-Ls__Infix_42
|
|
.section .rodata
|
|
.LC27:
|
|
.string "captured /:1"
|
|
.LC28:
|
|
.string "captured /:2"
|
|
.text
|
|
.globl Ls__Infix_47
|
|
.type Ls__Infix_47, @function
|
|
Ls__Infix_47:
|
|
.LFB22:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L75
|
|
subl $8, %esp
|
|
leal .LC27@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L75:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L76
|
|
subl $8, %esp
|
|
leal .LC28@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L76:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl 12(%ebp), %edx
|
|
movl %edx, %ecx
|
|
sarl %ecx
|
|
cltd
|
|
idivl %ecx
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE22:
|
|
.size Ls__Infix_47, .-Ls__Infix_47
|
|
.section .rodata
|
|
.LC29:
|
|
.string "captured %:1"
|
|
.LC30:
|
|
.string "captured %:2"
|
|
.text
|
|
.globl Ls__Infix_37
|
|
.type Ls__Infix_37, @function
|
|
Ls__Infix_37:
|
|
.LFB23:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L79
|
|
subl $8, %esp
|
|
leal .LC29@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L79:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L80
|
|
subl $8, %esp
|
|
leal .LC30@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L80:
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl 12(%ebp), %edx
|
|
movl %edx, %ecx
|
|
sarl %ecx
|
|
cltd
|
|
idivl %ecx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE23:
|
|
.size Ls__Infix_37, .-Ls__Infix_37
|
|
.section .rodata
|
|
.LC31:
|
|
.string ".length"
|
|
.LC32:
|
|
.string "boxed value expected in %s\n"
|
|
.text
|
|
.globl Blength
|
|
.type Blength, @function
|
|
Blength:
|
|
.LFB24:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $24, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $1, -12(%ebp)
|
|
movl 8(%ebp), %edx
|
|
andl $1, %edx
|
|
testl %edx, %edx
|
|
je .L83
|
|
subl $8, %esp
|
|
leal .LC31@GOTOFF(%eax), %edx
|
|
pushl %edx
|
|
leal .LC32@GOTOFF(%eax), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L83:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE24:
|
|
.size Blength, .-Blength
|
|
.section .rodata
|
|
.align 4
|
|
.LC33:
|
|
.string "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
|
.text
|
|
.globl de_hash
|
|
.type de_hash, @function
|
|
de_hash:
|
|
.LFB25:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $16, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $1, -8(%ebp)
|
|
leal .LC33@GOTOFF(%eax), %edx
|
|
movl %edx, chars.2795@GOTOFF(%eax)
|
|
leal 5+buf.2796@GOTOFF(%eax), %edx
|
|
movl %edx, -8(%ebp)
|
|
movl -8(%ebp), %edx
|
|
leal -1(%edx), %ecx
|
|
movl %ecx, -8(%ebp)
|
|
movb $0, (%edx)
|
|
jmp .L86
|
|
.L87:
|
|
movl chars.2795@GOTOFF(%eax), %edx
|
|
movl 8(%ebp), %ecx
|
|
andl $63, %ecx
|
|
leal (%edx,%ecx), %ebx
|
|
movl -8(%ebp), %edx
|
|
leal -1(%edx), %ecx
|
|
movl %ecx, -8(%ebp)
|
|
movzbl (%ebx), %ecx
|
|
movb %cl, (%edx)
|
|
sarl $6, 8(%ebp)
|
|
.L86:
|
|
cmpl $0, 8(%ebp)
|
|
jne .L87
|
|
addl $1, -8(%ebp)
|
|
movl -8(%ebp), %eax
|
|
addl $16, %esp
|
|
popl %ebx
|
|
.cfi_restore 3
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE25:
|
|
.size de_hash, .-de_hash
|
|
.local stringBuf
|
|
.comm stringBuf,12,4
|
|
.type createStringBuf, @function
|
|
createStringBuf:
|
|
.LFB26:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
pushl $128
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, stringBuf@GOTOFF(%ebx)
|
|
movl $0, 4+stringBuf@GOTOFF(%ebx)
|
|
movl $128, 8+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE26:
|
|
.size createStringBuf, .-createStringBuf
|
|
.type deleteStringBuf, @function
|
|
deleteStringBuf:
|
|
.LFB27:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl stringBuf@GOTOFF(%eax), %edx
|
|
subl $12, %esp
|
|
pushl %edx
|
|
movl %eax, %ebx
|
|
call free@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE27:
|
|
.size deleteStringBuf, .-deleteStringBuf
|
|
.type extendStringBuf, @function
|
|
extendStringBuf:
|
|
.LFB28:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8+stringBuf@GOTOFF(%ebx), %eax
|
|
addl %eax, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %edx
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call realloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, stringBuf@GOTOFF(%ebx)
|
|
movl -12(%ebp), %eax
|
|
movl %eax, 8+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE28:
|
|
.size extendStringBuf, .-extendStringBuf
|
|
.type vprintStringBuf, @function
|
|
vprintStringBuf:
|
|
.LFB29:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $0, -20(%ebp)
|
|
movl $0, -16(%ebp)
|
|
movl $1, -12(%ebp)
|
|
.L93:
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
movl 4+stringBuf@GOTOFF(%ebx), %edx
|
|
addl %edx, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl 8+stringBuf@GOTOFF(%ebx), %edx
|
|
movl 4+stringBuf@GOTOFF(%ebx), %eax
|
|
subl %eax, %edx
|
|
movl %edx, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl %eax
|
|
pushl -12(%ebp)
|
|
call vsnprintf@PLT
|
|
addl $16, %esp
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
cmpl -16(%ebp), %eax
|
|
jl .L94
|
|
call extendStringBuf
|
|
jmp .L93
|
|
.L94:
|
|
movl 4+stringBuf@GOTOFF(%ebx), %edx
|
|
movl -20(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl %eax, 4+stringBuf@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE29:
|
|
.size vprintStringBuf, .-vprintStringBuf
|
|
.type printStringBuf, @function
|
|
printStringBuf:
|
|
.LFB30:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $40, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call vprintStringBuf
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L96
|
|
call __stack_chk_fail_local
|
|
.L96:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE30:
|
|
.size printStringBuf, .-printStringBuf
|
|
.section .rodata
|
|
.LC34:
|
|
.string "%d"
|
|
.LC35:
|
|
.string "\"%s\""
|
|
.LC36:
|
|
.string "<closure "
|
|
.LC37:
|
|
.string "%x"
|
|
.LC38:
|
|
.string ", "
|
|
.LC39:
|
|
.string ">"
|
|
.LC40:
|
|
.string "["
|
|
.LC41:
|
|
.string "]"
|
|
.LC42:
|
|
.string "cons"
|
|
.LC43:
|
|
.string "{"
|
|
.LC44:
|
|
.string "}"
|
|
.LC45:
|
|
.string "%s"
|
|
.LC46:
|
|
.string " ("
|
|
.LC47:
|
|
.string ")"
|
|
.LC48:
|
|
.string "*** invalid tag: %x ***"
|
|
.text
|
|
.type printValue, @function
|
|
printValue:
|
|
.LFB31:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -16(%ebp)
|
|
movl $1, -24(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L98
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC34@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L125
|
|
.L98:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $3, %eax
|
|
je .L101
|
|
cmpl $3, %eax
|
|
jg .L102
|
|
cmpl $1, %eax
|
|
je .L103
|
|
jmp .L100
|
|
.L102:
|
|
cmpl $5, %eax
|
|
je .L104
|
|
cmpl $7, %eax
|
|
je .L105
|
|
jmp .L100
|
|
.L103:
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC35@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L99
|
|
.L105:
|
|
subl $12, %esp
|
|
leal .LC36@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl $0, -24(%ebp)
|
|
jmp .L106
|
|
.L110:
|
|
cmpl $0, -24(%ebp)
|
|
je .L107
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
jmp .L108
|
|
.L107:
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC37@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L108:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
je .L109
|
|
subl $12, %esp
|
|
leal .LC38@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L109:
|
|
addl $1, -24(%ebp)
|
|
.L106:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
ja .L110
|
|
subl $12, %esp
|
|
leal .LC39@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L99
|
|
.L101:
|
|
subl $12, %esp
|
|
leal .LC40@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl $0, -24(%ebp)
|
|
jmp .L111
|
|
.L113:
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
je .L112
|
|
subl $12, %esp
|
|
leal .LC38@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L112:
|
|
addl $1, -24(%ebp)
|
|
.L111:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
ja .L113
|
|
subl $12, %esp
|
|
leal .LC41@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L99
|
|
.L104:
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call de_hash
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
subl $8, %esp
|
|
leal .LC42@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl -12(%ebp)
|
|
call strcmp@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jne .L114
|
|
movl -16(%ebp), %eax
|
|
movl %eax, -20(%ebp)
|
|
subl $12, %esp
|
|
leal .LC43@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L115
|
|
.L118:
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L123
|
|
subl $12, %esp
|
|
leal .LC38@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
subl $4, -20(%ebp)
|
|
.L115:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
jne .L118
|
|
jmp .L117
|
|
.L123:
|
|
nop
|
|
.L117:
|
|
subl $12, %esp
|
|
leal .LC44@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L124
|
|
.L114:
|
|
subl $8, %esp
|
|
pushl -12(%ebp)
|
|
leal .LC45@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
je .L124
|
|
subl $12, %esp
|
|
leal .LC46@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
movl $0, -24(%ebp)
|
|
jmp .L120
|
|
.L122:
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call printValue
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
leal -1(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
je .L121
|
|
subl $12, %esp
|
|
leal .LC38@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
.L121:
|
|
addl $1, -24(%ebp)
|
|
.L120:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
ja .L122
|
|
subl $12, %esp
|
|
leal .LC47@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L124
|
|
.L100:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC48@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L125
|
|
.L124:
|
|
nop
|
|
.L99:
|
|
.L125:
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE31:
|
|
.size printValue, .-printValue
|
|
.section .rodata
|
|
.LC49:
|
|
.string "*** non-list tag: %s ***"
|
|
.text
|
|
.type stringcat, @function
|
|
stringcat:
|
|
.LFB32:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L138
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L129
|
|
cmpl $5, %eax
|
|
je .L130
|
|
jmp .L137
|
|
.L129:
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC45@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L127
|
|
.L130:
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call de_hash
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
subl $8, %esp
|
|
leal .LC42@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl -12(%ebp)
|
|
call strcmp@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jne .L131
|
|
movl -16(%ebp), %eax
|
|
movl %eax, -20(%ebp)
|
|
jmp .L132
|
|
.L135:
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call stringcat
|
|
addl $16, %esp
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L139
|
|
subl $4, -20(%ebp)
|
|
.L132:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
testl %eax, %eax
|
|
jne .L135
|
|
jmp .L127
|
|
.L131:
|
|
subl $8, %esp
|
|
pushl -12(%ebp)
|
|
leal .LC49@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L127
|
|
.L139:
|
|
nop
|
|
jmp .L127
|
|
.L137:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC48@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printStringBuf
|
|
addl $16, %esp
|
|
jmp .L138
|
|
.L127:
|
|
.L138:
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE32:
|
|
.size stringcat, .-stringcat
|
|
.section .rodata
|
|
.LC50:
|
|
.string "matchSubString:1"
|
|
.LC51:
|
|
.string "sting value expected in %s\n"
|
|
.LC52:
|
|
.string "matchSubString:2"
|
|
.LC53:
|
|
.string "matchSubString:3"
|
|
.text
|
|
.globl LmatchSubString
|
|
.type LmatchSubString, @function
|
|
LmatchSubString:
|
|
.LFB33:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L141
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L141
|
|
subl $8, %esp
|
|
leal .LC50@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L141:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L142
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L142
|
|
subl $8, %esp
|
|
leal .LC52@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L142:
|
|
movl 16(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L143
|
|
subl $8, %esp
|
|
leal .LC53@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L143:
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
movl 16(%ebp), %edx
|
|
sarl %edx
|
|
movl %edx, %ecx
|
|
movl 8(%ebp), %edx
|
|
addl %ecx, %edx
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl 12(%ebp)
|
|
pushl %edx
|
|
call strncmp@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jne .L144
|
|
movl $3, %eax
|
|
jmp .L146
|
|
.L144:
|
|
movl $1, %eax
|
|
.L146:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE33:
|
|
.size LmatchSubString, .-LmatchSubString
|
|
.section .rodata
|
|
.LC54:
|
|
.string "substring:1"
|
|
.LC55:
|
|
.string "substring:2"
|
|
.LC56:
|
|
.string "substring:3"
|
|
.align 4
|
|
.LC57:
|
|
.string "substring: index out of bounds (position=%d, length=%d, subject length=%d)"
|
|
.text
|
|
.globl Lsubstring
|
|
.type Lsubstring, @function
|
|
Lsubstring:
|
|
.LFB34:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -24(%ebp)
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, -20(%ebp)
|
|
movl 16(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, -16(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L148
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L148
|
|
subl $8, %esp
|
|
leal .LC54@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L148:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L149
|
|
subl $8, %esp
|
|
leal .LC55@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L149:
|
|
movl 16(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L150
|
|
subl $8, %esp
|
|
leal .LC56@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L150:
|
|
movl -20(%ebp), %edx
|
|
movl -16(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
cmpl %eax, %edx
|
|
ja .L151
|
|
call __pre_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl $5, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -16(%ebp), %eax
|
|
sall $3, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
movl -16(%ebp), %eax
|
|
movl -20(%ebp), %ecx
|
|
movl 8(%ebp), %edx
|
|
addl %edx, %ecx
|
|
movl -12(%ebp), %edx
|
|
addl $4, %edx
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl %ecx
|
|
pushl %edx
|
|
call strncpy@PLT
|
|
addl $16, %esp
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
jmp .L147
|
|
.L151:
|
|
movl -24(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
pushl %eax
|
|
pushl -16(%ebp)
|
|
pushl -20(%ebp)
|
|
leal .LC57@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L147:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE34:
|
|
.size Lsubstring, .-Lsubstring
|
|
.section .rodata
|
|
.LC58:
|
|
.string "%"
|
|
.text
|
|
.globl Lregexp
|
|
.type Lregexp, @function
|
|
Lregexp:
|
|
.LFB35:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
pushl $32
|
|
call malloc@PLT
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call strlen@PLT
|
|
addl $16, %esp
|
|
subl $4, %esp
|
|
pushl -16(%ebp)
|
|
pushl %eax
|
|
pushl 8(%ebp)
|
|
call re_compile_pattern@PLT
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
cmpl $0, -12(%ebp)
|
|
je .L154
|
|
subl $12, %esp
|
|
pushl -12(%ebp)
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC58@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L154:
|
|
movl -16(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE35:
|
|
.size Lregexp, .-Lregexp
|
|
.section .rodata
|
|
.LC59:
|
|
.string "regexpMatch:1"
|
|
.LC60:
|
|
.string "regexpMatch:2"
|
|
.LC61:
|
|
.string "regexpMatch:3"
|
|
.text
|
|
.globl LregexpMatch
|
|
.type LregexpMatch, @function
|
|
LregexpMatch:
|
|
.LFB36:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L157
|
|
subl $8, %esp
|
|
leal .LC59@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L157:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L158
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L158
|
|
subl $8, %esp
|
|
leal .LC60@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L158:
|
|
movl 16(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L159
|
|
subl $8, %esp
|
|
leal .LC61@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L159:
|
|
movl 16(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
subl $12, %esp
|
|
pushl $0
|
|
pushl %edx
|
|
pushl %eax
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
call re_match@PLT
|
|
addl $32, %esp
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE36:
|
|
.size LregexpMatch, .-LregexpMatch
|
|
.section .rodata
|
|
.align 4
|
|
.LC62:
|
|
.string "invalid tag %d in clone *****\n"
|
|
.text
|
|
.globl Lclone
|
|
.type Lclone, @function
|
|
Lclone:
|
|
.LFB37:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
call __pre_gc@PLT
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L162
|
|
movl 8(%ebp), %eax
|
|
jmp .L163
|
|
.L162:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
subl $12, %esp
|
|
leal 8(%ebp), %eax
|
|
pushl %eax
|
|
call push_extra_root
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
cmpl $3, %eax
|
|
je .L165
|
|
cmpl $3, %eax
|
|
jg .L166
|
|
cmpl $1, %eax
|
|
je .L167
|
|
jmp .L164
|
|
.L166:
|
|
cmpl $5, %eax
|
|
je .L168
|
|
cmpl $7, %eax
|
|
je .L165
|
|
jmp .L164
|
|
.L167:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
addl $4, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -24(%ebp)
|
|
.L165:
|
|
movl -12(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -24(%ebp)
|
|
movl -12(%ebp), %eax
|
|
addl $1, %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
subl $4, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
pushl -24(%ebp)
|
|
call memcpy@PLT
|
|
addl $16, %esp
|
|
addl $4, -24(%ebp)
|
|
jmp .L169
|
|
.L168:
|
|
movl -12(%ebp), %eax
|
|
addl $2, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -24(%ebp)
|
|
movl -12(%ebp), %eax
|
|
addl $2, %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
subl $4, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
pushl -24(%ebp)
|
|
call memcpy@PLT
|
|
addl $16, %esp
|
|
addl $4, -24(%ebp)
|
|
addl $4, -24(%ebp)
|
|
jmp .L169
|
|
.L164:
|
|
subl $8, %esp
|
|
pushl -16(%ebp)
|
|
leal .LC62@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L169:
|
|
subl $12, %esp
|
|
leal 8(%ebp), %eax
|
|
pushl %eax
|
|
call pop_extra_root
|
|
addl $16, %esp
|
|
call __post_gc@PLT
|
|
movl -24(%ebp), %eax
|
|
.L163:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE37:
|
|
.size Lclone, .-Lclone
|
|
.section .rodata
|
|
.LC63:
|
|
.string "invalid tag %d in hash *****\n"
|
|
.text
|
|
.globl inner_hash
|
|
.type inner_hash, @function
|
|
inner_hash:
|
|
.LFB38:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $40, %esp
|
|
call __x86.get_pc_thunk.dx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %edx
|
|
cmpl $3, 8(%ebp)
|
|
jle .L171
|
|
movl 12(%ebp), %eax
|
|
jmp .L172
|
|
.L171:
|
|
movl 16(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L173
|
|
movl 16(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
jmp .L172
|
|
.L173:
|
|
movl 16(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -24(%ebp)
|
|
movl -24(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -24(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %ecx
|
|
movl 12(%ebp), %eax
|
|
addl %ecx, %eax
|
|
roll $16, %eax
|
|
movl %eax, 12(%ebp)
|
|
movl -16(%ebp), %ecx
|
|
movl 12(%ebp), %eax
|
|
addl %ecx, %eax
|
|
roll $16, %eax
|
|
movl %eax, 12(%ebp)
|
|
movl -20(%ebp), %eax
|
|
cmpl $3, %eax
|
|
je .L175
|
|
cmpl $3, %eax
|
|
jg .L176
|
|
cmpl $1, %eax
|
|
je .L177
|
|
jmp .L174
|
|
.L176:
|
|
cmpl $5, %eax
|
|
je .L178
|
|
cmpl $7, %eax
|
|
je .L179
|
|
jmp .L174
|
|
.L177:
|
|
movl -24(%ebp), %eax
|
|
addl $4, %eax
|
|
movl %eax, -28(%ebp)
|
|
jmp .L180
|
|
.L181:
|
|
movl -28(%ebp), %eax
|
|
leal 1(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movzbl (%eax), %eax
|
|
movsbl %al, %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
sall $16, %eax
|
|
movl %eax, %ecx
|
|
movl -28(%ebp), %eax
|
|
leal 1(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movzbl (%eax), %eax
|
|
movsbl %al, %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
shrl $16, %eax
|
|
orl %ecx, %eax
|
|
movl %eax, 12(%ebp)
|
|
.L180:
|
|
movl -28(%ebp), %eax
|
|
movzbl (%eax), %eax
|
|
testb %al, %al
|
|
jne .L181
|
|
movl 12(%ebp), %eax
|
|
jmp .L172
|
|
.L179:
|
|
movl -24(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, 12(%ebp)
|
|
movl $1, -32(%ebp)
|
|
jmp .L182
|
|
.L175:
|
|
movl $0, -32(%ebp)
|
|
jmp .L182
|
|
.L178:
|
|
movl 16(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
roll $16, %eax
|
|
movl %eax, 12(%ebp)
|
|
movl $0, -32(%ebp)
|
|
jmp .L182
|
|
.L174:
|
|
subl $8, %esp
|
|
pushl -20(%ebp)
|
|
leal .LC63@GOTOFF(%edx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L182:
|
|
jmp .L183
|
|
.L184:
|
|
movl -24(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -32(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
movl 8(%ebp), %edx
|
|
addl $1, %edx
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl 12(%ebp)
|
|
pushl %edx
|
|
call inner_hash
|
|
addl $16, %esp
|
|
movl %eax, 12(%ebp)
|
|
addl $1, -32(%ebp)
|
|
.L183:
|
|
movl -32(%ebp), %eax
|
|
cmpl -16(%ebp), %eax
|
|
jl .L184
|
|
movl 12(%ebp), %eax
|
|
.L172:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE38:
|
|
.size inner_hash, .-inner_hash
|
|
.globl Lhash
|
|
.type Lhash, @function
|
|
Lhash:
|
|
.LFB39:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $4, %esp
|
|
pushl 8(%ebp)
|
|
pushl $0
|
|
pushl $0
|
|
call inner_hash
|
|
addl $16, %esp
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE39:
|
|
.size Lhash, .-Lhash
|
|
.section .rodata
|
|
.align 4
|
|
.LC64:
|
|
.string "invalid tag %d in compare *****\n"
|
|
.text
|
|
.globl Lcompare
|
|
.type Lcompare, @function
|
|
Lcompare:
|
|
.LFB40:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $52, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.dx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %edx
|
|
movl 8(%ebp), %eax
|
|
cmpl 12(%ebp), %eax
|
|
jne .L188
|
|
movl $1, %eax
|
|
jmp .L189
|
|
.L188:
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L190
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L191
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
subl %eax, %edx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L191:
|
|
movl $-1, %eax
|
|
jmp .L189
|
|
.L190:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L192
|
|
movl $3, %eax
|
|
jmp .L189
|
|
.L192:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -44(%ebp)
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -40(%ebp)
|
|
movl -44(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -36(%ebp)
|
|
movl -40(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
movl %eax, -32(%ebp)
|
|
movl -44(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -28(%ebp)
|
|
movl -40(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -24(%ebp)
|
|
movl -36(%ebp), %eax
|
|
cmpl -32(%ebp), %eax
|
|
je .L193
|
|
movl -36(%ebp), %eax
|
|
subl -32(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L193:
|
|
movl -36(%ebp), %eax
|
|
cmpl $3, %eax
|
|
je .L195
|
|
cmpl $3, %eax
|
|
jg .L196
|
|
cmpl $1, %eax
|
|
je .L197
|
|
jmp .L194
|
|
.L196:
|
|
cmpl $5, %eax
|
|
je .L198
|
|
cmpl $7, %eax
|
|
je .L199
|
|
jmp .L194
|
|
.L197:
|
|
movl -40(%ebp), %eax
|
|
leal 4(%eax), %ecx
|
|
movl -44(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %ecx
|
|
pushl %eax
|
|
movl %edx, %ebx
|
|
call strcmp@PLT
|
|
addl $16, %esp
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L199:
|
|
movl -44(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %edx
|
|
movl -40(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
je .L200
|
|
movl -44(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -40(%ebp), %eax
|
|
addl $4, %eax
|
|
movl (%eax), %eax
|
|
subl %eax, %edx
|
|
movl %edx, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L200:
|
|
movl -28(%ebp), %eax
|
|
cmpl -24(%ebp), %eax
|
|
je .L201
|
|
movl -28(%ebp), %eax
|
|
subl -24(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L201:
|
|
movl $1, -48(%ebp)
|
|
jmp .L202
|
|
.L195:
|
|
movl -28(%ebp), %eax
|
|
cmpl -24(%ebp), %eax
|
|
je .L203
|
|
movl -28(%ebp), %eax
|
|
subl -24(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L203:
|
|
movl $0, -48(%ebp)
|
|
jmp .L202
|
|
.L198:
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl 12(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
cmpl -16(%ebp), %eax
|
|
je .L204
|
|
movl -20(%ebp), %eax
|
|
subl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L204:
|
|
movl -28(%ebp), %eax
|
|
cmpl -24(%ebp), %eax
|
|
je .L205
|
|
movl -28(%ebp), %eax
|
|
subl -24(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L205:
|
|
movl $0, -48(%ebp)
|
|
jmp .L202
|
|
.L194:
|
|
subl $8, %esp
|
|
pushl -36(%ebp)
|
|
leal .LC64@GOTOFF(%edx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L202:
|
|
jmp .L206
|
|
.L208:
|
|
movl -40(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -48(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %edx
|
|
movl -44(%ebp), %eax
|
|
leal 4(%eax), %ecx
|
|
movl -48(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %ecx, %eax
|
|
movl (%eax), %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call Lcompare
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
cmpl $1, -12(%ebp)
|
|
je .L207
|
|
movl -12(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L189
|
|
.L207:
|
|
addl $1, -48(%ebp)
|
|
.L206:
|
|
movl -48(%ebp), %eax
|
|
cmpl -28(%ebp), %eax
|
|
jl .L208
|
|
movl $1, %eax
|
|
.L189:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE40:
|
|
.size Lcompare, .-Lcompare
|
|
.section .rodata
|
|
.LC65:
|
|
.string ".elem:1"
|
|
.LC66:
|
|
.string ".elem:2"
|
|
.text
|
|
.globl Belem
|
|
.type Belem, @function
|
|
Belem:
|
|
.LFB41:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -12(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L210
|
|
subl $8, %esp
|
|
leal .LC65@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L210:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L211
|
|
subl $8, %esp
|
|
leal .LC66@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L211:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -12(%ebp)
|
|
sarl 12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
jne .L212
|
|
movl -12(%ebp), %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
addl $4, %eax
|
|
movzbl (%eax), %eax
|
|
movsbl %al, %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
jmp .L213
|
|
.L212:
|
|
movl -12(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl 12(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
.L213:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE41:
|
|
.size Belem, .-Belem
|
|
.section .rodata
|
|
.LC67:
|
|
.string "makeArray:1"
|
|
.text
|
|
.globl LmakeArray
|
|
.type LmakeArray, @function
|
|
LmakeArray:
|
|
.LFB42:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L215
|
|
subl $8, %esp
|
|
leal .LC67@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L215:
|
|
call __pre_gc@PLT
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -16(%ebp), %eax
|
|
sall $3, %eax
|
|
orl $3, %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE42:
|
|
.size LmakeArray, .-LmakeArray
|
|
.section .rodata
|
|
.LC68:
|
|
.string "makeString"
|
|
.text
|
|
.globl LmakeString
|
|
.type LmakeString, @function
|
|
LmakeString:
|
|
.LFB43:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, -16(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L218
|
|
subl $8, %esp
|
|
leal .LC68@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L218:
|
|
call __pre_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl $5, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -16(%ebp), %eax
|
|
sall $3, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE43:
|
|
.size LmakeString, .-LmakeString
|
|
.globl Bstring
|
|
.type Bstring, @function
|
|
Bstring:
|
|
.LFB44:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strlen@PLT
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl $0, -12(%ebp)
|
|
call __pre_gc@PLT
|
|
subl $12, %esp
|
|
leal 8(%ebp), %eax
|
|
pushl %eax
|
|
call push_extra_root
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call LmakeString
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
subl $12, %esp
|
|
leal 8(%ebp), %eax
|
|
pushl %eax
|
|
call pop_extra_root
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
addl $1, %eax
|
|
movl %eax, %edx
|
|
movl 8(%ebp), %eax
|
|
subl $4, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
pushl -12(%ebp)
|
|
call strncpy@PLT
|
|
addl $16, %esp
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE44:
|
|
.size Bstring, .-Bstring
|
|
.section .rodata
|
|
.LC69:
|
|
.string "stringcat"
|
|
.text
|
|
.globl Lstringcat
|
|
.type Lstringcat, @function
|
|
Lstringcat:
|
|
.LFB45:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L223
|
|
subl $8, %esp
|
|
leal .LC69@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L223:
|
|
call __pre_gc@PLT
|
|
call createStringBuf
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call stringcat
|
|
addl $16, %esp
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
call deleteStringBuf
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE45:
|
|
.size Lstringcat, .-Lstringcat
|
|
.globl Bstringval
|
|
.type Bstringval, @function
|
|
Bstringval:
|
|
.LFB46:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -12(%ebp)
|
|
call __pre_gc@PLT
|
|
call createStringBuf
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call printValue
|
|
addl $16, %esp
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
call deleteStringBuf
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE46:
|
|
.size Bstringval, .-Bstringval
|
|
.globl Bclosure
|
|
.type Bclosure, @function
|
|
Bclosure:
|
|
.LFB47:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $52, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 12(%ebp), %eax
|
|
movl %eax, -44(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -28(%ebp)
|
|
movl $1, -24(%ebp)
|
|
movl $1, -20(%ebp)
|
|
movl $1, -16(%ebp)
|
|
call __pre_gc@PLT
|
|
movl 8(%ebp), %eax
|
|
addl $2, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl 8(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $3, %eax
|
|
orl $7, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -44(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
leal 16(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl $0, -24(%ebp)
|
|
jmp .L228
|
|
.L229:
|
|
movl -28(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl (%eax), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl -20(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
addl $1, -24(%ebp)
|
|
.L228:
|
|
movl -24(%ebp), %eax
|
|
cmpl 8(%ebp), %eax
|
|
jl .L229
|
|
call __post_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -12(%ebp), %ecx
|
|
xorl %gs:20, %ecx
|
|
je .L231
|
|
call __stack_chk_fail_local
|
|
.L231:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE47:
|
|
.size Bclosure, .-Bclosure
|
|
.globl Barray
|
|
.type Barray, @function
|
|
Barray:
|
|
.LFB48:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -28(%ebp)
|
|
movl $1, -24(%ebp)
|
|
movl $1, -20(%ebp)
|
|
movl $1, -16(%ebp)
|
|
call __pre_gc@PLT
|
|
movl 8(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl 8(%ebp), %eax
|
|
sall $3, %eax
|
|
orl $3, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl $0, -24(%ebp)
|
|
jmp .L233
|
|
.L234:
|
|
movl -28(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -28(%ebp)
|
|
movl (%eax), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -24(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl -20(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
addl $1, -24(%ebp)
|
|
.L233:
|
|
movl -24(%ebp), %eax
|
|
cmpl 8(%ebp), %eax
|
|
jl .L234
|
|
call __post_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -12(%ebp), %ecx
|
|
xorl %gs:20, %ecx
|
|
je .L236
|
|
call __stack_chk_fail_local
|
|
.L236:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE48:
|
|
.size Barray, .-Barray
|
|
.globl Bsexp
|
|
.type Bsexp, @function
|
|
Bsexp:
|
|
.LFB49:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -36(%ebp)
|
|
movl $1, -32(%ebp)
|
|
movl $1, -28(%ebp)
|
|
movl $0, -24(%ebp)
|
|
movl $1, -20(%ebp)
|
|
movl $1, -16(%ebp)
|
|
call __pre_gc@PLT
|
|
movl 8(%ebp), %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
addl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl $0, (%eax)
|
|
movl 8(%ebp), %eax
|
|
subl $1, %eax
|
|
sall $3, %eax
|
|
orl $5, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -36(%ebp)
|
|
movl $0, -32(%ebp)
|
|
jmp .L238
|
|
.L239:
|
|
movl -36(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -36(%ebp)
|
|
movl (%eax), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl -28(%ebp), %eax
|
|
movl %eax, -24(%ebp)
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -32(%ebp), %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl -28(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
addl $1, -32(%ebp)
|
|
.L238:
|
|
movl 8(%ebp), %eax
|
|
subl $1, %eax
|
|
cmpl %eax, -32(%ebp)
|
|
jl .L239
|
|
movl -36(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl %edx, -36(%ebp)
|
|
movl (%eax), %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
call __post_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
movl -12(%ebp), %ecx
|
|
xorl %gs:20, %ecx
|
|
je .L241
|
|
call __stack_chk_fail_local
|
|
.L241:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE49:
|
|
.size Bsexp, .-Bsexp
|
|
.globl Btag
|
|
.type Btag, @function
|
|
Btag:
|
|
.LFB50:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $1, -4(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L243
|
|
movl $1, %eax
|
|
jmp .L244
|
|
.L243:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L245
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, 12(%ebp)
|
|
jne .L245
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl 16(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
jne .L245
|
|
movl $1, %eax
|
|
jmp .L246
|
|
.L245:
|
|
movl $0, %eax
|
|
.L246:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L244:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE50:
|
|
.size Btag, .-Btag
|
|
.globl Barray_patt
|
|
.type Barray_patt, @function
|
|
Barray_patt:
|
|
.LFB51:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $1, -4(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L248
|
|
movl $1, %eax
|
|
jmp .L249
|
|
.L248:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $3, %eax
|
|
jne .L250
|
|
movl -4(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
jne .L250
|
|
movl $1, %eax
|
|
jmp .L251
|
|
.L250:
|
|
movl $0, %eax
|
|
.L251:
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
.L249:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE51:
|
|
.size Barray_patt, .-Barray_patt
|
|
.section .rodata
|
|
.LC70:
|
|
.string ".string_patt:2"
|
|
.text
|
|
.globl Bstring_patt
|
|
.type Bstring_patt, @function
|
|
Bstring_patt:
|
|
.LFB52:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -16(%ebp)
|
|
movl $1, -12(%ebp)
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L253
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L253
|
|
subl $8, %esp
|
|
leal .LC70@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L253:
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L254
|
|
movl $1, %eax
|
|
jmp .L255
|
|
.L254:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L256
|
|
movl $1, %eax
|
|
jmp .L255
|
|
.L256:
|
|
movl -12(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -16(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $8, %esp
|
|
pushl %edx
|
|
pushl %eax
|
|
call strcmp@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jne .L257
|
|
movl $3, %eax
|
|
jmp .L255
|
|
.L257:
|
|
movl $1, %eax
|
|
.L255:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE52:
|
|
.size Bstring_patt, .-Bstring_patt
|
|
.globl Bclosure_tag_patt
|
|
.type Bclosure_tag_patt, @function
|
|
Bclosure_tag_patt:
|
|
.LFB53:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L260
|
|
movl $1, %eax
|
|
jmp .L261
|
|
.L260:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $7, %eax
|
|
jne .L262
|
|
movl $3, %eax
|
|
jmp .L261
|
|
.L262:
|
|
movl $1, %eax
|
|
.L261:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE53:
|
|
.size Bclosure_tag_patt, .-Bclosure_tag_patt
|
|
.globl Bboxed_patt
|
|
.type Bboxed_patt, @function
|
|
Bboxed_patt:
|
|
.LFB54:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L265
|
|
movl $3, %eax
|
|
jmp .L267
|
|
.L265:
|
|
movl $1, %eax
|
|
.L267:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE54:
|
|
.size Bboxed_patt, .-Bboxed_patt
|
|
.globl Bunboxed_patt
|
|
.type Bunboxed_patt, @function
|
|
Bunboxed_patt:
|
|
.LFB55:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
addl %eax, %eax
|
|
andl $2, %eax
|
|
orl $1, %eax
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE55:
|
|
.size Bunboxed_patt, .-Bunboxed_patt
|
|
.globl Barray_tag_patt
|
|
.type Barray_tag_patt, @function
|
|
Barray_tag_patt:
|
|
.LFB56:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L271
|
|
movl $1, %eax
|
|
jmp .L272
|
|
.L271:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $3, %eax
|
|
jne .L273
|
|
movl $3, %eax
|
|
jmp .L272
|
|
.L273:
|
|
movl $1, %eax
|
|
.L272:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE56:
|
|
.size Barray_tag_patt, .-Barray_tag_patt
|
|
.globl Bstring_tag_patt
|
|
.type Bstring_tag_patt, @function
|
|
Bstring_tag_patt:
|
|
.LFB57:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L276
|
|
movl $1, %eax
|
|
jmp .L277
|
|
.L276:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
jne .L278
|
|
movl $3, %eax
|
|
jmp .L277
|
|
.L278:
|
|
movl $1, %eax
|
|
.L277:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE57:
|
|
.size Bstring_tag_patt, .-Bstring_tag_patt
|
|
.globl Bsexp_tag_patt
|
|
.type Bsexp_tag_patt, @function
|
|
Bsexp_tag_patt:
|
|
.LFB58:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L281
|
|
movl $1, %eax
|
|
jmp .L282
|
|
.L281:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $5, %eax
|
|
jne .L283
|
|
movl $3, %eax
|
|
jmp .L282
|
|
.L283:
|
|
movl $1, %eax
|
|
.L282:
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE58:
|
|
.size Bsexp_tag_patt, .-Bsexp_tag_patt
|
|
.section .rodata
|
|
.LC71:
|
|
.string ".sta:3"
|
|
.LC72:
|
|
.string ".sta:2"
|
|
.text
|
|
.globl Bsta
|
|
.type Bsta, @function
|
|
Bsta:
|
|
.LFB59:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 16(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L286
|
|
subl $8, %esp
|
|
leal .LC71@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L286:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L287
|
|
subl $8, %esp
|
|
leal .LC72@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC5@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L287:
|
|
movl 16(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
jne .L288
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %ecx
|
|
movl 16(%ebp), %eax
|
|
addl %ecx, %eax
|
|
movb %dl, (%eax)
|
|
jmp .L289
|
|
.L288:
|
|
movl 12(%ebp), %eax
|
|
sarl %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl 16(%ebp), %eax
|
|
addl %eax, %edx
|
|
movl 8(%ebp), %eax
|
|
movl %eax, (%edx)
|
|
.L289:
|
|
movl 8(%ebp), %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE59:
|
|
.size Bsta, .-Bsta
|
|
.type fix_unboxed, @function
|
|
fix_unboxed:
|
|
.LFB60:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $16, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 12(%ebp), %eax
|
|
movl %eax, -8(%ebp)
|
|
movl $0, -12(%ebp)
|
|
jmp .L292
|
|
.L295:
|
|
movl 8(%ebp), %eax
|
|
movzbl (%eax), %eax
|
|
cmpb $37, %al
|
|
jne .L293
|
|
movl -12(%ebp), %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl -8(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -4(%ebp)
|
|
movl -4(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L294
|
|
movl -4(%ebp), %eax
|
|
sarl %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
leal 0(,%eax,4), %ecx
|
|
movl -8(%ebp), %eax
|
|
addl %ecx, %eax
|
|
movl %edx, (%eax)
|
|
.L294:
|
|
addl $1, -12(%ebp)
|
|
.L293:
|
|
addl $1, 8(%ebp)
|
|
.L292:
|
|
movl 8(%ebp), %eax
|
|
movzbl (%eax), %eax
|
|
testb %al, %al
|
|
jne .L295
|
|
nop
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE60:
|
|
.size fix_unboxed, .-fix_unboxed
|
|
.globl Lfailure
|
|
.type Lfailure, @function
|
|
Lfailure:
|
|
.LFB61:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $40, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call fix_unboxed
|
|
addl $8, %esp
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call vfailure
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L297
|
|
call __stack_chk_fail_local
|
|
.L297:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE61:
|
|
.size Lfailure, .-Lfailure
|
|
.section .rodata
|
|
.align 4
|
|
.LC73:
|
|
.string "match failure at %s:%d:%d, value '%s'\n"
|
|
.text
|
|
.globl Bmatch_failure
|
|
.type Bmatch_failure, @function
|
|
Bmatch_failure:
|
|
.LFB62:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
call createStringBuf
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call printValue
|
|
addl $16, %esp
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
pushl 20(%ebp)
|
|
pushl 16(%ebp)
|
|
pushl 12(%ebp)
|
|
leal .LC73@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $32, %esp
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE62:
|
|
.size Bmatch_failure, .-Bmatch_failure
|
|
.section .rodata
|
|
.LC74:
|
|
.string "++:1"
|
|
.LC75:
|
|
.string "++:2"
|
|
.text
|
|
.globl Li__Infix_4343
|
|
.type Li__Infix_4343, @function
|
|
Li__Infix_4343:
|
|
.LFB63:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %esi
|
|
pushl %ebx
|
|
subl $16, %esp
|
|
.cfi_offset 6, -12
|
|
.cfi_offset 3, -16
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -20(%ebp)
|
|
movl $1, -16(%ebp)
|
|
movl $1, -12(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L300
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L300
|
|
subl $8, %esp
|
|
leal .LC74@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L300:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L301
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L301
|
|
subl $8, %esp
|
|
leal .LC75@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L301:
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -16(%ebp)
|
|
call __pre_gc@PLT
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl %edx, %eax
|
|
addl $5, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call alloc
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl %edx, %eax
|
|
sall $3, %eax
|
|
orl $1, %eax
|
|
movl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %ecx
|
|
movl -20(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
subl $4, %esp
|
|
pushl %ecx
|
|
pushl %edx
|
|
pushl %eax
|
|
call strncpy@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %ecx
|
|
movl -16(%ebp), %eax
|
|
leal 4(%eax), %edx
|
|
movl -12(%ebp), %eax
|
|
leal 4(%eax), %esi
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl %esi, %eax
|
|
subl $4, %esp
|
|
pushl %ecx
|
|
pushl %edx
|
|
pushl %eax
|
|
call strncpy@PLT
|
|
addl $16, %esp
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl %eax, %edx
|
|
movl -12(%ebp), %eax
|
|
movb $0, 4(%eax,%edx)
|
|
call __post_gc@PLT
|
|
movl -12(%ebp), %eax
|
|
addl $4, %eax
|
|
leal -8(%ebp), %esp
|
|
popl %ebx
|
|
.cfi_restore 3
|
|
popl %esi
|
|
.cfi_restore 6
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE63:
|
|
.size Li__Infix_4343, .-Li__Infix_4343
|
|
.section .rodata
|
|
.LC76:
|
|
.string "sprintf:1"
|
|
.text
|
|
.globl Lsprintf
|
|
.type Lsprintf, @function
|
|
Lsprintf:
|
|
.LFB64:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl -28(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L304
|
|
movl -28(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L304
|
|
subl $8, %esp
|
|
leal .LC76@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L304:
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -20(%ebp)
|
|
movl -20(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call fix_unboxed
|
|
addl $16, %esp
|
|
call createStringBuf
|
|
movl -20(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call vprintStringBuf
|
|
addl $16, %esp
|
|
call __pre_gc@PLT
|
|
movl stringBuf@GOTOFF(%ebx), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
call __post_gc@PLT
|
|
call deleteStringBuf
|
|
movl -16(%ebp), %eax
|
|
movl -12(%ebp), %edx
|
|
xorl %gs:20, %edx
|
|
je .L306
|
|
call __stack_chk_fail_local
|
|
.L306:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE64:
|
|
.size Lsprintf, .-Lsprintf
|
|
.section .rodata
|
|
.LC77:
|
|
.string "fprintf:1"
|
|
.LC78:
|
|
.string "fprintf:2"
|
|
.LC79:
|
|
.string "fprintf (...): %s\n"
|
|
.text
|
|
.globl Lfprintf
|
|
.type Lfprintf, @function
|
|
Lfprintf:
|
|
.LFB65:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl 12(%ebp), %eax
|
|
movl %eax, -32(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -16(%ebp)
|
|
movl -28(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L308
|
|
subl $8, %esp
|
|
leal .LC77@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L308:
|
|
movl -32(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L309
|
|
movl -32(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L309
|
|
subl $8, %esp
|
|
leal .LC78@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L309:
|
|
leal 16(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -32(%ebp)
|
|
call fix_unboxed
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl -32(%ebp)
|
|
pushl -28(%ebp)
|
|
call vfprintf@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jns .L312
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC79@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L312:
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L311
|
|
call __stack_chk_fail_local
|
|
.L311:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE65:
|
|
.size Lfprintf, .-Lfprintf
|
|
.section .rodata
|
|
.LC80:
|
|
.string "printf:1"
|
|
.text
|
|
.globl Lprintf
|
|
.type Lprintf, @function
|
|
Lprintf:
|
|
.LFB66:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -16(%ebp)
|
|
movl -28(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L314
|
|
movl -28(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L314
|
|
subl $8, %esp
|
|
leal .LC80@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L314:
|
|
leal 12(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call fix_unboxed
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
pushl -28(%ebp)
|
|
call vprintf@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
jns .L315
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC79@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L315:
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L316
|
|
call __stack_chk_fail_local
|
|
.L316:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE66:
|
|
.size Lprintf, .-Lprintf
|
|
.section .rodata
|
|
.LC81:
|
|
.string "fopen:1"
|
|
.LC82:
|
|
.string "fopen:2"
|
|
.align 4
|
|
.LC83:
|
|
.string "fopen (\"%s\", \"%s\"): %s, %s, %s\n"
|
|
.text
|
|
.globl Lfopen
|
|
.type Lfopen, @function
|
|
Lfopen:
|
|
.LFB67:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L318
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L318
|
|
subl $8, %esp
|
|
leal .LC81@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L318:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L319
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L319
|
|
subl $8, %esp
|
|
leal .LC82@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L319:
|
|
subl $8, %esp
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
call fopen@PLT
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
cmpl $0, -12(%ebp)
|
|
je .L320
|
|
movl -12(%ebp), %eax
|
|
jmp .L317
|
|
.L320:
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
pushl %eax
|
|
pushl 12(%ebp)
|
|
pushl 8(%ebp)
|
|
leal .LC83@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L317:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE67:
|
|
.size Lfopen, .-Lfopen
|
|
.section .rodata
|
|
.LC84:
|
|
.string "fclose"
|
|
.text
|
|
.globl Lfclose
|
|
.type Lfclose, @function
|
|
Lfclose:
|
|
.LFB68:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
je .L323
|
|
subl $8, %esp
|
|
leal .LC84@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC32@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L323:
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call fclose@PLT
|
|
addl $16, %esp
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE68:
|
|
.size Lfclose, .-Lfclose
|
|
.section .rodata
|
|
.LC85:
|
|
.string "%m[^\n]"
|
|
.LC86:
|
|
.string "readLine (): %s\n"
|
|
.text
|
|
.globl LreadLine
|
|
.type LreadLine, @function
|
|
LreadLine:
|
|
.LFB69:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
subl $8, %esp
|
|
leal -20(%ebp), %eax
|
|
pushl %eax
|
|
leal .LC85@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call __isoc99_scanf@PLT
|
|
addl $16, %esp
|
|
cmpl $1, %eax
|
|
jne .L325
|
|
movl -20(%ebp), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl -20(%ebp), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call free@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
jmp .L328
|
|
.L325:
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
testl %eax, %eax
|
|
je .L327
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC86@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L327:
|
|
subl $12, %esp
|
|
pushl $0
|
|
call LmakeString
|
|
addl $16, %esp
|
|
.L328:
|
|
movl -12(%ebp), %edx
|
|
xorl %gs:20, %edx
|
|
je .L329
|
|
call __stack_chk_fail_local
|
|
.L329:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE69:
|
|
.size LreadLine, .-LreadLine
|
|
.section .rodata
|
|
.LC87:
|
|
.string "fread"
|
|
.LC88:
|
|
.string "r"
|
|
.LC89:
|
|
.string "fread (\"%s\"): %s\n"
|
|
.text
|
|
.globl Lfread
|
|
.type Lfread, @function
|
|
Lfread:
|
|
.LFB70:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L331
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L331
|
|
subl $8, %esp
|
|
leal .LC87@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L331:
|
|
subl $8, %esp
|
|
leal .LC88@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl 8(%ebp)
|
|
call fopen@PLT
|
|
addl $16, %esp
|
|
movl %eax, -20(%ebp)
|
|
cmpl $0, -20(%ebp)
|
|
je .L332
|
|
subl $4, %esp
|
|
pushl $2
|
|
pushl $0
|
|
pushl -20(%ebp)
|
|
call fseek@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
js .L332
|
|
subl $12, %esp
|
|
pushl -20(%ebp)
|
|
call ftell@PLT
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call LmakeString
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
subl $12, %esp
|
|
pushl -20(%ebp)
|
|
call rewind@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
pushl -20(%ebp)
|
|
pushl %eax
|
|
pushl $1
|
|
pushl -12(%ebp)
|
|
call fread@PLT
|
|
addl $16, %esp
|
|
movl %eax, %edx
|
|
movl -16(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
jne .L332
|
|
subl $12, %esp
|
|
pushl -20(%ebp)
|
|
call fclose@PLT
|
|
addl $16, %esp
|
|
movl -12(%ebp), %eax
|
|
jmp .L330
|
|
.L332:
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl 8(%ebp)
|
|
leal .LC89@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L330:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE70:
|
|
.size Lfread, .-Lfread
|
|
.section .rodata
|
|
.LC90:
|
|
.string "fwrite:1"
|
|
.LC91:
|
|
.string "fwrite:2"
|
|
.LC92:
|
|
.string "w"
|
|
.LC93:
|
|
.string "fwrite (\"%s\"): %s\n"
|
|
.text
|
|
.globl Lfwrite
|
|
.type Lfwrite, @function
|
|
Lfwrite:
|
|
.LFB71:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L335
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L335
|
|
subl $8, %esp
|
|
leal .LC90@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L335:
|
|
movl 12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L336
|
|
movl 12(%ebp), %eax
|
|
subl $4, %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $1, %eax
|
|
je .L336
|
|
subl $8, %esp
|
|
leal .LC91@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC51@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L336:
|
|
subl $8, %esp
|
|
leal .LC92@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl 8(%ebp)
|
|
call fopen@PLT
|
|
addl $16, %esp
|
|
movl %eax, -12(%ebp)
|
|
cmpl $0, -12(%ebp)
|
|
je .L337
|
|
subl $4, %esp
|
|
pushl 12(%ebp)
|
|
leal .LC45@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl -12(%ebp)
|
|
call fprintf@PLT
|
|
addl $16, %esp
|
|
testl %eax, %eax
|
|
js .L337
|
|
subl $12, %esp
|
|
pushl -12(%ebp)
|
|
call fclose@PLT
|
|
addl $16, %esp
|
|
jmp .L334
|
|
.L337:
|
|
call __errno_location@PLT
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call strerror@PLT
|
|
addl $16, %esp
|
|
subl $4, %esp
|
|
pushl %eax
|
|
pushl 8(%ebp)
|
|
leal .LC93@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call failure
|
|
addl $16, %esp
|
|
.L334:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE71:
|
|
.size Lfwrite, .-Lfwrite
|
|
.globl Lfst
|
|
.type Lfst, @function
|
|
Lfst:
|
|
.LFB72:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $8, %esp
|
|
pushl $1
|
|
pushl 8(%ebp)
|
|
call Belem
|
|
addl $16, %esp
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE72:
|
|
.size Lfst, .-Lfst
|
|
.globl Lsnd
|
|
.type Lsnd, @function
|
|
Lsnd:
|
|
.LFB73:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $8, %esp
|
|
pushl $3
|
|
pushl 8(%ebp)
|
|
call Belem
|
|
addl $16, %esp
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE73:
|
|
.size Lsnd, .-Lsnd
|
|
.globl Lhd
|
|
.type Lhd, @function
|
|
Lhd:
|
|
.LFB74:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $8, %esp
|
|
pushl $1
|
|
pushl 8(%ebp)
|
|
call Belem
|
|
addl $16, %esp
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE74:
|
|
.size Lhd, .-Lhd
|
|
.globl Ltl
|
|
.type Ltl, @function
|
|
Ltl:
|
|
.LFB75:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
subl $8, %esp
|
|
pushl $3
|
|
pushl 8(%ebp)
|
|
call Belem
|
|
addl $16, %esp
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE75:
|
|
.size Ltl, .-Ltl
|
|
.section .rodata
|
|
.LC94:
|
|
.string "> "
|
|
.text
|
|
.globl Lread
|
|
.type Lread, @function
|
|
Lread:
|
|
.LFB76:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl $1, -16(%ebp)
|
|
subl $12, %esp
|
|
leal .LC94@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
subl $8, %esp
|
|
leal -16(%ebp), %eax
|
|
pushl %eax
|
|
leal .LC34@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call __isoc99_scanf@PLT
|
|
addl $16, %esp
|
|
movl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
movl -12(%ebp), %edx
|
|
xorl %gs:20, %edx
|
|
je .L349
|
|
call __stack_chk_fail_local
|
|
.L349:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE76:
|
|
.size Lread, .-Lread
|
|
.section .rodata
|
|
.LC95:
|
|
.string "%d\n"
|
|
.text
|
|
.globl Lwrite
|
|
.type Lwrite, @function
|
|
Lwrite:
|
|
.LFB77:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
sarl %eax
|
|
subl $8, %esp
|
|
pushl %eax
|
|
leal .LC95@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
movl $0, %eax
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE77:
|
|
.size Lwrite, .-Lwrite
|
|
.globl set_args
|
|
.type set_args, @function
|
|
set_args:
|
|
.LFB78:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $36, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 12(%ebp), %eax
|
|
movl %eax, -28(%ebp)
|
|
movl %gs:20, %eax
|
|
movl %eax, -12(%ebp)
|
|
xorl %eax, %eax
|
|
movl 8(%ebp), %eax
|
|
movl %eax, -16(%ebp)
|
|
movl $0, -24(%ebp)
|
|
call __pre_gc@PLT
|
|
movl -16(%ebp), %eax
|
|
addl %eax, %eax
|
|
orl $1, %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call LmakeArray
|
|
addl $16, %esp
|
|
movl %eax, -24(%ebp)
|
|
subl $12, %esp
|
|
leal -24(%ebp), %eax
|
|
pushl %eax
|
|
call push_extra_root
|
|
addl $16, %esp
|
|
movl $0, -20(%ebp)
|
|
jmp .L353
|
|
.L354:
|
|
movl -20(%ebp), %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl -28(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call Bstring
|
|
addl $16, %esp
|
|
movl %eax, %ecx
|
|
movl -24(%ebp), %eax
|
|
movl -20(%ebp), %edx
|
|
sall $2, %edx
|
|
addl %edx, %eax
|
|
movl %ecx, %edx
|
|
movl %edx, (%eax)
|
|
addl $1, -20(%ebp)
|
|
.L353:
|
|
movl -20(%ebp), %eax
|
|
cmpl -16(%ebp), %eax
|
|
jl .L354
|
|
subl $12, %esp
|
|
leal -24(%ebp), %eax
|
|
pushl %eax
|
|
call pop_extra_root
|
|
addl $16, %esp
|
|
call __post_gc@PLT
|
|
movl -24(%ebp), %edx
|
|
movl global_sysargs@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
subl $12, %esp
|
|
movl global_sysargs@GOT(%ebx), %eax
|
|
pushl %eax
|
|
call push_extra_root
|
|
addl $16, %esp
|
|
nop
|
|
movl -12(%ebp), %eax
|
|
xorl %gs:20, %eax
|
|
je .L355
|
|
call __stack_chk_fail_local
|
|
.L355:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE78:
|
|
.size set_args, .-set_args
|
|
.data
|
|
.align 4
|
|
.type SPACE_SIZE, @object
|
|
.size SPACE_SIZE, 4
|
|
SPACE_SIZE:
|
|
.long 16384
|
|
.text
|
|
.type free_pool, @function
|
|
free_pool:
|
|
.LFB79:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %edx
|
|
movl (%edx), %edx
|
|
movl %edx, -16(%ebp)
|
|
movl 8(%ebp), %edx
|
|
movl 12(%edx), %edx
|
|
movl %edx, -12(%ebp)
|
|
movl 8(%ebp), %edx
|
|
movl $0, (%edx)
|
|
movl 8(%ebp), %edx
|
|
movl $0, 12(%edx)
|
|
movl 8(%ebp), %edx
|
|
movl $0, 4(%edx)
|
|
movl 8(%ebp), %edx
|
|
movl $0, 8(%edx)
|
|
subl $8, %esp
|
|
pushl -12(%ebp)
|
|
pushl -16(%ebp)
|
|
movl %eax, %ebx
|
|
call munmap@PLT
|
|
addl $16, %esp
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE79:
|
|
.size free_pool, .-free_pool
|
|
.section .rodata
|
|
.align 4
|
|
.LC96:
|
|
.string "EROOR: init_to_space: mmap failed\n"
|
|
.text
|
|
.type init_to_space, @function
|
|
init_to_space:
|
|
.LFB80:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $0, -12(%ebp)
|
|
cmpl $0, 8(%ebp)
|
|
je .L359
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
addl %eax, %eax
|
|
movl %eax, SPACE_SIZE@GOTOFF(%ebx)
|
|
.L359:
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
sall $2, %eax
|
|
movl %eax, -12(%ebp)
|
|
subl $8, %esp
|
|
pushl $0
|
|
pushl $-1
|
|
pushl $98
|
|
pushl $3
|
|
pushl -12(%ebp)
|
|
pushl $0
|
|
call mmap@PLT
|
|
addl $32, %esp
|
|
movl %eax, to_space@GOTOFF(%ebx)
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
cmpl $-1, %eax
|
|
jne .L360
|
|
subl $12, %esp
|
|
leal .LC96@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L360:
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
movl %eax, 8+to_space@GOTOFF(%ebx)
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %edx
|
|
sall $2, %edx
|
|
addl %edx, %eax
|
|
movl %eax, 4+to_space@GOTOFF(%ebx)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
movl %eax, 12+to_space@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE80:
|
|
.size init_to_space, .-init_to_space
|
|
.type gc_swap_spaces, @function
|
|
gc_swap_spaces:
|
|
.LFB81:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $4, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
subl $12, %esp
|
|
leal from_space@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call free_pool
|
|
addl $16, %esp
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
movl %eax, from_space@GOTOFF(%ebx)
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, 8+from_space@GOTOFF(%ebx)
|
|
movl 4+to_space@GOTOFF(%ebx), %eax
|
|
movl %eax, 4+from_space@GOTOFF(%ebx)
|
|
movl 12+to_space@GOTOFF(%ebx), %eax
|
|
movl %eax, 12+from_space@GOTOFF(%ebx)
|
|
movl $0, to_space@GOTOFF(%ebx)
|
|
movl $0, 8+to_space@GOTOFF(%ebx)
|
|
movl $0, 4+to_space@GOTOFF(%ebx)
|
|
movl $0, 12+to_space@GOTOFF(%ebx)
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE81:
|
|
.size gc_swap_spaces, .-gc_swap_spaces
|
|
.type copy_elements, @function
|
|
copy_elements:
|
|
.LFB82:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $0, -20(%ebp)
|
|
movl $0, -16(%ebp)
|
|
movl $0, -20(%ebp)
|
|
jmp .L363
|
|
.L367:
|
|
movl -20(%ebp), %eax
|
|
leal 0(,%eax,4), %edx
|
|
movl 12(%ebp), %eax
|
|
addl %edx, %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -12(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L364
|
|
movl from_space@GOTOFF(%ebx), %edx
|
|
movl -12(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
ja .L364
|
|
movl 4+from_space@GOTOFF(%ebx), %edx
|
|
movl -12(%ebp), %eax
|
|
cmpl %eax, %edx
|
|
ja .L365
|
|
.L364:
|
|
movl 8(%ebp), %eax
|
|
movl -12(%ebp), %edx
|
|
movl %edx, (%eax)
|
|
addl $4, 8(%ebp)
|
|
jmp .L366
|
|
.L365:
|
|
movl -12(%ebp), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call gc_copy
|
|
addl $16, %esp
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %edx
|
|
movl 8(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, 8(%ebp)
|
|
.L366:
|
|
addl $1, -20(%ebp)
|
|
.L363:
|
|
movl -20(%ebp), %eax
|
|
cmpl 16(%ebp), %eax
|
|
jl .L367
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE82:
|
|
.size copy_elements, .-copy_elements
|
|
.type extend_spaces, @function
|
|
extend_spaces:
|
|
.LFB83:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl $1, -20(%ebp)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
sall $2, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
sall $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
pushl $0
|
|
pushl -12(%ebp)
|
|
pushl -16(%ebp)
|
|
pushl %eax
|
|
call mremap@PLT
|
|
addl $16, %esp
|
|
movl %eax, -20(%ebp)
|
|
cmpl $-1, -20(%ebp)
|
|
jne .L369
|
|
movl $1, %eax
|
|
jmp .L370
|
|
.L369:
|
|
movl 4+to_space@GOTOFF(%ebx), %eax
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %edx
|
|
sall $2, %edx
|
|
addl %edx, %eax
|
|
movl %eax, 4+to_space@GOTOFF(%ebx)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
addl %eax, %eax
|
|
movl %eax, SPACE_SIZE@GOTOFF(%ebx)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
movl %eax, 12+to_space@GOTOFF(%ebx)
|
|
movl $0, %eax
|
|
.L370:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE83:
|
|
.size extend_spaces, .-extend_spaces
|
|
.section .rodata
|
|
.LC97:
|
|
.string "ERROR: gc_copy: out-of-space\n"
|
|
.LC98:
|
|
.string "ERROR: gc_copy: weird tag"
|
|
.text
|
|
.globl gc_copy
|
|
.type gc_copy, @function
|
|
gc_copy:
|
|
.LFB84:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl 8(%ebp), %eax
|
|
subl $4, %eax
|
|
movl %eax, -20(%ebp)
|
|
movl $0, -16(%ebp)
|
|
movl $0, -24(%ebp)
|
|
movl $0, -12(%ebp)
|
|
movl 8(%ebp), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L372
|
|
movl from_space@GOTOFF(%ebx), %eax
|
|
cmpl %eax, 8(%ebp)
|
|
jb .L372
|
|
movl 4+from_space@GOTOFF(%ebx), %eax
|
|
cmpl %eax, 8(%ebp)
|
|
jb .L373
|
|
.L372:
|
|
movl 8(%ebp), %eax
|
|
jmp .L374
|
|
.L373:
|
|
movl to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L375
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L376
|
|
.L375:
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
je .L376
|
|
subl $12, %esp
|
|
leal .LC97@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L376:
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $1, %eax
|
|
testl %eax, %eax
|
|
jne .L377
|
|
movl to_space@GOTOFF(%ebx), %edx
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L377
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
jbe .L377
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
jmp .L374
|
|
.L377:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, -24(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
andl $7, %eax
|
|
cmpl $3, %eax
|
|
je .L379
|
|
cmpl $3, %eax
|
|
jg .L380
|
|
cmpl $1, %eax
|
|
je .L381
|
|
jmp .L378
|
|
.L380:
|
|
cmpl $5, %eax
|
|
je .L382
|
|
cmpl $7, %eax
|
|
jne .L378
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %edx
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
addl %eax, %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, -24(%ebp)
|
|
movl -24(%ebp), %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
subl $4, %esp
|
|
pushl -12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl -24(%ebp)
|
|
call copy_elements
|
|
addl $16, %esp
|
|
jmp .L384
|
|
.L379:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %edx
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl $1, %eax
|
|
sall $2, %eax
|
|
subl $1, %eax
|
|
andl $-4, %eax
|
|
addl $4, %eax
|
|
addl %eax, %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, -24(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl -24(%ebp), %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
subl $4, %esp
|
|
pushl -12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl -24(%ebp)
|
|
call copy_elements
|
|
addl $16, %esp
|
|
jmp .L384
|
|
.L381:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %edx
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
shrl $3, %eax
|
|
addl $4, %eax
|
|
andl $-4, %eax
|
|
addl $4, %eax
|
|
addl %eax, %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, -24(%ebp)
|
|
movl -24(%ebp), %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
subl $8, %esp
|
|
pushl 8(%ebp)
|
|
pushl -24(%ebp)
|
|
call strcpy@PLT
|
|
addl $16, %esp
|
|
jmp .L384
|
|
.L382:
|
|
movl 8(%ebp), %eax
|
|
subl $8, %eax
|
|
movl %eax, -16(%ebp)
|
|
movl -16(%ebp), %eax
|
|
movl 4(%eax), %eax
|
|
shrl $3, %eax
|
|
movl %eax, -12(%ebp)
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl -12(%ebp), %edx
|
|
addl $2, %edx
|
|
sall $2, %edx
|
|
addl %eax, %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
movl -16(%ebp), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, -24(%ebp)
|
|
movl -20(%ebp), %eax
|
|
movl (%eax), %eax
|
|
movl %eax, %edx
|
|
movl -24(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
addl $4, -24(%ebp)
|
|
movl -24(%ebp), %edx
|
|
movl -20(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
subl $4, %esp
|
|
pushl -12(%ebp)
|
|
pushl 8(%ebp)
|
|
pushl -24(%ebp)
|
|
call copy_elements
|
|
addl $16, %esp
|
|
jmp .L384
|
|
.L378:
|
|
subl $12, %esp
|
|
leal .LC98@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L384:
|
|
movl -24(%ebp), %eax
|
|
.L374:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE84:
|
|
.size gc_copy, .-gc_copy
|
|
.globl gc_test_and_copy_root
|
|
.type gc_test_and_copy_root, @function
|
|
gc_test_and_copy_root:
|
|
.LFB85:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $8, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl 8(%ebp), %edx
|
|
movl (%edx), %edx
|
|
andl $1, %edx
|
|
testl %edx, %edx
|
|
jne .L387
|
|
movl from_space@GOTOFF(%eax), %ecx
|
|
movl 8(%ebp), %edx
|
|
movl (%edx), %edx
|
|
cmpl %edx, %ecx
|
|
ja .L387
|
|
movl 4+from_space@GOTOFF(%eax), %edx
|
|
movl 8(%ebp), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
jbe .L387
|
|
movl 8(%ebp), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call gc_copy
|
|
addl $16, %esp
|
|
movl %eax, %edx
|
|
movl 8(%ebp), %eax
|
|
movl %edx, (%eax)
|
|
.L387:
|
|
nop
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE85:
|
|
.size gc_test_and_copy_root, .-gc_test_and_copy_root
|
|
.globl gc_root_scan_data
|
|
.type gc_root_scan_data, @function
|
|
gc_root_scan_data:
|
|
.LFB86:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl __start_custom_data@GOT(%ebx), %eax
|
|
movl %eax, -12(%ebp)
|
|
jmp .L389
|
|
.L390:
|
|
subl $12, %esp
|
|
pushl -12(%ebp)
|
|
call gc_test_and_copy_root
|
|
addl $16, %esp
|
|
addl $4, -12(%ebp)
|
|
.L389:
|
|
movl __stop_custom_data@GOT(%ebx), %eax
|
|
cmpl %eax, -12(%ebp)
|
|
jb .L390
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE86:
|
|
.size gc_root_scan_data, .-gc_root_scan_data
|
|
.type init_extra_roots, @function
|
|
init_extra_roots:
|
|
.LFB87:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $0, extra_roots@GOTOFF(%eax)
|
|
nop
|
|
popl %ebp
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE87:
|
|
.size init_extra_roots, .-init_extra_roots
|
|
.section .rodata
|
|
.align 4
|
|
.LC99:
|
|
.string "EROOR: init_pool: mmap failed\n"
|
|
.text
|
|
.globl init_pool
|
|
.type init_pool, @function
|
|
init_pool:
|
|
.LFB88:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
sall $2, %eax
|
|
movl %eax, -12(%ebp)
|
|
subl $8, %esp
|
|
pushl $0
|
|
pushl $-1
|
|
pushl $98
|
|
pushl $3
|
|
pushl -12(%ebp)
|
|
pushl $0
|
|
call mmap@PLT
|
|
addl $32, %esp
|
|
movl %eax, from_space@GOTOFF(%ebx)
|
|
movl $0, to_space@GOTOFF(%ebx)
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
cmpl $-1, %eax
|
|
jne .L393
|
|
subl $12, %esp
|
|
leal .LC99@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L393:
|
|
movl from_space@GOTOFF(%ebx), %eax
|
|
movl %eax, 8+from_space@GOTOFF(%ebx)
|
|
movl from_space@GOTOFF(%ebx), %eax
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %edx
|
|
sall $2, %edx
|
|
addl %edx, %eax
|
|
movl %eax, 4+from_space@GOTOFF(%ebx)
|
|
movl SPACE_SIZE@GOTOFF(%ebx), %eax
|
|
movl %eax, 12+from_space@GOTOFF(%ebx)
|
|
movl $0, 8+to_space@GOTOFF(%ebx)
|
|
movl $0, 4+to_space@GOTOFF(%ebx)
|
|
movl $0, 12+to_space@GOTOFF(%ebx)
|
|
call init_extra_roots
|
|
nop
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE88:
|
|
.size init_pool, .-init_pool
|
|
.section .rodata
|
|
.align 4
|
|
.LC100:
|
|
.string "gc: ASSERT: !IN_PASSIVE_SPACE(current) to_begin = %p to_end = %p current = %p\n"
|
|
.align 4
|
|
.LC101:
|
|
.string "ASSERT: !IN_PASSIVE_SPACE(current)\n"
|
|
.LC102:
|
|
.string "runtime.c"
|
|
.LC103:
|
|
.string "IN_PASSIVE_SPACE(current)"
|
|
.LC104:
|
|
.string "current + size < to_space.end"
|
|
.text
|
|
.type gc, @function
|
|
gc:
|
|
.LFB89:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
pushl %ebx
|
|
subl $20, %esp
|
|
.cfi_offset 3, -12
|
|
call __x86.get_pc_thunk.bx
|
|
addl $_GLOBAL_OFFSET_TABLE_, %ebx
|
|
movl to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl %edx, (%eax)
|
|
call gc_root_scan_data
|
|
call __gc_root_scan_stack@PLT
|
|
movl $0, -12(%ebp)
|
|
jmp .L395
|
|
.L396:
|
|
movl -12(%ebp), %eax
|
|
movl 4+extra_roots@GOTOFF(%ebx,%eax,4), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call gc_test_and_copy_root
|
|
addl $16, %esp
|
|
addl $1, -12(%ebp)
|
|
.L395:
|
|
movl extra_roots@GOTOFF(%ebx), %eax
|
|
cmpl %eax, -12(%ebp)
|
|
jl .L396
|
|
movl to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L397
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L399
|
|
.L397:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %ecx
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl to_space@GOTOFF(%ebx), %eax
|
|
pushl %ecx
|
|
pushl %edx
|
|
pushl %eax
|
|
leal .LC100@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call printf@PLT
|
|
addl $16, %esp
|
|
movl stdout@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
subl $12, %esp
|
|
pushl %eax
|
|
call fflush@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
leal .LC101@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call perror@PLT
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl $1
|
|
call exit@PLT
|
|
.L401:
|
|
call extend_spaces
|
|
testl %eax, %eax
|
|
je .L399
|
|
call gc_swap_spaces
|
|
subl $12, %esp
|
|
pushl $1
|
|
call init_to_space
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call gc
|
|
addl $16, %esp
|
|
jmp .L400
|
|
.L399:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl 8(%ebp), %edx
|
|
sall $2, %edx
|
|
addl %eax, %edx
|
|
movl 4+to_space@GOTOFF(%ebx), %eax
|
|
cmpl %eax, %edx
|
|
jnb .L401
|
|
movl to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L402
|
|
movl 4+to_space@GOTOFF(%ebx), %edx
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
cmpl %eax, %edx
|
|
ja .L405
|
|
.L402:
|
|
leal __PRETTY_FUNCTION__.3232@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl $1620
|
|
leal .LC102@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC103@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call __assert_fail@PLT
|
|
.L405:
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl 8(%ebp), %edx
|
|
sall $2, %edx
|
|
addl %eax, %edx
|
|
movl 4+to_space@GOTOFF(%ebx), %eax
|
|
cmpl %eax, %edx
|
|
jb .L404
|
|
leal __PRETTY_FUNCTION__.3232@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
pushl $1621
|
|
leal .LC102@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
leal .LC104@GOTOFF(%ebx), %eax
|
|
pushl %eax
|
|
call __assert_fail@PLT
|
|
.L404:
|
|
call gc_swap_spaces
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
movl 8(%ebp), %edx
|
|
sall $2, %edx
|
|
addl %edx, %eax
|
|
movl %eax, 8+from_space@GOTOFF(%ebx)
|
|
movl current@GOT(%ebx), %eax
|
|
movl (%eax), %eax
|
|
.L400:
|
|
movl -4(%ebp), %ebx
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_restore 3
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE89:
|
|
.size gc, .-gc
|
|
.globl alloc
|
|
.type alloc, @function
|
|
alloc:
|
|
.LFB90:
|
|
.cfi_startproc
|
|
pushl %ebp
|
|
.cfi_def_cfa_offset 8
|
|
.cfi_offset 5, -8
|
|
movl %esp, %ebp
|
|
.cfi_def_cfa_register 5
|
|
subl $24, %esp
|
|
call __x86.get_pc_thunk.ax
|
|
addl $_GLOBAL_OFFSET_TABLE_, %eax
|
|
movl $1, -12(%ebp)
|
|
movl 8(%ebp), %edx
|
|
subl $1, %edx
|
|
shrl $2, %edx
|
|
addl $1, %edx
|
|
movl %edx, 8(%ebp)
|
|
movl 8+from_space@GOTOFF(%eax), %edx
|
|
movl 8(%ebp), %ecx
|
|
sall $2, %ecx
|
|
addl %edx, %ecx
|
|
movl 4+from_space@GOTOFF(%eax), %edx
|
|
cmpl %edx, %ecx
|
|
jnb .L407
|
|
movl 8+from_space@GOTOFF(%eax), %edx
|
|
movl %edx, -12(%ebp)
|
|
movl 8+from_space@GOTOFF(%eax), %edx
|
|
movl 8(%ebp), %ecx
|
|
sall $2, %ecx
|
|
addl %ecx, %edx
|
|
movl %edx, 8+from_space@GOTOFF(%eax)
|
|
movl -12(%ebp), %eax
|
|
jmp .L408
|
|
.L407:
|
|
subl $12, %esp
|
|
pushl $0
|
|
call init_to_space
|
|
addl $16, %esp
|
|
subl $12, %esp
|
|
pushl 8(%ebp)
|
|
call gc
|
|
addl $16, %esp
|
|
.L408:
|
|
leave
|
|
.cfi_restore 5
|
|
.cfi_def_cfa 4, 4
|
|
ret
|
|
.cfi_endproc
|
|
.LFE90:
|
|
.size alloc, .-alloc
|
|
.data
|
|
.align 4
|
|
.type chars.2795, @object
|
|
.size chars.2795, 4
|
|
chars.2795:
|
|
.long 1
|
|
.local buf.2796
|
|
.comm buf.2796,6,4
|
|
.section .rodata
|
|
.type __PRETTY_FUNCTION__.3232, @object
|
|
.size __PRETTY_FUNCTION__.3232, 3
|
|
__PRETTY_FUNCTION__.3232:
|
|
.string "gc"
|
|
.section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat
|
|
.globl __x86.get_pc_thunk.ax
|
|
.hidden __x86.get_pc_thunk.ax
|
|
.type __x86.get_pc_thunk.ax, @function
|
|
__x86.get_pc_thunk.ax:
|
|
.LFB91:
|
|
.cfi_startproc
|
|
movl (%esp), %eax
|
|
ret
|
|
.cfi_endproc
|
|
.LFE91:
|
|
.section .text.__x86.get_pc_thunk.dx,"axG",@progbits,__x86.get_pc_thunk.dx,comdat
|
|
.globl __x86.get_pc_thunk.dx
|
|
.hidden __x86.get_pc_thunk.dx
|
|
.type __x86.get_pc_thunk.dx, @function
|
|
__x86.get_pc_thunk.dx:
|
|
.LFB92:
|
|
.cfi_startproc
|
|
movl (%esp), %edx
|
|
ret
|
|
.cfi_endproc
|
|
.LFE92:
|
|
.section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat
|
|
.globl __x86.get_pc_thunk.bx
|
|
.hidden __x86.get_pc_thunk.bx
|
|
.type __x86.get_pc_thunk.bx, @function
|
|
__x86.get_pc_thunk.bx:
|
|
.LFB93:
|
|
.cfi_startproc
|
|
movl (%esp), %ebx
|
|
ret
|
|
.cfi_endproc
|
|
.LFE93:
|
|
.hidden __stack_chk_fail_local
|
|
.ident "GCC: (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0"
|
|
.section .note.GNU-stack,"",@progbits
|