lama_byterun/runtime/runtime.s

1641 lines
28 KiB
ArmAsm
Raw Normal View History

2018-11-21 14:23:35 +03:00
.file "runtime.c"
.text
.globl Blength
.type Blength, @function
Blength:
.LFB6:
.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 8(%ebp), %eax
subl $4, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl (%eax), %eax
addl %eax, %eax
andl $33554430, %eax
orl $1, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE6:
.size Blength, .-Blength
.globl de_hash
.type de_hash, @function
de_hash:
.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 $16, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
leal 5+buf.3077@GOTOFF(%eax), %edx
movl %edx, -8(%ebp)
movl -8(%ebp), %edx
leal -1(%edx), %ecx
movl %ecx, -8(%ebp)
movb $0, (%edx)
jmp .L4
.L5:
movl chars.3076@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)
.L4:
cmpl $0, 8(%ebp)
jne .L5
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
.LFE7:
.size de_hash, .-de_hash
.local stringBuf
.comm stringBuf,12,4
.type createStringBuf, @function
createStringBuf:
.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
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
.LFE8:
.size createStringBuf, .-createStringBuf
.type deleteStringBuf, @function
deleteStringBuf:
.LFB9:
.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
.LFE9:
.size deleteStringBuf, .-deleteStringBuf
.type extendStringBuf, @function
extendStringBuf:
.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
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
.LFE10:
.size extendStringBuf, .-extendStringBuf
.type printStringBuf, @function
printStringBuf:
.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 $52, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.bx
addl $_GLOBAL_OFFSET_TABLE_, %ebx
movl 8(%ebp), %eax
movl %eax, -44(%ebp)
movl %gs:20, %eax
movl %eax, -12(%ebp)
xorl %eax, %eax
.L11:
leal 12(%ebp), %eax
movl %eax, -28(%ebp)
movl stringBuf@GOTOFF(%ebx), %eax
movl 4+stringBuf@GOTOFF(%ebx), %edx
addl %edx, %eax
movl %eax, -24(%ebp)
movl 8+stringBuf@GOTOFF(%ebx), %edx
movl 4+stringBuf@GOTOFF(%ebx), %eax
subl %eax, %edx
movl %edx, %eax
movl %eax, -20(%ebp)
movl -28(%ebp), %edx
movl -20(%ebp), %eax
pushl %edx
pushl -44(%ebp)
pushl %eax
pushl -24(%ebp)
call vsnprintf@PLT
addl $16, %esp
movl %eax, -16(%ebp)
movl -16(%ebp), %eax
cmpl -20(%ebp), %eax
jl .L12
call extendStringBuf
jmp .L11
.L12:
movl 4+stringBuf@GOTOFF(%ebx), %edx
movl -16(%ebp), %eax
addl %edx, %eax
movl %eax, 4+stringBuf@GOTOFF(%ebx)
nop
movl -12(%ebp), %eax
xorl %gs:20, %eax
je .L13
call __stack_chk_fail_local
.L13:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE11:
.size printStringBuf, .-printStringBuf
.section .rodata
.LC0:
.string "%d"
.LC1:
.string "\"%s\""
.LC2:
.string "["
.LC3:
.string ", "
.LC4:
.string "]"
.LC5:
.string "`%s"
.LC6:
.string " ("
.LC7:
.string ")"
.LC8:
.string "*** invalid tag: %x ***"
.text
.type printValue, @function
printValue:
.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 $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 .L15
movl 8(%ebp), %eax
sarl %eax
subl $8, %esp
pushl %eax
leal .LC0@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
jmp .L28
.L15:
movl 8(%ebp), %eax
subl $4, %eax
movl %eax, -12(%ebp)
movl -12(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
cmpl $16777216, %eax
je .L17
cmpl $33554432, %eax
je .L18
testl %eax, %eax
jne .L19
movl -12(%ebp), %eax
addl $4, %eax
subl $8, %esp
pushl %eax
leal .LC1@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
jmp .L16
.L17:
subl $12, %esp
leal .LC2@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
movl $0, -20(%ebp)
jmp .L20
.L22:
movl -12(%ebp), %eax
leal 4(%eax), %edx
movl -20(%ebp), %eax
sall $2, %eax
addl %edx, %eax
movl (%eax), %eax
subl $12, %esp
pushl %eax
call printValue
addl $16, %esp
movl -12(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
subl $1, %eax
cmpl %eax, -20(%ebp)
je .L21
subl $12, %esp
leal .LC3@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
.L21:
addl $1, -20(%ebp)
.L20:
movl -12(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
cmpl %eax, -20(%ebp)
jl .L22
subl $12, %esp
leal .LC4@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
jmp .L16
.L18:
movl 8(%ebp), %eax
subl $8, %eax
movl (%eax), %eax
subl $12, %esp
pushl %eax
call de_hash
addl $16, %esp
subl $8, %esp
pushl %eax
leal .LC5@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
movl -12(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
testl %eax, %eax
je .L27
subl $12, %esp
leal .LC6@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
movl $0, -16(%ebp)
jmp .L24
.L26:
movl -12(%ebp), %eax
leal 4(%eax), %edx
movl -16(%ebp), %eax
sall $2, %eax
addl %edx, %eax
movl (%eax), %eax
subl $12, %esp
pushl %eax
call printValue
addl $16, %esp
movl -12(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
subl $1, %eax
cmpl %eax, -16(%ebp)
je .L25
subl $12, %esp
leal .LC3@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
.L25:
addl $1, -16(%ebp)
.L24:
movl -12(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
cmpl %eax, -16(%ebp)
jl .L26
subl $12, %esp
leal .LC7@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
jmp .L27
.L19:
movl -12(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
subl $8, %esp
pushl %eax
leal .LC8@GOTOFF(%ebx), %eax
pushl %eax
call printStringBuf
addl $16, %esp
jmp .L28
.L27:
nop
.L16:
.L28:
nop
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE12:
.size printValue, .-printValue
.globl Belem
.type Belem, @function
Belem:
.LFB13:
.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 8(%ebp), %eax
subl $4, %eax
movl %eax, -4(%ebp)
sarl 12(%ebp)
movl -4(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
testl %eax, %eax
jne .L30
movl -4(%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 .L31
.L30:
movl -4(%ebp), %eax
leal 4(%eax), %edx
movl 12(%ebp), %eax
sall $2, %eax
addl %edx, %eax
movl (%eax), %eax
.L31:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE13:
.size Belem, .-Belem
.globl Bstring
.type Bstring, @function
Bstring:
.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 $20, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.bx
addl $_GLOBAL_OFFSET_TABLE_, %ebx
subl $12, %esp
pushl 8(%ebp)
call strlen@PLT
addl $16, %esp
movl %eax, -16(%ebp)
movl -16(%ebp), %eax
addl $5, %eax
subl $12, %esp
pushl %eax
call malloc@PLT
addl $16, %esp
movl %eax, -12(%ebp)
movl -12(%ebp), %eax
movl -16(%ebp), %edx
movl %edx, (%eax)
movl -16(%ebp), %eax
addl $1, %eax
movl %eax, %edx
movl -12(%ebp), %eax
addl $4, %eax
subl $4, %esp
pushl %edx
pushl 8(%ebp)
pushl %eax
call strncpy@PLT
addl $16, %esp
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
.LFE14:
.size Bstring, .-Bstring
.globl Bstringval
.type Bstringval, @function
Bstringval:
.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 $20, %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
call Bstring
addl $16, %esp
movl %eax, -12(%ebp)
call deleteStringBuf
movl -12(%ebp), %eax
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE15:
.size Bstringval, .-Bstringval
.globl Barray
.type Barray, @function
Barray:
.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 $36, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl %gs:20, %ecx
movl %ecx, -12(%ebp)
xorl %ecx, %ecx
movl 8(%ebp), %edx
addl $1, %edx
sall $2, %edx
subl $12, %esp
pushl %edx
movl %eax, %ebx
call malloc@PLT
addl $16, %esp
movl %eax, -20(%ebp)
movl 8(%ebp), %eax
orl $16777216, %eax
movl %eax, %edx
movl -20(%ebp), %eax
movl %edx, (%eax)
leal 12(%ebp), %eax
movl %eax, -28(%ebp)
movl $0, -24(%ebp)
jmp .L37
.L38:
movl -28(%ebp), %eax
leal 4(%eax), %edx
movl %edx, -28(%ebp)
movl (%eax), %eax
movl %eax, -16(%ebp)
movl -20(%ebp), %eax
leal 4(%eax), %edx
movl -24(%ebp), %eax
sall $2, %eax
addl %eax, %edx
movl -16(%ebp), %eax
movl %eax, (%edx)
addl $1, -24(%ebp)
.L37:
movl -24(%ebp), %eax
cmpl 8(%ebp), %eax
jl .L38
movl -20(%ebp), %eax
addl $4, %eax
movl -12(%ebp), %ecx
xorl %gs:20, %ecx
je .L40
call __stack_chk_fail_local
.L40:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE16:
.size Barray, .-Barray
.globl Bsexp
.type Bsexp, @function
Bsexp:
.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 $36, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl %gs:20, %ecx
movl %ecx, -12(%ebp)
xorl %ecx, %ecx
movl 8(%ebp), %edx
addl $2, %edx
sall $2, %edx
subl $12, %esp
pushl %edx
movl %eax, %ebx
call malloc@PLT
addl $16, %esp
movl %eax, -24(%ebp)
movl -24(%ebp), %eax
addl $4, %eax
movl %eax, -20(%ebp)
movl 8(%ebp), %eax
subl $1, %eax
orl $33554432, %eax
movl %eax, %edx
movl -20(%ebp), %eax
movl %edx, (%eax)
leal 12(%ebp), %eax
movl %eax, -32(%ebp)
movl $0, -28(%ebp)
jmp .L42
.L43:
movl -32(%ebp), %eax
leal 4(%eax), %edx
movl %edx, -32(%ebp)
movl (%eax), %eax
movl %eax, -16(%ebp)
movl -20(%ebp), %eax
leal 4(%eax), %edx
movl -28(%ebp), %eax
sall $2, %eax
addl %eax, %edx
movl -16(%ebp), %eax
movl %eax, (%edx)
addl $1, -28(%ebp)
.L42:
movl 8(%ebp), %eax
subl $1, %eax
cmpl %eax, -28(%ebp)
jl .L43
movl -32(%ebp), %eax
leal 4(%eax), %edx
movl %edx, -32(%ebp)
movl (%eax), %edx
movl -24(%ebp), %eax
movl %edx, (%eax)
movl -20(%ebp), %eax
addl $4, %eax
movl -12(%ebp), %ecx
xorl %gs:20, %ecx
je .L45
call __stack_chk_fail_local
.L45:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE17:
.size Bsexp, .-Bsexp
.globl Btag
.type Btag, @function
Btag:
.LFB18:
.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 8(%ebp), %eax
subl $4, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
cmpl $33554432, %eax
jne .L47
movl 8(%ebp), %eax
subl $8, %eax
movl (%eax), %eax
cmpl %eax, 12(%ebp)
jne .L47
movl -4(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
cmpl %eax, 16(%ebp)
jne .L47
movl $1, %eax
jmp .L48
.L47:
movl $0, %eax
.L48:
addl %eax, %eax
orl $1, %eax
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE18:
.size Btag, .-Btag
.globl Barray_patt
.type Barray_patt, @function
Barray_patt:
.LFB19:
.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 8(%ebp), %eax
andl $1, %eax
testl %eax, %eax
je .L51
movl $1, %eax
jmp .L52
.L51:
movl 8(%ebp), %eax
subl $4, %eax
movl %eax, -4(%ebp)
movl -4(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
cmpl $16777216, %eax
jne .L53
movl -4(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
cmpl %eax, 12(%ebp)
jne .L53
movl $1, %eax
jmp .L54
.L53:
movl $0, %eax
.L54:
addl %eax, %eax
orl $1, %eax
.L52:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE19:
.size Barray_patt, .-Barray_patt
.globl Bstring_patt
.type Bstring_patt, @function
Bstring_patt:
.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 $20, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl 8(%ebp), %edx
andl $1, %edx
testl %edx, %edx
je .L56
movl $1, %eax
jmp .L57
.L56:
movl 8(%ebp), %edx
subl $4, %edx
movl %edx, -16(%ebp)
movl 12(%ebp), %edx
subl $4, %edx
movl %edx, -12(%ebp)
movl -16(%ebp), %edx
movl (%edx), %edx
andl $-16777216, %edx
testl %edx, %edx
je .L58
movl $1, %eax
jmp .L57
.L58:
movl -12(%ebp), %edx
leal 4(%edx), %ecx
movl -16(%ebp), %edx
addl $4, %edx
subl $8, %esp
pushl %ecx
pushl %edx
movl %eax, %ebx
call strcmp@PLT
addl $16, %esp
testl %eax, %eax
jne .L59
movl $3, %eax
jmp .L57
.L59:
movl $1, %eax
.L57:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE20:
.size Bstring_patt, .-Bstring_patt
.globl Bboxed_patt
.type Bboxed_patt, @function
Bboxed_patt:
.LFB21:
.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 .L62
movl $3, %eax
jmp .L64
.L62:
movl $1, %eax
.L64:
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE21:
.size Bboxed_patt, .-Bboxed_patt
.globl Bunboxed_patt
.type Bunboxed_patt, @function
Bunboxed_patt:
.LFB22:
.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
.LFE22:
.size Bunboxed_patt, .-Bunboxed_patt
.globl Barray_tag_patt
.type Barray_tag_patt, @function
Barray_tag_patt:
.LFB23:
.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 .L68
movl $1, %eax
jmp .L69
.L68:
movl 8(%ebp), %eax
subl $4, %eax
movl (%eax), %eax
andl $-16777216, %eax
cmpl $16777216, %eax
jne .L70
movl $3, %eax
jmp .L69
.L70:
movl $1, %eax
.L69:
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE23:
.size Barray_tag_patt, .-Barray_tag_patt
.globl Bstring_tag_patt
.type Bstring_tag_patt, @function
Bstring_tag_patt:
.LFB24:
.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 .L73
movl $1, %eax
jmp .L74
.L73:
movl 8(%ebp), %eax
subl $4, %eax
movl (%eax), %eax
andl $-16777216, %eax
testl %eax, %eax
jne .L75
movl $3, %eax
jmp .L74
.L75:
movl $1, %eax
.L74:
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE24:
.size Bstring_tag_patt, .-Bstring_tag_patt
.globl Bsexp_tag_patt
.type Bsexp_tag_patt, @function
Bsexp_tag_patt:
.LFB25:
.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 .L78
movl $1, %eax
jmp .L79
.L78:
movl 8(%ebp), %eax
subl $4, %eax
movl (%eax), %eax
andl $-16777216, %eax
cmpl $33554432, %eax
jne .L80
movl $3, %eax
jmp .L79
.L80:
movl $1, %eax
.L79:
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE25:
.size Bsexp_tag_patt, .-Bsexp_tag_patt
.globl Bsta
.type Bsta, @function
Bsta:
.LFB26:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $56, %esp
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl 16(%ebp), %eax
movl %eax, -44(%ebp)
movl %gs:20, %eax
movl %eax, -12(%ebp)
xorl %eax, %eax
leal 20(%ebp), %eax
movl %eax, -28(%ebp)
movl $0, -24(%ebp)
jmp .L83
.L84:
movl -28(%ebp), %eax
leal 4(%eax), %edx
movl %edx, -28(%ebp)
movl (%eax), %eax
sarl %eax
movl %eax, -20(%ebp)
movl -20(%ebp), %eax
leal 0(,%eax,4), %edx
movl -44(%ebp), %eax
addl %edx, %eax
movl (%eax), %eax
movl %eax, -44(%ebp)
addl $1, -24(%ebp)
.L83:
movl 8(%ebp), %eax
subl $1, %eax
cmpl %eax, -24(%ebp)
jl .L84
movl -28(%ebp), %eax
leal 4(%eax), %edx
movl %edx, -28(%ebp)
movl (%eax), %eax
sarl %eax
movl %eax, -20(%ebp)
movl -44(%ebp), %eax
subl $4, %eax
movl %eax, -16(%ebp)
movl -16(%ebp), %eax
movl (%eax), %eax
andl $-16777216, %eax
testl %eax, %eax
jne .L85
movl 12(%ebp), %eax
sarl %eax
movl %eax, %ecx
movl -20(%ebp), %edx
movl -44(%ebp), %eax
addl %edx, %eax
movl %ecx, %edx
movb %dl, (%eax)
jmp .L88
.L85:
movl -20(%ebp), %eax
leal 0(,%eax,4), %edx
movl -44(%ebp), %eax
addl %eax, %edx
movl 12(%ebp), %eax
movl %eax, (%edx)
.L88:
nop
movl -12(%ebp), %eax
xorl %gs:20, %eax
je .L87
call __stack_chk_fail_local
.L87:
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE26:
.size Bsta, .-Bsta
.globl Lraw
.type Lraw, @function
Lraw:
.LFB27:
.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
sarl %eax
popl %ebp
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE27:
.size Lraw, .-Lraw
.globl Lprintf
.type Lprintf, @function
Lprintf:
.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 $36, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl 8(%ebp), %edx
movl %edx, -28(%ebp)
movl %gs:20, %ecx
movl %ecx, -12(%ebp)
xorl %ecx, %ecx
leal 12(%ebp), %edx
movl %edx, -16(%ebp)
movl -16(%ebp), %edx
subl $8, %esp
pushl %edx
pushl -28(%ebp)
movl %eax, %ebx
call vprintf@PLT
addl $16, %esp
nop
movl -12(%ebp), %eax
xorl %gs:20, %eax
je .L92
call __stack_chk_fail_local
.L92:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE28:
.size Lprintf, .-Lprintf
.globl Lstrcat
.type Lstrcat, @function
Lstrcat:
.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 8(%ebp), %eax
subl $4, %eax
movl %eax, -20(%ebp)
movl 12(%ebp), %eax
subl $4, %eax
movl %eax, -16(%ebp)
movl -20(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
movl %eax, %edx
movl -16(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
addl %edx, %eax
addl $5, %eax
subl $12, %esp
pushl %eax
call malloc@PLT
addl $16, %esp
movl %eax, -12(%ebp)
movl -20(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
movl %eax, %edx
movl -16(%ebp), %eax
movl (%eax), %eax
andl $16777215, %eax
addl %eax, %edx
movl -12(%ebp), %eax
movl %edx, (%eax)
movl -20(%ebp), %eax
leal 4(%eax), %edx
movl -12(%ebp), %eax
addl $4, %eax
subl $8, %esp
pushl %edx
pushl %eax
call strcpy@PLT
addl $16, %esp
movl -16(%ebp), %eax
leal 4(%eax), %edx
movl -12(%ebp), %eax
addl $4, %eax
subl $8, %esp
pushl %edx
pushl %eax
call strcat@PLT
addl $16, %esp
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
.LFE29:
.size Lstrcat, .-Lstrcat
.globl Lfprintf
.type Lfprintf, @function
Lfprintf:
.LFB30:
.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.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
movl 8(%ebp), %edx
movl %edx, -28(%ebp)
movl 12(%ebp), %edx
movl %edx, -32(%ebp)
movl %gs:20, %ecx
movl %ecx, -12(%ebp)
xorl %ecx, %ecx
leal 16(%ebp), %edx
movl %edx, -16(%ebp)
movl -16(%ebp), %edx
subl $4, %esp
pushl %edx
pushl -32(%ebp)
pushl -28(%ebp)
movl %eax, %ebx
call vfprintf@PLT
addl $16, %esp
nop
movl -12(%ebp), %eax
xorl %gs:20, %eax
je .L96
call __stack_chk_fail_local
.L96:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE30:
.size Lfprintf, .-Lfprintf
.globl Lfopen
.type Lfopen, @function
Lfopen:
.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 $4, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
subl $8, %esp
pushl 12(%ebp)
pushl 8(%ebp)
movl %eax, %ebx
call fopen@PLT
addl $16, %esp
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE31:
.size Lfopen, .-Lfopen
.globl Lfclose
.type Lfclose, @function
Lfclose:
.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 $4, %esp
.cfi_offset 3, -12
call __x86.get_pc_thunk.ax
addl $_GLOBAL_OFFSET_TABLE_, %eax
subl $12, %esp
pushl 8(%ebp)
movl %eax, %ebx
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
.LFE32:
.size Lfclose, .-Lfclose
.section .rodata
.LC9:
.string "> "
.text
.globl Lread
.type Lread, @function
Lread:
.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 %gs:20, %eax
movl %eax, -12(%ebp)
xorl %eax, %eax
subl $12, %esp
leal .LC9@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 .LC0@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 .L102
call __stack_chk_fail_local
.L102:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE33:
.size Lread, .-Lread
.section .rodata
.LC10:
.string "%d\n"
.text
.globl Lwrite
.type Lwrite, @function
Lwrite:
.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 $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 .LC10@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
.LFE34:
.size Lwrite, .-Lwrite
.section .rodata
.LC11:
.string "Start, end: %lx, %lx\n"
.LC12:
.string "Root: %lx %lx %lx\n"
.text
.globl __gc_root_scan_data
.type __gc_root_scan_data, @function
__gc_root_scan_data:
.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
movl %gs:20, %eax
movl %eax, -12(%ebp)
xorl %eax, %eax
movl __gc_data_start@GOT(%ebx), %eax
movl %eax, -16(%ebp)
subl $4, %esp
movl __gc_data_end@GOT(%ebx), %eax
pushl %eax
movl __gc_data_start@GOT(%ebx), %eax
pushl %eax
leal .LC11@GOTOFF(%ebx), %eax
pushl %eax
call printf@PLT
addl $16, %esp
jmp .L106
.L108:
movl -16(%ebp), %eax
movl (%eax), %eax
andl $1, %eax
testl %eax, %eax
jne .L107
movl -16(%ebp), %eax
movl (%eax), %edx
movl -16(%ebp), %eax
leal -16(%ebp), %ecx
pushl %ecx
pushl %edx
pushl %eax
leal .LC12@GOTOFF(%ebx), %eax
pushl %eax
call printf@PLT
addl $16, %esp
.L107:
movl -16(%ebp), %eax
addl $4, %eax
movl %eax, -16(%ebp)
.L106:
movl -16(%ebp), %eax
movl __gc_data_end@GOT(%ebx), %edx
cmpl %edx, %eax
jne .L108
nop
movl -12(%ebp), %eax
xorl %gs:20, %eax
je .L109
call __stack_chk_fail_local
.L109:
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE35:
.size __gc_root_scan_data, .-__gc_root_scan_data
.section .rodata
.LC13:
.string "STA 0x%lx\n"
.text
.globl Ltest
.type Ltest, @function
Ltest:
.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
subl $12, %esp
pushl $10
call putchar@PLT
addl $16, %esp
movl __start_text@GOT(%ebx), %eax
subl $8, %esp
pushl %eax
leal .LC13@GOTOFF(%ebx), %eax
pushl %eax
call printf@PLT
addl $16, %esp
movl __stop_text@GOT(%ebx), %eax
subl $8, %esp
pushl %eax
leal .LC13@GOTOFF(%ebx), %eax
pushl %eax
call printf@PLT
addl $16, %esp
call __gc_root_scan_data
call __gc_root_scan_stack@PLT
nop
movl -4(%ebp), %ebx
leave
.cfi_restore 5
.cfi_restore 3
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE36:
.size Ltest, .-Ltest
.local buf.3077
.comm buf.3077,6,4
.section .rodata
.align 4
.LC14:
.string "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNJPQRSTUVWXYZ"
.section .data.rel.local,"aw"
.align 4
.type chars.3076, @object
.size chars.3076, 4
chars.3076:
.long .LC14
.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:
.LFB37:
.cfi_startproc
movl (%esp), %eax
ret
.cfi_endproc
.LFE37:
.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:
.LFB38:
.cfi_startproc
movl (%esp), %ebx
ret
.cfi_endproc
.LFE38:
.hidden __stack_chk_fail_local
.ident "GCC: (GNU) 8.2.1 20180831"
.section .note.GNU-stack,"",@progbits