Skip to content

Instantly share code, notes, and snippets.

@53ningen
Last active April 10, 2016 10:30
Show Gist options
  • Save 53ningen/3c9bbef1405c6c89b267d471f08a18b5 to your computer and use it in GitHub Desktop.
Save 53ningen/3c9bbef1405c6c89b267d471f08a18b5 to your computer and use it in GitHub Desktop.
enum Hoge {
case Next
case Error
}
func piyo(arg: Hoge?) -> Bool {
return arg != nil
}
func foo(arg: Bool) -> Bool {
return !arg
}
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 9
.globl _main
.align 4, 0x90
_main:
.cfi_startproc
pushq %rbp
Ltmp0:
.cfi_def_cfa_offset 16
Ltmp1:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp2:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movq _globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_token5@GOTPCREL(%rip), %rax
movq __TZvOs7Process5_argcVs5Int32@GOTPCREL(%rip), %rcx
movl %edi, (%rcx)
cmpq $-1, (%rax)
movq %rsi, -8(%rbp)
je LBB0_2
movq _globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_token5@GOTPCREL(%rip), %rdi
movq _globalinit_33_1BDF70FFC18749BAB495A73B459ED2F0_func5@GOTPCREL(%rip), %rax
movq %rax, %rsi
callq _swift_once
LBB0_2:
xorl %eax, %eax
movq __TZvOs7Process11_unsafeArgvGSpGSpVs4Int8__@GOTPCREL(%rip), %rcx
movq -8(%rbp), %rdx
movq %rdx, (%rcx)
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.private_extern __TFO6output4Hogeg9hashValueSi
.globl __TFO6output4Hogeg9hashValueSi
.align 4, 0x90
__TFO6output4Hogeg9hashValueSi:
.cfi_startproc
pushq %rbp
Ltmp3:
.cfi_def_cfa_offset 16
Ltmp4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp5:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movb %dil, %al
testb $1, %al
movb %al, -9(%rbp)
jne LBB1_3
jmp LBB1_5
LBB1_5:
movb -9(%rbp), %al
testb $1, %al
je LBB1_2
jmp LBB1_1
LBB1_1:
LBB1_2:
movq $0, -8(%rbp)
jmp LBB1_4
LBB1_3:
movq $1, -8(%rbp)
LBB1_4:
movq -8(%rbp), %rdi
callq __TFSig9hashValueSi
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.private_extern __TZF6outputoi2eeFTOS_4HogeS0__Sb
.globl __TZF6outputoi2eeFTOS_4HogeS0__Sb
.align 4, 0x90
__TZF6outputoi2eeFTOS_4HogeS0__Sb:
.cfi_startproc
pushq %rbp
Ltmp6:
.cfi_def_cfa_offset 16
Ltmp7:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp8:
.cfi_def_cfa_register %rbp
movb %sil, %al
movb %dil, %cl
testb $1, %cl
movb %al, -17(%rbp)
movb %cl, -18(%rbp)
jne LBB2_3
jmp LBB2_9
LBB2_9:
movb -18(%rbp), %al
testb $1, %al
je LBB2_2
jmp LBB2_1
LBB2_1:
LBB2_2:
movq $0, -8(%rbp)
jmp LBB2_4
LBB2_3:
movq $1, -8(%rbp)
LBB2_4:
movb -17(%rbp), %al
testb $1, %al
jne LBB2_7
jmp LBB2_10
LBB2_10:
movb -17(%rbp), %al
testb $1, %al
je LBB2_6
jmp LBB2_5
LBB2_5:
LBB2_6:
movq $0, -16(%rbp)
jmp LBB2_8
LBB2_7:
movq $1, -16(%rbp)
LBB2_8:
movq -8(%rbp), %rax
movq -16(%rbp), %rcx
subq %rcx, %rax
sete %dl
movq %rax, -32(%rbp)
movb %dl, %al
popq %rbp
retq
.cfi_endproc
.globl __TTWO6output4Hoges9EquatableS_ZFS1_oi2eefTxx_Sb
.align 4, 0x90
__TTWO6output4Hoges9EquatableS_ZFS1_oi2eefTxx_Sb:
.cfi_startproc
pushq %rbp
Ltmp9:
.cfi_def_cfa_offset 16
Ltmp10:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp11:
.cfi_def_cfa_register %rbp
subq $32, %rsp
movzbl (%rsi), %esi
movzbl (%rdi), %edi
movq %rdx, -8(%rbp)
movq %rcx, -16(%rbp)
callq __TZF6outputoi2eeFTOS_4HogeS0__Sb
movb %al, %r8b
movb %r8b, -17(%rbp)
addq $32, %rsp
popq %rbp
retq
.cfi_endproc
.globl __TTWO6output4Hoges8HashableS_FS1_g9hashValueSi
.align 4, 0x90
__TTWO6output4Hoges8HashableS_FS1_g9hashValueSi:
.cfi_startproc
pushq %rbp
Ltmp12:
.cfi_def_cfa_offset 16
Ltmp13:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp14:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movb (%rdi), %al
movzbl %al, %edi
movq %rsi, -8(%rbp)
callq __TFO6output4Hogeg9hashValueSi
addq $16, %rsp
popq %rbp
retq
.cfi_endproc
.private_extern __TF6output4piyoFGSqOS_4Hoge_Sb
.globl __TF6output4piyoFGSqOS_4Hoge_Sb
.align 4, 0x90
__TF6output4piyoFGSqOS_4Hoge_Sb:
.cfi_startproc
pushq %rbp
Ltmp15:
.cfi_def_cfa_offset 16
Ltmp16:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp17:
.cfi_def_cfa_register %rbp
subq $32, %rsp
movb %dil, %al
movb %al, -8(%rbp)
movb $2, -16(%rbp)
movb $2, -24(%rbp)
leaq __TMfO6output4Hoge+8(%rip), %rdx
leaq __TWPO6output4Hoges9EquatableS_(%rip), %rcx
leaq -8(%rbp), %rdi
leaq -24(%rbp), %rsi
callq __TZFsoi2neuRxs9EquatablerFTGSqx_GSqx__Sb
movb %al, %r8b
movb %r8b, -25(%rbp)
addq $32, %rsp
popq %rbp
retq
.cfi_endproc
.private_extern __TF6output3fooFSbSb
.globl __TF6output3fooFSbSb
.align 4, 0x90
__TF6output3fooFSbSb:
.cfi_startproc
pushq %rbp
Ltmp18:
.cfi_def_cfa_offset 16
Ltmp19:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp20:
.cfi_def_cfa_register %rbp
movb %dil, %al
xorb $1, %al
popq %rbp
retq
.cfi_endproc
.globl __TWaO6output4Hoges9EquatableS_
.align 4, 0x90
__TWaO6output4Hoges9EquatableS_:
.cfi_startproc
pushq %rbp
Ltmp21:
.cfi_def_cfa_offset 16
Ltmp22:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp23:
.cfi_def_cfa_register %rbp
leaq __TWPO6output4Hoges9EquatableS_(%rip), %rax
popq %rbp
retq
.cfi_endproc
.globl __TWaO6output4Hoges8HashableS_
.align 4, 0x90
__TWaO6output4Hoges8HashableS_:
.cfi_startproc
pushq %rbp
Ltmp24:
.cfi_def_cfa_offset 16
Ltmp25:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp26:
.cfi_def_cfa_register %rbp
leaq __TWPO6output4Hoges8HashableS_(%rip), %rax
popq %rbp
retq
.cfi_endproc
.section __TEXT,__textcoal_nt,coalesced,pure_instructions
.private_extern ___swift_noop_void_return
.globl ___swift_noop_void_return
.weak_definition ___swift_noop_void_return
.align 4, 0x90
___swift_noop_void_return:
movq %rdi, -8(%rsp)
movq %rsi, -16(%rsp)
retq
.private_extern ___swift_memcpy1_1
.globl ___swift_memcpy1_1
.weak_definition ___swift_memcpy1_1
.align 4, 0x90
___swift_memcpy1_1:
movb (%rsi), %al
movb %al, (%rdi)
movq %rdi, %rax
movq %rdx, -8(%rsp)
retq
.private_extern ___swift_noop_self_return
.globl ___swift_noop_self_return
.weak_definition ___swift_noop_self_return
.align 4, 0x90
___swift_noop_self_return:
movq %rdi, %rax
movq %rsi, -8(%rsp)
retq
.private_extern ___swift_memcpy_array1_1
.globl ___swift_memcpy_array1_1
.weak_definition ___swift_memcpy_array1_1
.align 4, 0x90
___swift_memcpy_array1_1:
subq $24, %rsp
shlq $0, %rdx
movq %rdi, 16(%rsp)
movq %rcx, 8(%rsp)
callq _memcpy
movq 16(%rsp), %rax
addq $24, %rsp
retq
.private_extern ___swift_memmove_array1_1
.globl ___swift_memmove_array1_1
.weak_definition ___swift_memmove_array1_1
.align 4, 0x90
___swift_memmove_array1_1:
subq $24, %rsp
shlq $0, %rdx
movq %rdi, 16(%rsp)
movq %rcx, 8(%rsp)
callq _memmove
movq 16(%rsp), %rax
addq $24, %rsp
retq
.private_extern __TwxsO6output4Hoge
.globl __TwxsO6output4Hoge
.weak_definition __TwxsO6output4Hoge
.align 4, 0x90
__TwxsO6output4Hoge:
.cfi_startproc
pushq %rbp
Ltmp27:
.cfi_def_cfa_offset 16
Ltmp28:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp29:
.cfi_def_cfa_register %rbp
movb %sil, %al
addb $2, %al
movb %al, (%rdi)
movq %rdx, -8(%rbp)
popq %rbp
retq
.cfi_endproc
.private_extern __TwxgO6output4Hoge
.globl __TwxgO6output4Hoge
.weak_definition __TwxgO6output4Hoge
.align 4, 0x90
__TwxgO6output4Hoge:
.cfi_startproc
pushq %rbp
Ltmp30:
.cfi_def_cfa_offset 16
Ltmp31:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp32:
.cfi_def_cfa_register %rbp
movl $4294967295, %eax
movzbl (%rdi), %ecx
subl $2, %ecx
cmpl $0, %ecx
cmovll %eax, %ecx
movl %ecx, %eax
movq %rsi, -8(%rbp)
popq %rbp
retq
.cfi_endproc
.private_extern __TwugO6output4Hoge
.globl __TwugO6output4Hoge
.weak_definition __TwugO6output4Hoge
.align 4, 0x90
__TwugO6output4Hoge:
.cfi_startproc
pushq %rbp
Ltmp33:
.cfi_def_cfa_offset 16
Ltmp34:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp35:
.cfi_def_cfa_register %rbp
movb (%rdi), %al
andb $1, %al
movzbl %al, %eax
movq %rsi, -8(%rbp)
popq %rbp
retq
.cfi_endproc
.private_extern __TwupO6output4Hoge
.globl __TwupO6output4Hoge
.weak_definition __TwupO6output4Hoge
.align 4, 0x90
__TwupO6output4Hoge:
.cfi_startproc
pushq %rbp
Ltmp36:
.cfi_def_cfa_offset 16
Ltmp37:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp38:
.cfi_def_cfa_register %rbp
movq %rdi, -8(%rbp)
movq %rsi, -16(%rbp)
popq %rbp
retq
.cfi_endproc
.private_extern __TwuiO6output4Hoge
.globl __TwuiO6output4Hoge
.weak_definition __TwuiO6output4Hoge
.align 4, 0x90
__TwuiO6output4Hoge:
.cfi_startproc
pushq %rbp
Ltmp39:
.cfi_def_cfa_offset 16
Ltmp40:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp41:
.cfi_def_cfa_register %rbp
movb %sil, %al
andb $1, %al
movb %al, (%rdi)
movq %rdx, -8(%rbp)
popq %rbp
retq
.cfi_endproc
.section __TEXT,__text,regular,pure_instructions
.align 4, 0x90
l_get_field_types_Hoge:
.cfi_startproc
pushq %rbp
Ltmp42:
.cfi_def_cfa_offset 16
Ltmp43:
.cfi_offset %rbp, -16
movq %rsp, %rbp
Ltmp44:
.cfi_def_cfa_register %rbp
subq $48, %rsp
movq l_field_type_vector_Hoge(%rip), %rax
cmpq $0, %rax
movq %rdi, -8(%rbp)
movq %rax, -16(%rbp)
jne LBB19_3
xorl %eax, %eax
movl %eax, %ecx
movl $7, %eax
movl %eax, %esi
movq %rcx, %rdi
movq %rcx, -24(%rbp)
callq _swift_slowAlloc
movq %rax, %rcx
movq %rax, %rsi
movq -24(%rbp), %rdi
movq %rax, -32(%rbp)
movq %rdi, %rax
movq -32(%rbp), %rdx
lock cmpxchgq %rdx, l_field_type_vector_Hoge(%rip)
sete %r8b
testb $1, %r8b
movq %rcx, -40(%rbp)
movq %rax, -48(%rbp)
movq %rsi, -16(%rbp)
jne LBB19_3
xorl %eax, %eax
movl %eax, %esi
movl $7, %eax
movl %eax, %edx
movq -40(%rbp), %rdi
callq _swift_slowDealloc
movq -48(%rbp), %rdx
movq %rdx, -16(%rbp)
LBB19_3:
movq -16(%rbp), %rax
addq $48, %rsp
popq %rbp
retq
.cfi_endproc
.globl __TMaO6output4Hoge
.align 4, 0x90
__TMaO6output4Hoge:
pushq %rbp
movq %rsp, %rbp
leaq __TMfO6output4Hoge(%rip), %rax
addq $8, %rax
popq %rbp
retq
.section __DATA,__const
.globl __TWPO6output4Hoges9EquatableS_
.align 3
__TWPO6output4Hoges9EquatableS_:
.quad __TTWO6output4Hoges9EquatableS_ZFS1_oi2eefTxx_Sb
.globl __TWPO6output4Hoges8HashableS_
.align 3
__TWPO6output4Hoges8HashableS_:
.quad __TWPO6output4Hoges9EquatableS_
.quad __TTWO6output4Hoges8HashableS_FS1_g9hashValueSi
.globl __TWVO6output4Hoge
.align 3
__TWVO6output4Hoge:
.quad ___swift_noop_void_return
.quad ___swift_memcpy1_1
.quad ___swift_noop_self_return
.quad ___swift_noop_void_return
.quad ___swift_noop_void_return
.quad ___swift_memcpy1_1
.quad ___swift_memcpy1_1
.quad ___swift_memcpy1_1
.quad ___swift_memcpy1_1
.quad ___swift_memcpy1_1
.quad ___swift_memcpy1_1
.quad ___swift_noop_self_return
.quad ___swift_memcpy1_1
.quad ___swift_noop_void_return
.quad ___swift_memcpy_array1_1
.quad ___swift_memmove_array1_1
.quad ___swift_memmove_array1_1
.quad 1
.quad 2359296
.quad 1
.quad 254
.quad __TwxsO6output4Hoge
.quad __TwxgO6output4Hoge
.quad __TwugO6output4Hoge
.quad __TwupO6output4Hoge
.quad __TwuiO6output4Hoge
.section __TEXT,__cstring,cstring_literals
L___unnamed_1:
.asciz "O6output4Hoge"
.section __TEXT,__const
l___unnamed_2:
.asciz "Next\000Error\000"
.section __DATA,__const
.globl __TMnO6output4Hoge
.align 3
__TMnO6output4Hoge:
.quad 2
.quad L___unnamed_1
.long 0
.long 2
.quad l___unnamed_2
.quad l_get_field_types_Hoge
.quad 0
.long 0
.long 0
.long 0
.space 4
.align 3
__TMfO6output4Hoge:
.quad __TWVO6output4Hoge
.quad 2
.quad __TMnO6output4Hoge
.quad 0
.section __TEXT,__swift2_proto,regular,no_dead_strip
.align 3
l_protocol_conformances:
.long __TMps9Equatable@GOTPCREL+5
.long (__TMfO6output4Hoge+8)-(l_protocol_conformances+4)
.long __TWPO6output4Hoges9EquatableS_-(l_protocol_conformances+8)
.long 1
.long __TMps8Hashable@GOTPCREL+5
.long (__TMfO6output4Hoge+8)-(l_protocol_conformances+20)
.long __TWPO6output4Hoges8HashableS_-(l_protocol_conformances+24)
.long 1
.zerofill __DATA,__bss,l_field_type_vector_Hoge,8,3
.no_dead_strip __TTWO6output4Hoges9EquatableS_ZFS1_oi2eefTxx_Sb
.no_dead_strip __TTWO6output4Hoges8HashableS_FS1_g9hashValueSi
.no_dead_strip __TWPO6output4Hoges9EquatableS_
.no_dead_strip __TWPO6output4Hoges9EquatableS_
.no_dead_strip __TWaO6output4Hoges9EquatableS_
.no_dead_strip __TWPO6output4Hoges8HashableS_
.no_dead_strip __TWaO6output4Hoges8HashableS_
.no_dead_strip __TWVO6output4Hoge
.no_dead_strip __TMnO6output4Hoge
.no_dead_strip __TMaO6output4Hoge
.no_dead_strip __TMfO6output4Hoge
.no_dead_strip l_protocol_conformances
.linker_option "-lswiftCore"
.linker_option "-lobjc"
.section __DATA,__objc_imageinfo,regular,no_dead_strip
L_OBJC_IMAGE_INFO:
.long 0
.long 768
.globl __TMO6output4Hoge
.alt_entry __TMO6output4Hoge
__TMO6output4Hoge = __TMfO6output4Hoge+8
.subsections_via_symbols
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment