-
-
Save jacobsa/a0fc8b5a303853a1fceba85639a6d6c4 to your computer and use it in GitHub Desktop.
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
.text | |
.p2align 4, 0x90 # -- Begin function _Z6FooBarv.resume | |
.type _Z6FooBarv.resume,@function | |
_Z6FooBarv.resume: # @_Z6FooBarv.resume | |
.Lfunc_begin1: | |
.cfi_startproc | |
.cfi_personality 155, DW.ref.__gxx_personality_v0 | |
.cfi_lsda 27, .Lexception1 | |
# %bb.0: | |
push rbp | |
.cfi_def_cfa_offset 16 | |
.cfi_offset rbp, -16 | |
mov rbp, rsp | |
.cfi_def_cfa_register rbp | |
sub rsp, 256 | |
mov qword ptr [rbp - 152], rdi # 8-byte Spill | |
mov rax, rdi | |
add rax, 18 | |
mov qword ptr [rbp - 144], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 24 | |
mov qword ptr [rbp - 136], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 32 | |
mov qword ptr [rbp - 128], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 40 | |
mov qword ptr [rbp - 120], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 48 | |
mov qword ptr [rbp - 112], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 56 | |
mov qword ptr [rbp - 104], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 64 | |
mov qword ptr [rbp - 96], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 72 | |
mov qword ptr [rbp - 88], rax # 8-byte Spill | |
mov rax, rdi | |
add rax, 19 | |
mov qword ptr [rbp - 80], rax # 8-byte Spill | |
add rdi, 16 | |
mov qword ptr [rbp - 72], rdi # 8-byte Spill | |
jmp .LBB19_70 | |
.LBB19_1: | |
jmp .LBB19_2 | |
.LBB19_2: | |
jmp .LBB19_3 | |
.LBB19_3: | |
jmp .LBB19_4 | |
.LBB19_4: | |
mov rdi, qword ptr [rbp - 144] # 8-byte Reload | |
call _ZNKSt7__n486114suspend_always12await_resumeEv | |
xor eax, eax | |
mov dword ptr [rbp - 156], eax # 4-byte Spill | |
# %bb.5: | |
mov eax, dword ptr [rbp - 156] # 4-byte Reload | |
mov dword ptr [rbp - 160], eax # 4-byte Spill | |
# %bb.6: | |
mov eax, dword ptr [rbp - 160] # 4-byte Reload | |
cmp eax, 0 | |
mov dword ptr [rbp - 164], eax # 4-byte Spill | |
je .LBB19_8 | |
# %bb.7: | |
mov eax, dword ptr [rbp - 164] # 4-byte Reload | |
mov dword ptr [rbp - 168], eax # 4-byte Spill | |
jmp .LBB19_58 | |
.LBB19_8: | |
mov rax, qword ptr [rbp - 120] # 8-byte Reload | |
mov rcx, qword ptr [rbp - 128] # 8-byte Reload | |
mov rdx, qword ptr [rbp - 136] # 8-byte Reload | |
lea rsi, [rip + g_array] | |
mov qword ptr [rdx], rsi | |
lea rdx, [rip + g_array] | |
mov qword ptr [rcx], rdx | |
lea rcx, [rip + g_array] | |
add rcx, 128 | |
mov qword ptr [rax], rcx | |
.LBB19_9: | |
mov rcx, qword ptr [rbp - 120] # 8-byte Reload | |
mov rax, qword ptr [rbp - 128] # 8-byte Reload | |
mov rax, qword ptr [rax] | |
cmp rax, qword ptr [rcx] | |
jne .LBB19_12 | |
# %bb.10: | |
mov eax, 4 | |
mov dword ptr [rbp - 172], eax # 4-byte Spill | |
jmp .LBB19_11 | |
.LBB19_11: | |
mov eax, dword ptr [rbp - 172] # 4-byte Reload | |
mov dword ptr [rbp - 176], eax # 4-byte Spill | |
jmp .LBB19_46 | |
.LBB19_12: | |
mov rdi, qword ptr [rbp - 72] # 8-byte Reload | |
mov rax, qword ptr [rbp - 112] # 8-byte Reload | |
mov rcx, qword ptr [rbp - 128] # 8-byte Reload | |
mov rcx, qword ptr [rcx] | |
mov qword ptr [rax], rcx | |
mov rsi, qword ptr [rax] | |
call _ZN6MyTask12promise_type15await_transformERKi | |
mov qword ptr [rbp - 184], rax # 8-byte Spill | |
# %bb.13: | |
mov rdi, qword ptr [rbp - 104] # 8-byte Reload | |
mov rax, qword ptr [rbp - 184] # 8-byte Reload | |
mov qword ptr [rdi], rax | |
call _ZN7Awaiter11await_readyEv | |
mov byte ptr [rbp - 185], al # 1-byte Spill | |
# %bb.14: | |
mov al, byte ptr [rbp - 185] # 1-byte Reload | |
test al, 1 | |
jne .LBB19_24 | |
jmp .LBB19_15 | |
.LBB19_15: | |
mov rax, qword ptr [rbp - 152] # 8-byte Reload | |
mov byte ptr [rax + 17], 1 | |
# %bb.16: | |
mov rdi, qword ptr [rbp - 152] # 8-byte Reload | |
call _ZNSt7__n486116coroutine_handleIN6MyTask12promise_typeEE12from_addressEPv | |
mov rdi, qword ptr [rbp - 88] # 8-byte Reload | |
mov qword ptr [rdi], rax | |
call _ZNKSt7__n486116coroutine_handleIN6MyTask12promise_typeEEcvNS0_IvEEEv | |
mov rdi, qword ptr [rbp - 104] # 8-byte Reload | |
mov qword ptr [rbp - 24], rax | |
mov rsi, qword ptr [rbp - 24] | |
.Ltmp15: | |
call _ZN7Awaiter13await_suspendENSt7__n486116coroutine_handleIvEE@PLT | |
.Ltmp16: | |
mov qword ptr [rbp - 200], rax # 8-byte Spill | |
jmp .LBB19_17 | |
.LBB19_17: | |
mov rdi, qword ptr [rbp - 96] # 8-byte Reload | |
mov rax, qword ptr [rbp - 200] # 8-byte Reload | |
mov qword ptr [rdi], rax | |
call _ZNKSt7__n486116coroutine_handleIvE7addressEv | |
mov rdi, rax | |
mov rax, qword ptr [rax] | |
add rsp, 256 | |
pop rbp | |
.cfi_def_cfa rsp, 8 | |
jmp rax # TAILCALL | |
.LBB19_18: | |
.cfi_def_cfa rbp, 16 | |
jmp .LBB19_19 | |
.LBB19_19: | |
jmp .LBB19_20 | |
.LBB19_20: | |
mov al, 1 | |
test al, al | |
jne .LBB19_24 | |
jmp .LBB19_73 | |
.LBB19_73: | |
mov al, 1 | |
test al, al | |
jne .LBB19_62 | |
jmp .LBB19_21 | |
.LBB19_21: | |
mov eax, 2 | |
mov dword ptr [rbp - 204], eax # 4-byte Spill | |
jmp .LBB19_22 | |
.LBB19_22: | |
mov eax, dword ptr [rbp - 204] # 4-byte Reload | |
mov dword ptr [rbp - 208], eax # 4-byte Spill | |
jmp .LBB19_27 | |
.LBB19_23: | |
.Ltmp17: | |
mov rcx, rax | |
mov eax, edx | |
mov qword ptr [rbp - 56], rcx | |
mov dword ptr [rbp - 44], eax | |
jmp .LBB19_35 | |
.LBB19_24: | |
mov rdi, qword ptr [rbp - 104] # 8-byte Reload | |
call _ZN7Awaiter12await_resumeEv | |
# %bb.25: | |
xor eax, eax | |
mov dword ptr [rbp - 212], eax # 4-byte Spill | |
jmp .LBB19_26 | |
.LBB19_26: | |
mov eax, dword ptr [rbp - 212] # 4-byte Reload | |
mov dword ptr [rbp - 208], eax # 4-byte Spill | |
.LBB19_27: | |
mov eax, dword ptr [rbp - 208] # 4-byte Reload | |
cmp eax, 0 | |
mov dword ptr [rbp - 216], eax # 4-byte Spill | |
je .LBB19_29 | |
# %bb.28: | |
mov eax, dword ptr [rbp - 216] # 4-byte Reload | |
mov dword ptr [rbp - 220], eax # 4-byte Spill | |
jmp .LBB19_31 | |
.LBB19_29: | |
xor eax, eax | |
mov dword ptr [rbp - 224], eax # 4-byte Spill | |
jmp .LBB19_30 | |
.LBB19_30: | |
mov eax, dword ptr [rbp - 224] # 4-byte Reload | |
mov dword ptr [rbp - 220], eax # 4-byte Spill | |
.LBB19_31: | |
mov eax, dword ptr [rbp - 220] # 4-byte Reload | |
cmp eax, 0 | |
mov dword ptr [rbp - 228], eax # 4-byte Spill | |
je .LBB19_33 | |
# %bb.32: | |
mov eax, dword ptr [rbp - 228] # 4-byte Reload | |
mov dword ptr [rbp - 176], eax # 4-byte Spill | |
jmp .LBB19_46 | |
.LBB19_33: | |
jmp .LBB19_34 | |
.LBB19_34: | |
mov rax, qword ptr [rbp - 128] # 8-byte Reload | |
mov rcx, qword ptr [rax] | |
add rcx, 4 | |
mov qword ptr [rax], rcx | |
jmp .LBB19_9 | |
.LBB19_35: | |
jmp .LBB19_36 | |
.LBB19_36: | |
mov rdi, qword ptr [rbp - 56] | |
call __cxa_begin_catch@PLT | |
mov rdi, qword ptr [rbp - 72] # 8-byte Reload | |
.Ltmp18: | |
call _ZN6MyTask12promise_type19unhandled_exceptionEv@PLT | |
.Ltmp19: | |
jmp .LBB19_37 | |
.LBB19_37: | |
.Ltmp24: | |
call __cxa_end_catch@PLT | |
.Ltmp25: | |
jmp .LBB19_38 | |
.LBB19_38: | |
jmp .LBB19_39 | |
.LBB19_39: | |
jmp .LBB19_40 | |
.LBB19_40: | |
mov rdi, qword ptr [rbp - 72] # 8-byte Reload | |
call _ZN6MyTask12promise_type13final_suspendEv | |
mov rdi, qword ptr [rbp - 80] # 8-byte Reload | |
call _ZNKSt7__n486114suspend_always11await_readyEv | |
test al, 1 | |
jne .LBB19_52 | |
# %bb.41: | |
mov rax, qword ptr [rbp - 152] # 8-byte Reload | |
mov qword ptr [rax], 0 | |
mov byte ptr [rax + 17], 2 | |
# %bb.42: | |
mov rdi, qword ptr [rbp - 152] # 8-byte Reload | |
call _ZNSt7__n486116coroutine_handleIN6MyTask12promise_typeEE12from_addressEPv | |
mov qword ptr [rbp - 8], rax | |
lea rdi, [rbp - 8] | |
call _ZNKSt7__n486116coroutine_handleIN6MyTask12promise_typeEEcvNS0_IvEEEv | |
mov rdi, qword ptr [rbp - 80] # 8-byte Reload | |
mov qword ptr [rbp - 16], rax | |
mov rsi, qword ptr [rbp - 16] | |
call _ZNKSt7__n486114suspend_always13await_suspendENS_16coroutine_handleIvEE | |
# %bb.43: | |
jmp .LBB19_44 | |
.LBB19_44: | |
jmp .LBB19_45 | |
.LBB19_45: | |
jmp .LBB19_62 | |
.LBB19_46: | |
mov eax, dword ptr [rbp - 176] # 4-byte Reload | |
cmp eax, 4 | |
mov dword ptr [rbp - 232], eax # 4-byte Spill | |
je .LBB19_48 | |
# %bb.47: | |
mov eax, dword ptr [rbp - 232] # 4-byte Reload | |
mov dword ptr [rbp - 168], eax # 4-byte Spill | |
jmp .LBB19_58 | |
.LBB19_48: | |
jmp .LBB19_39 | |
.LBB19_49: | |
.Ltmp20: | |
mov rcx, rax | |
mov eax, edx | |
mov qword ptr [rbp - 56], rcx | |
mov dword ptr [rbp - 44], eax | |
.Ltmp21: | |
call __cxa_end_catch@PLT | |
.Ltmp22: | |
jmp .LBB19_51 | |
.LBB19_50: | |
.Ltmp26: | |
mov rcx, rax | |
mov eax, edx | |
mov qword ptr [rbp - 56], rcx | |
mov dword ptr [rbp - 44], eax | |
jmp .LBB19_64 | |
.LBB19_51: | |
jmp .LBB19_64 | |
.LBB19_52: | |
mov rdi, qword ptr [rbp - 80] # 8-byte Reload | |
call _ZNKSt7__n486114suspend_always12await_resumeEv | |
xor eax, eax | |
mov dword ptr [rbp - 236], eax # 4-byte Spill | |
# %bb.53: | |
mov eax, dword ptr [rbp - 236] # 4-byte Reload | |
mov dword ptr [rbp - 240], eax # 4-byte Spill | |
# %bb.54: | |
mov eax, dword ptr [rbp - 240] # 4-byte Reload | |
cmp eax, 0 | |
mov dword ptr [rbp - 244], eax # 4-byte Spill | |
je .LBB19_56 | |
# %bb.55: | |
mov eax, dword ptr [rbp - 244] # 4-byte Reload | |
mov dword ptr [rbp - 168], eax # 4-byte Spill | |
jmp .LBB19_58 | |
.LBB19_56: | |
xor eax, eax | |
mov dword ptr [rbp - 248], eax # 4-byte Spill | |
jmp .LBB19_57 | |
.LBB19_57: | |
mov eax, dword ptr [rbp - 248] # 4-byte Reload | |
mov dword ptr [rbp - 168], eax # 4-byte Spill | |
.LBB19_58: | |
mov rax, qword ptr [rbp - 152] # 8-byte Reload | |
mov ecx, dword ptr [rbp - 168] # 4-byte Reload | |
mov dword ptr [rbp - 252], ecx # 4-byte Spill | |
cmp rax, 0 | |
je .LBB19_60 | |
# %bb.59: | |
mov rdi, qword ptr [rbp - 152] # 8-byte Reload | |
call _ZdlPv@PLT | |
.LBB19_60: | |
mov eax, dword ptr [rbp - 252] # 4-byte Reload | |
test eax, eax | |
je .LBB19_61 | |
jmp .LBB19_74 | |
.LBB19_74: | |
jmp .LBB19_62 | |
.LBB19_61: | |
jmp .LBB19_62 | |
.LBB19_62: | |
jmp .LBB19_63 | |
.LBB19_63: | |
add rsp, 256 | |
pop rbp | |
.cfi_def_cfa rsp, 8 | |
ret | |
.LBB19_64: | |
.cfi_def_cfa rbp, 16 | |
jmp .LBB19_65 | |
.LBB19_65: | |
mov rax, qword ptr [rbp - 152] # 8-byte Reload | |
mov qword ptr [rax], 0 | |
mov byte ptr [rax + 17], 2 | |
# %bb.66: | |
jmp .LBB19_67 | |
.LBB19_67: | |
mov rdi, qword ptr [rbp - 56] | |
call _Unwind_Resume@PLT | |
.LBB19_68: | |
.Ltmp23: | |
mov rdi, rax | |
# kill: def $eax killed $edx killed $rdx | |
call __clang_call_terminate | |
# %bb.69: | |
.cfi_def_cfa rsp, 8 | |
.cfi_restore rbp | |
.LBB19_70: | |
.cfi_def_cfa rbp, 16 | |
.cfi_offset rbp, -16 | |
mov rax, qword ptr [rbp - 152] # 8-byte Reload | |
mov al, byte ptr [rax + 17] | |
test al, al | |
je .LBB19_1 | |
jmp .LBB19_72 | |
.LBB19_72: | |
jmp .LBB19_18 | |
# %bb.71: | |
.Lfunc_end19: | |
.size _Z6FooBarv.resume, .Lfunc_end19-_Z6FooBarv.resume | |
.cfi_endproc | |
.section .gcc_except_table,"a",@progbits | |
.p2align 2, 0x0 | |
GCC_except_table19: | |
.Lexception1: | |
.byte 255 # @LPStart Encoding = omit | |
.byte 155 # @TType Encoding = indirect pcrel sdata4 | |
.uleb128 .Lttbase1-.Lttbaseref1 | |
.Lttbaseref1: | |
.byte 1 # Call site Encoding = uleb128 | |
.uleb128 .Lcst_end1-.Lcst_begin1 | |
.Lcst_begin1: | |
.uleb128 .Ltmp15-.Lfunc_begin1 # >> Call Site 1 << | |
.uleb128 .Ltmp16-.Ltmp15 # Call between .Ltmp15 and .Ltmp16 | |
.uleb128 .Ltmp17-.Lfunc_begin1 # jumps to .Ltmp17 | |
.byte 1 # On action: 1 | |
.uleb128 .Ltmp16-.Lfunc_begin1 # >> Call Site 2 << | |
.uleb128 .Ltmp18-.Ltmp16 # Call between .Ltmp16 and .Ltmp18 | |
.byte 0 # has no landing pad | |
.byte 0 # On action: cleanup | |
.uleb128 .Ltmp18-.Lfunc_begin1 # >> Call Site 3 << | |
.uleb128 .Ltmp19-.Ltmp18 # Call between .Ltmp18 and .Ltmp19 | |
.uleb128 .Ltmp20-.Lfunc_begin1 # jumps to .Ltmp20 | |
.byte 0 # On action: cleanup | |
.uleb128 .Ltmp24-.Lfunc_begin1 # >> Call Site 4 << | |
.uleb128 .Ltmp25-.Ltmp24 # Call between .Ltmp24 and .Ltmp25 | |
.uleb128 .Ltmp26-.Lfunc_begin1 # jumps to .Ltmp26 | |
.byte 0 # On action: cleanup | |
.uleb128 .Ltmp21-.Lfunc_begin1 # >> Call Site 5 << | |
.uleb128 .Ltmp22-.Ltmp21 # Call between .Ltmp21 and .Ltmp22 | |
.uleb128 .Ltmp23-.Lfunc_begin1 # jumps to .Ltmp23 | |
.byte 1 # On action: 1 | |
.uleb128 .Ltmp22-.Lfunc_begin1 # >> Call Site 6 << | |
.uleb128 .Lfunc_end19-.Ltmp22 # Call between .Ltmp22 and .Lfunc_end19 | |
.byte 0 # has no landing pad | |
.byte 0 # On action: cleanup | |
.Lcst_end1: | |
.byte 1 # >> Action Record 1 << | |
# Catch TypeInfo 1 | |
.byte 0 # No further actions | |
.p2align 2, 0x0 | |
# >> Catch TypeInfos << | |
.long 0 # TypeInfo 1 | |
.Lttbase1: | |
.p2align 2, 0x0 | |
# -- End function |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment