Created
August 2, 2019 02:05
-
-
Save norio-nomura/5cf4615b4334eeb7d4b5081aeb7e1536 to your computer and use it in GitHub Desktop.
swiftc -emit-assembly ClassExistencial.swift|swift demangle>ClassExistencial.asm
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.section __TEXT,__text,regular,pure_instructions | |
.build_version macos, 10, 15 sdk_version 10, 15 | |
.globl _main | |
.p2align 4, 0x90 | |
_main: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
pushq %r13 | |
subq $56, %rsp | |
.cfi_offset %r13, -24 | |
xorl %eax, %eax | |
movl %eax, %ecx | |
movl %edi, -20(%rbp) | |
movq %rcx, %rdi | |
movq %rsi, -32(%rbp) | |
callq type metadata accessor for ClassExistencial.C1 | |
movq %rax, %r13 | |
movq %rdx, -40(%rbp) | |
callq ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1 | |
movq %rax, ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P(%rip) | |
leaq protocol witness table for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial(%rip), %rax | |
movq %rax, ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P+8(%rip) | |
movq ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P(%rip), %rax | |
movq ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P+8(%rip), %rcx | |
movq %rax, %rdx | |
movq %rdx, %rdi | |
movq %rax, -48(%rbp) | |
movq %rcx, -56(%rbp) | |
callq _swift_getObjectType | |
movq -48(%rbp), %rcx | |
movq %rcx, -16(%rbp) | |
movq -56(%rbp), %rdx | |
movq 8(%rdx), %rsi | |
leaq -16(%rbp), %rdi | |
movq %rdi, %r13 | |
movq %rax, %rdi | |
movq %rsi, -64(%rbp) | |
movq %rdx, %rsi | |
movq -64(%rbp), %rax | |
callq *%rax | |
xorl %eax, %eax | |
addq $56, %rsp | |
popq %r13 | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern type metadata accessor for ClassExistencial.C1 | |
.globl type metadata accessor for ClassExistencial.C1 | |
.p2align 4, 0x90 | |
type metadata accessor for ClassExistencial.C1: | |
pushq %rbp | |
movq %rsp, %rbp | |
subq $16, %rsp | |
movq lazy cache variable for type metadata for ClassExistencial.C1(%rip), %rax | |
cmpq $0, %rax | |
movq %rax, -8(%rbp) | |
jne LBB1_2 | |
leaq full type metadata for ClassExistencial.C1+16(%rip), %rdi | |
callq _swift_getInitializedObjCClass | |
movq %rax, %rdi | |
movq %rax, lazy cache variable for type metadata for ClassExistencial.C1(%rip) | |
movq %rdi, -8(%rbp) | |
LBB1_2: | |
movq -8(%rbp), %rax | |
xorl %ecx, %ecx | |
movl %ecx, %edx | |
addq $16, %rsp | |
popq %rbp | |
retq | |
.private_extern ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.globl ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.p2align 4, 0x90 | |
ClassExistencial.C.__allocating_init() -> ClassExistencial.C: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
pushq %r13 | |
subq $24, %rsp | |
.cfi_offset %r13, -24 | |
xorl %eax, %eax | |
movl %eax, %edi | |
callq type metadata accessor for ClassExistencial.C | |
movl $16, %esi | |
movl $7, %edi | |
movq %rdi, -16(%rbp) | |
movq %rax, %rdi | |
movq -16(%rbp), %rax | |
movq %rdx, -24(%rbp) | |
movq %rax, %rdx | |
callq _swift_allocObject | |
movq %rax, %r13 | |
callq ClassExistencial.C.init() -> ClassExistencial.C | |
addq $24, %rsp | |
popq %r13 | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C.init() -> ClassExistencial.C | |
.globl ClassExistencial.C.init() -> ClassExistencial.C | |
.p2align 4, 0x90 | |
ClassExistencial.C.init() -> ClassExistencial.C: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
movq %r13, %rax | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C.deinit | |
.globl ClassExistencial.C.deinit | |
.p2align 4, 0x90 | |
ClassExistencial.C.deinit: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
movq %r13, %rax | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C.__deallocating_deinit | |
.globl ClassExistencial.C.__deallocating_deinit | |
.p2align 4, 0x90 | |
ClassExistencial.C.__deallocating_deinit: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
callq ClassExistencial.C.deinit | |
movl $16, %esi | |
movl $7, %edx | |
movq %rax, %rdi | |
callq _swift_deallocClassInstance | |
addq $16, %rsp | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C1.m() -> () | |
.globl ClassExistencial.C1.m() -> () | |
.p2align 4, 0x90 | |
ClassExistencial.C1.m() -> (): | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1 | |
.globl ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1 | |
.p2align 4, 0x90 | |
ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
pushq %r13 | |
subq $24, %rsp | |
.cfi_offset %r13, -24 | |
xorl %eax, %eax | |
movl %eax, %edi | |
callq type metadata accessor for ClassExistencial.C1 | |
movl $16, %esi | |
movl $7, %edi | |
movq %rdi, -16(%rbp) | |
movq %rax, %rdi | |
movq -16(%rbp), %rax | |
movq %rdx, -24(%rbp) | |
movq %rax, %rdx | |
callq _swift_allocObject | |
movq %rax, %r13 | |
callq ClassExistencial.C1.init() -> ClassExistencial.C1 | |
addq $24, %rsp | |
popq %r13 | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern type metadata accessor for ClassExistencial.C | |
.globl type metadata accessor for ClassExistencial.C | |
.p2align 4, 0x90 | |
type metadata accessor for ClassExistencial.C: | |
pushq %rbp | |
movq %rsp, %rbp | |
subq $16, %rsp | |
movq lazy cache variable for type metadata for ClassExistencial.C(%rip), %rax | |
cmpq $0, %rax | |
movq %rax, -8(%rbp) | |
jne LBB8_2 | |
leaq full type metadata for ClassExistencial.C+16(%rip), %rdi | |
callq _swift_getInitializedObjCClass | |
movq %rax, %rdi | |
movq %rax, lazy cache variable for type metadata for ClassExistencial.C(%rip) | |
movq %rdi, -8(%rbp) | |
LBB8_2: | |
movq -8(%rbp), %rax | |
xorl %ecx, %ecx | |
movl %ecx, %edx | |
addq $16, %rsp | |
popq %rbp | |
retq | |
.private_extern ClassExistencial.C1.init() -> ClassExistencial.C1 | |
.globl ClassExistencial.C1.init() -> ClassExistencial.C1 | |
.p2align 4, 0x90 | |
ClassExistencial.C1.init() -> ClassExistencial.C1: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
subq $32, %rsp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
callq ClassExistencial.C.init() -> ClassExistencial.C | |
movq %rax, -8(%rbp) | |
movq %rax, %rdi | |
movq %rax, -16(%rbp) | |
callq _swift_retain | |
movq -8(%rbp), %rdi | |
movq %rax, -24(%rbp) | |
callq _swift_release | |
movq -16(%rbp), %rax | |
addq $32, %rsp | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C1.deinit | |
.globl ClassExistencial.C1.deinit | |
.p2align 4, 0x90 | |
ClassExistencial.C1.deinit: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
callq ClassExistencial.C.deinit | |
addq $16, %rsp | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.C1.__deallocating_deinit | |
.globl ClassExistencial.C1.__deallocating_deinit | |
.p2align 4, 0x90 | |
ClassExistencial.C1.__deallocating_deinit: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
subq $16, %rsp | |
movq $0, -8(%rbp) | |
movq %r13, -8(%rbp) | |
callq ClassExistencial.C1.deinit | |
movl $16, %esi | |
movl $7, %edx | |
movq %rax, %rdi | |
callq _swift_deallocClassInstance | |
addq $16, %rsp | |
popq %rbp | |
retq | |
.cfi_endproc | |
.p2align 4, 0x90 | |
protocol witness for ClassExistencial.P.m() -> () in conformance ClassExistencial.C1 : ClassExistencial.P in ClassExistencial: | |
.cfi_startproc | |
pushq %rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset %rbp, -16 | |
movq %rsp, %rbp | |
.cfi_def_cfa_register %rbp | |
pushq %r13 | |
pushq %rax | |
.cfi_offset %r13, -24 | |
movq (%r13), %r13 | |
movq (%r13), %rax | |
movq 88(%rax), %rax | |
callq *%rax | |
addq $8, %rsp | |
popq %r13 | |
popq %rbp | |
retq | |
.cfi_endproc | |
.private_extern ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P | |
.globl ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P | |
.zerofill __DATA,__common,ClassExistencial.cp : ClassExistencial.C & ClassExistencial.P,16,3 | |
.private_extern protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.section __TEXT,__const | |
.globl protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.p2align 2 | |
protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial: | |
.long protocol descriptor for ClassExistencial.P-protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.long (nominal type descriptor for ClassExistencial.C1-protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial)-4 | |
.long (protocol witness table for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial-protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial)-8 | |
.long 0 | |
.private_extern protocol witness table for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.section __DATA,__const | |
.globl protocol witness table for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.p2align 3 | |
protocol witness table for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial: | |
.quad protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.quad protocol witness for ClassExistencial.P.m() -> () in conformance ClassExistencial.C1 : ClassExistencial.P in ClassExistencial | |
.private_extern "_symbolic ClassExistencial.P" | |
.section __TEXT,__swift5_typeref,regular,no_dead_strip | |
.globl "_symbolic ClassExistencial.P" | |
.weak_definition "_symbolic ClassExistencial.P" | |
.p2align 1 | |
"_symbolic ClassExistencial.P": | |
.ascii "ClassExistencial.P" | |
.byte 0 | |
.section __TEXT,__swift5_fieldmd,regular,no_dead_strip | |
.p2align 2 | |
reflection metadata field descriptor ClassExistencial.P: | |
.long "_symbolic ClassExistencial.P"-reflection metadata field descriptor ClassExistencial.P | |
.long 0 | |
.short 4 | |
.short 12 | |
.long 0 | |
.section __TEXT,__const | |
.p2align 4 | |
l___unnamed_1: | |
.asciz "ClassExistencial" | |
.private_extern module descriptor ClassExistencial | |
.globl module descriptor ClassExistencial | |
.weak_definition module descriptor ClassExistencial | |
.p2align 2 | |
module descriptor ClassExistencial: | |
.long 0 | |
.long 0 | |
.long (l___unnamed_1-module descriptor ClassExistencial)-8 | |
l___unnamed_2: | |
.asciz "P" | |
.private_extern protocol descriptor for ClassExistencial.P | |
.globl protocol descriptor for ClassExistencial.P | |
.p2align 2 | |
protocol descriptor for ClassExistencial.P: | |
.long 65603 | |
.long (module descriptor ClassExistencial-protocol descriptor for ClassExistencial.P)-4 | |
.long (l___unnamed_2-protocol descriptor for ClassExistencial.P)-8 | |
.long 0 | |
.long 1 | |
.long 0 | |
.long 17 | |
.long 0 | |
.private_extern metaclass for ClassExistencial.C | |
.section __DATA,__data | |
.globl metaclass for ClassExistencial.C | |
.p2align 3 | |
metaclass for ClassExistencial.C: | |
.quad _OBJC_METACLASS_$_Swift._SwiftObject | |
.quad _OBJC_METACLASS_$_Swift._SwiftObject | |
.quad __objc_empty_cache | |
.quad 0 | |
.quad l__METACLASS_DATA_ClassExistencial.C | |
.section __TEXT,__cstring,cstring_literals | |
.p2align 4 | |
L___unnamed_3: | |
.asciz "ClassExistencial.C" | |
.section __DATA,__objc_const | |
.p2align 3 | |
l__METACLASS_DATA_ClassExistencial.C: | |
.long 129 | |
.long 40 | |
.long 40 | |
.long 0 | |
.quad 0 | |
.quad L___unnamed_3 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.p2align 3 | |
l__DATA_ClassExistencial.C: | |
.long 128 | |
.long 16 | |
.long 16 | |
.long 0 | |
.quad 0 | |
.quad L___unnamed_3 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.section __TEXT,__const | |
l___unnamed_4: | |
.asciz "C" | |
.private_extern nominal type descriptor for ClassExistencial.C | |
.globl nominal type descriptor for ClassExistencial.C | |
.p2align 2 | |
nominal type descriptor for ClassExistencial.C: | |
.long 2147483728 | |
.long (module descriptor ClassExistencial-nominal type descriptor for ClassExistencial.C)-4 | |
.long (l___unnamed_4-nominal type descriptor for ClassExistencial.C)-8 | |
.long (type metadata accessor for ClassExistencial.C-nominal type descriptor for ClassExistencial.C)-12 | |
.long (reflection metadata field descriptor ClassExistencial.C-nominal type descriptor for ClassExistencial.C)-16 | |
.long 0 | |
.long 2 | |
.long 11 | |
.long 1 | |
.long 0 | |
.long 10 | |
.long 10 | |
.long 1 | |
.long 1 | |
.long (ClassExistencial.C.__allocating_init() -> ClassExistencial.C-nominal type descriptor for ClassExistencial.C)-56 | |
.zerofill __DATA,__bss,lazy cache variable for type metadata for ClassExistencial.C,8,3 | |
.section __DATA,__data | |
.p2align 3 | |
full type metadata for ClassExistencial.C: | |
.quad ClassExistencial.C.__deallocating_deinit | |
.quad value witness table for Builtin.NativeObject | |
.quad metaclass for ClassExistencial.C | |
.quad _OBJC_CLASS_$_Swift._SwiftObject | |
.quad __objc_empty_cache | |
.quad 0 | |
.quad l__DATA_ClassExistencial.C+2 | |
.long 2 | |
.long 0 | |
.long 16 | |
.short 7 | |
.short 0 | |
.long 104 | |
.long 16 | |
.quad nominal type descriptor for ClassExistencial.C | |
.quad 0 | |
.quad ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.private_extern "_symbolic _____ 16ClassExistencial1CC" | |
.section __TEXT,__swift5_typeref,regular,no_dead_strip | |
.globl "_symbolic _____ 16ClassExistencial1CC" | |
.weak_definition "_symbolic _____ 16ClassExistencial1CC" | |
.p2align 1 | |
"_symbolic _____ 16ClassExistencial1CC": | |
.byte 1 | |
.long (nominal type descriptor for ClassExistencial.C-"_symbolic _____ 16ClassExistencial1CC")-1 | |
.byte 0 | |
.section __TEXT,__swift5_fieldmd,regular,no_dead_strip | |
.p2align 2 | |
reflection metadata field descriptor ClassExistencial.C: | |
.long "_symbolic _____ 16ClassExistencial1CC"-reflection metadata field descriptor ClassExistencial.C | |
.long 0 | |
.short 1 | |
.short 12 | |
.long 0 | |
.private_extern metaclass for ClassExistencial.C1 | |
.section __DATA,__data | |
.globl metaclass for ClassExistencial.C1 | |
.p2align 3 | |
metaclass for ClassExistencial.C1: | |
.quad _OBJC_METACLASS_$_Swift._SwiftObject | |
.quad metaclass for ClassExistencial.C | |
.quad __objc_empty_cache | |
.quad 0 | |
.quad l__METACLASS_DATA_ClassExistencial.C1 | |
.section __TEXT,__cstring,cstring_literals | |
.p2align 4 | |
L___unnamed_5: | |
.asciz "ClassExistencial.C1" | |
.section __DATA,__objc_const | |
.p2align 3 | |
l__METACLASS_DATA_ClassExistencial.C1: | |
.long 129 | |
.long 40 | |
.long 40 | |
.long 0 | |
.quad 0 | |
.quad L___unnamed_5 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.p2align 3 | |
l__DATA_ClassExistencial.C1: | |
.long 128 | |
.long 16 | |
.long 16 | |
.long 0 | |
.quad 0 | |
.quad L___unnamed_5 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.quad 0 | |
.section __TEXT,__const | |
l___unnamed_6: | |
.asciz "C1" | |
.private_extern nominal type descriptor for ClassExistencial.C1 | |
.globl nominal type descriptor for ClassExistencial.C1 | |
.p2align 2 | |
nominal type descriptor for ClassExistencial.C1: | |
.long 3221225552 | |
.long (module descriptor ClassExistencial-nominal type descriptor for ClassExistencial.C1)-4 | |
.long (l___unnamed_6-nominal type descriptor for ClassExistencial.C1)-8 | |
.long (type metadata accessor for ClassExistencial.C1-nominal type descriptor for ClassExistencial.C1)-12 | |
.long (reflection metadata field descriptor ClassExistencial.C1-nominal type descriptor for ClassExistencial.C1)-16 | |
.long ("_symbolic _____ 16ClassExistencial1CC"-nominal type descriptor for ClassExistencial.C1)-20 | |
.long 2 | |
.long 12 | |
.long 1 | |
.long 0 | |
.long 11 | |
.long 11 | |
.long 1 | |
.long 16 | |
.long (ClassExistencial.C1.m() -> ()-nominal type descriptor for ClassExistencial.C1)-56 | |
.long 1 | |
.long (nominal type descriptor for ClassExistencial.C-nominal type descriptor for ClassExistencial.C1)-64 | |
.long (nominal type descriptor for ClassExistencial.C-nominal type descriptor for ClassExistencial.C1)-16 | |
.long (ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1-nominal type descriptor for ClassExistencial.C1)-72 | |
.zerofill __DATA,__bss,lazy cache variable for type metadata for ClassExistencial.C1,8,3 | |
.section __DATA,__data | |
.p2align 3 | |
full type metadata for ClassExistencial.C1: | |
.quad ClassExistencial.C1.__deallocating_deinit | |
.quad value witness table for Builtin.NativeObject | |
.quad metaclass for ClassExistencial.C1 | |
.quad full type metadata for ClassExistencial.C+16 | |
.quad __objc_empty_cache | |
.quad 0 | |
.quad l__DATA_ClassExistencial.C1+2 | |
.long 2 | |
.long 0 | |
.long 16 | |
.short 7 | |
.short 0 | |
.long 112 | |
.long 16 | |
.quad nominal type descriptor for ClassExistencial.C1 | |
.quad 0 | |
.quad ClassExistencial.C1.__allocating_init() -> ClassExistencial.C1 | |
.quad ClassExistencial.C1.m() -> () | |
.private_extern "_symbolic _____ 16ClassExistencial2C1C" | |
.section __TEXT,__swift5_typeref,regular,no_dead_strip | |
.globl "_symbolic _____ 16ClassExistencial2C1C" | |
.weak_definition "_symbolic _____ 16ClassExistencial2C1C" | |
.p2align 1 | |
"_symbolic _____ 16ClassExistencial2C1C": | |
.byte 1 | |
.long (nominal type descriptor for ClassExistencial.C1-"_symbolic _____ 16ClassExistencial2C1C")-1 | |
.byte 0 | |
.section __TEXT,__swift5_fieldmd,regular,no_dead_strip | |
.p2align 2 | |
reflection metadata field descriptor ClassExistencial.C1: | |
.long "_symbolic _____ 16ClassExistencial2C1C"-reflection metadata field descriptor ClassExistencial.C1 | |
.long ("_symbolic _____ 16ClassExistencial1CC"-reflection metadata field descriptor ClassExistencial.C1)-4 | |
.short 1 | |
.short 12 | |
.long 0 | |
.section __TEXT,__swift5_protos,regular,no_dead_strip | |
.p2align 2 | |
l_protocols: | |
.long protocol descriptor for ClassExistencial.P-l_protocols | |
.section __TEXT,__swift5_proto,regular,no_dead_strip | |
.p2align 2 | |
l_protocol_conformances: | |
.long protocol conformance descriptor for ClassExistencial.C1 : ClassExistencial.P in ClassExistencial-l_protocol_conformances | |
.section __TEXT,__swift5_types,regular,no_dead_strip | |
.p2align 2 | |
l_type_metadata_table: | |
.long nominal type descriptor for ClassExistencial.C-l_type_metadata_table | |
.long (nominal type descriptor for ClassExistencial.C1-l_type_metadata_table)-4 | |
.private_extern ___swift_reflection_version | |
.section __TEXT,__const | |
.globl ___swift_reflection_version | |
.weak_definition ___swift_reflection_version | |
.p2align 1 | |
___swift_reflection_version: | |
.short 3 | |
.section __DATA,__objc_classlist,regular,no_dead_strip | |
.p2align 3 | |
_objc_classes: | |
.quad type metadata for ClassExistencial.C | |
.quad type metadata for ClassExistencial.C1 | |
.no_dead_strip reflection metadata field descriptor ClassExistencial.P | |
.no_dead_strip reflection metadata field descriptor ClassExistencial.C | |
.no_dead_strip reflection metadata field descriptor ClassExistencial.C1 | |
.no_dead_strip l_protocols | |
.no_dead_strip l_protocol_conformances | |
.no_dead_strip l_type_metadata_table | |
.no_dead_strip ___swift_reflection_version | |
.no_dead_strip _objc_classes | |
.linker_option "-lswiftSwiftOnoneSupport" | |
.linker_option "-lswiftCore" | |
.linker_option "-lobjc" | |
.section __DATA,__objc_imageinfo,regular,no_dead_strip | |
L_OBJC_IMAGE_INFO: | |
.long 0 | |
.long 83953472 | |
.globl protocol requirements base descriptor for ClassExistencial.P | |
.private_extern protocol requirements base descriptor for ClassExistencial.P | |
.alt_entry protocol requirements base descriptor for ClassExistencial.P | |
.set protocol requirements base descriptor for ClassExistencial.P, (protocol descriptor for ClassExistencial.P+24)-8 | |
.globl method descriptor for ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.private_extern method descriptor for ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.alt_entry method descriptor for ClassExistencial.C.__allocating_init() -> ClassExistencial.C | |
.set method descriptor for ClassExistencial.C.__allocating_init() -> ClassExistencial.C, nominal type descriptor for ClassExistencial.C+52 | |
.globl type metadata for ClassExistencial.C | |
.private_extern type metadata for ClassExistencial.C | |
.alt_entry type metadata for ClassExistencial.C | |
.set type metadata for ClassExistencial.C, full type metadata for ClassExistencial.C+16 | |
.globl method descriptor for ClassExistencial.C1.m() -> () | |
.private_extern method descriptor for ClassExistencial.C1.m() -> () | |
.alt_entry method descriptor for ClassExistencial.C1.m() -> () | |
.set method descriptor for ClassExistencial.C1.m() -> (), nominal type descriptor for ClassExistencial.C1+52 | |
.globl type metadata for ClassExistencial.C1 | |
.private_extern type metadata for ClassExistencial.C1 | |
.alt_entry type metadata for ClassExistencial.C1 | |
.set type metadata for ClassExistencial.C1, full type metadata for ClassExistencial.C1+16 | |
.subsections_via_symbols |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
protocol P { func m() } | |
class C {} | |
class C1: C, P { func m() {} } | |
let cp: C & P = C1() | |
cp.m() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment