Skip to content

Instantly share code, notes, and snippets.

@owt5008137 owt5008137/README.md
Last active Oct 9, 2019

Embed
What would you like to do?
C++20 Coroutine jump

Clang C++20 Coroutine ASM

编译

# Linux
/data/prebuilt/load-llvm-envs.sh clang++ -std=c++2a -O2 -g -ggdb -stdlib=libc++ -fcoroutines-ts -lc++ -lc++abi test-coroutine.cpp -o test-coroutine
./test-coroutine
# Window MinGW64
clang++ -std=c++2a -O2 -stdlib=libc++ -fcoroutines-ts test-coroutine.cpp -o test-coroutine.S -S -g -glldb

生成的完整汇编见 test-coroutine.S 文件, 关键地方已经用 ====== 标记出来了并加了说明。

输出

__cpp_coroutines: 201703
main(), address of stack variable(waiter)=0x7ffdfd9704a0, %rsp=0x7ffdfd970490, %rbp=0x7ffdfd970490
start of coroutine, address of stack_variable=0x20ce040, %rsp=0x7ffdfd970450, %rbp=0xa
call await_ready: 3
call await_suspend: 2
about to resume: 0x7ffdfd9704a0, last refer address: (nil)
call await_resume: 2
call await_ready: 2
call await_suspend: 1
about to resume: 0x7ffdfd9704a0, last refer address: 0x20ce040
call await_resume: 1
call await_ready: 1
call await_suspend: 0
about to resume: 0x7ffdfd9704a0, last refer address: 0x20ce068
call await_resume: 0
call await_ready: 0
call await_resume: 0
call await_ready: 0
call await_resume: 0
end of coroutine

生成的汇编

test-coroutine`f:
    0x401290 <+0>:   pushq  %rbp
    0x401291 <+1>:   pushq  %r15
    0x401293 <+3>:   pushq  %r14
    0x401295 <+5>:   pushq  %r13
    0x401297 <+7>:   pushq  %r12
    0x401299 <+9>:   pushq  %rbx
    0x40129a <+10>:  pushq  %rax
    0x40129b <+11>:  movq   %rdi, %r15
->  0x40129e <+14>:  movl   $0x258, %edi              ; imm = 0x258, ====== 分配栈变量空间, 如果是 int stack_variable[64], 这里会是 0x158
    0x4012a3 <+19>:  callq  0x401150                  ; symbol stub for: operator new(unsigned long)
    0x4012a8 <+24>:  movq   %rax, %r13
    0x4012ab <+27>:  movq   $0x4017f0, (%rax)         ; imm = 0x4017F0
    0x4012b2 <+34>:  movq   $0x4019f0, 0x8(%rax)      ; imm = 0x4019F0
    0x4012ba <+42>:  leaq   0x30(%rax), %r14
    0x4012be <+46>:  movq   %r15, 0x18(%rax)
    0x4012c2 <+50>:  movl   $0x200, %edx              ; imm = 0x200, int stack_variable[128] = {0};
    0x4012c7 <+55>:  movq   %r14, %rdi
    0x4012ca <+58>:  xorl   %esi, %esi
    0x4012cc <+60>:  callq  0x401090                  ; symbol stub for: memset
    0x4012d1 <+65>:  movq   %rsp, %rbx                ; ====== asm ("movq %%rsp, %0" : "=r" (sp) );
    0x4012d4 <+68>:  movq   %rbp, %r12                ; ====== asm ("movq %%rbp, %0" : "=r" (bp) );
    0x4012d7 <+71>:  movl   $0x4040c8, %edi           ; imm = 0x4040C8
    0x4012dc <+76>:  movl   $0x4020a8, %esi           ; imm = 0x4020A8
View raw

(Sorry about that, but we can’t show files that are this big right now.)

This file has been truncated, but you can view the full file.
.text
.def @feat.00;
.scl 3;
.type 0;
.endef
.globl @feat.00
.set @feat.00, 0
.file "test-coroutine.cpp"
.file 1 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "string"
.file 2 "C:\\tools\\msys64\\mingw64\\lib\\clang\\8.0.1\\include" "stddef.h"
.file 3 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "new"
.file 4 "D:\\" "test-coroutine.cpp"
.file 5 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1\\experimental" "coroutine"
.file 6 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "__nullptr"
.file 7 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "iterator"
.file 8 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "__string"
.file 9 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "ostream"
.file 10 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "memory"
.file 11 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "type_traits"
.file 12 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstddef"
.file 13 "C:\\tools\\msys64\\mingw64\\lib\\clang\\8.0.1\\include" "__stddef_max_align_t.h"
.file 14 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstring"
.file 15 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "string.h"
.file 16 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "string.h"
.file 17 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "stdint.h"
.file 18 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstdint"
.file 19 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "corecrt.h"
.file 20 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstdlib"
.file 21 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "stdlib.h"
.file 22 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "stdlib.h"
.file 23 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "wchar.h"
.file 24 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstdio"
.file 25 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "stdio.h"
.file 26 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "vadefs.h"
.file 27 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "ctype.h"
.file 28 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cctype"
.file 29 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cwctype"
.file 30 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "wctype.h"
.file 31 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cwchar"
.file 32 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "swprintf.inl"
.file 33 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "wchar.h"
.file 34 "C:\\tools\\msys64\\mingw64\\x86_64-w64-mingw32\\include" "time.h"
.file 35 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "ctime"
.file 36 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "chrono"
.file 37 "C:\\tools\\msys64\\mingw64\\lib\\clang\\8.0.1\\include" "stdarg.h"
.file 38 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "cstdarg"
.def _ZawR15wait_some_times;
.scl 2;
.type 32;
.endef
.globl _ZawR15wait_some_times # -- Begin function _ZawR15wait_some_times
.p2align 4, 0x90
_ZawR15wait_some_times: # @_ZawR15wait_some_times
.Lfunc_begin0:
.loc 4 54 0 # test-coroutine.cpp:54:0
# %bb.0:
#DEBUG_VALUE: operator co_await:x <- $rcx
#DEBUG_VALUE: suspend_some_times:_d <- $rcx
movq %rcx, %rax
.Ltmp0:
#DEBUG_VALUE: suspend_some_times:this <- undef
#DEBUG_VALUE: suspend_some_times:_d <- $rax
#DEBUG_VALUE: suspend_some_times:_d <- $rax
#DEBUG_VALUE: operator co_await:x <- $rax
#DEBUG_VALUE: operator co_await:x <- $rax
.loc 4 55 5 prologue_end # test-coroutine.cpp:55:5
retq
.Ltmp1:
.Lfunc_end0:
# -- End function
.def __clang_call_terminate;
.scl 2;
.type 32;
.endef
.section .text$__clang_call_terminate,"xr",discard,__clang_call_terminate
.globl __clang_call_terminate # -- Begin function __clang_call_terminate
.p2align 4, 0x90
__clang_call_terminate: # @__clang_call_terminate
.Lfunc_begin1:
# %bb.0:
subq $40, %rsp
callq __cxa_begin_catch
callq _ZSt9terminatev
ud2
.Lfunc_end1:
# -- End function
.def _Z1fR15wait_some_times;
.scl 2;
.type 32;
.endef
.text
.globl _Z1fR15wait_some_times # -- Begin function _Z1fR15wait_some_times
.p2align 4, 0x90
_Z1fR15wait_some_times: # @_Z1fR15wait_some_times
.Lfunc_begin2:
.loc 4 58 0 # test-coroutine.cpp:58:0
.seh_proc _Z1fR15wait_some_times
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %r15
.seh_pushreg 15
pushq %r14
.seh_pushreg 14
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbp
.seh_pushreg 5
pushq %rbx
.seh_pushreg 3
subq $40, %rsp
.seh_stackalloc 40
.seh_endprologue
#DEBUG_VALUE: f:waiter <- $rcx
.Ltmp42:
#DEBUG_VALUE: f:waiter <- $rcx
movq %rcx, %r14
.Ltmp43:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 58 16 prologue_end # test-coroutine.cpp:58:16
movl $600, %ecx # imm = 0x258, ====== 栈变量和上下文一共占用600字节
callq _Znwy # ====== 调用 operator new(unsigned long long)
.Ltmp44:
movq %rax, %rsi
.Ltmp45:
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32, DW_OP_stack_value] $rsi
.loc 4 0 16 is_stmt 0 # test-coroutine.cpp:0:16
leaq _Z1fR15wait_some_times.resume(%rip), %rax
movq %rax, (%rsi)
leaq _Z1fR15wait_some_times.destroy(%rip), %rax
movq %rax, 8(%rsi)
.Ltmp46:
#DEBUG_VALUE: f:__promise <- [DW_OP_deref] undef
leaq 48(%rsi), %r15
movq %r14, 24(%rsi)
.Ltmp47:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:__coro_gro <- undef
.loc 4 60 9 is_stmt 1 # test-coroutine.cpp:60:9
movl $512, %r8d # imm = 0x200, ====== int stack_variable[128] = {0}; 的初始化操作
movq %r15, %rcx
xorl %edx, %edx
callq memset
.Ltmp48:
.loc 4 62 5 # test-coroutine.cpp:62:5
#APP
movq %rsp, %rdi
#NO_APP
.Ltmp49:
#DEBUG_VALUE: sp <- $rdi
.loc 4 63 5 # test-coroutine.cpp:63:5
#APP
movq %rbp, %rbx
#NO_APP
.Ltmp50:
#DEBUG_VALUE: bp <- $rbx
.Ltmp2:
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp51:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str(%rip), %rdx
.Ltmp52:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $46, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp53:
.Ltmp3:
# %bb.1:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp4:
.loc 4 65 66 # test-coroutine.cpp:65:66
movq %rax, %rcx
movq %r15, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp54:
.Ltmp5:
# %bb.2:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp6:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rax
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
leaq .L.str.1(%rip), %rdx
.Ltmp55:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $7, %r8d
movq %rax, %rcx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp56:
.Ltmp7:
# %bb.3:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp8:
.loc 4 65 100 # test-coroutine.cpp:65:100
movq %rax, %rcx
movq %rdi, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp57:
.Ltmp9:
# %bb.4:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp10:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rax
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
leaq .L.str.2(%rip), %rdx
.Ltmp58:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $7, %r8d
movq %rax, %rcx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp59:
.Ltmp11:
# %bb.5:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp12:
.loc 4 65 118 # test-coroutine.cpp:65:118
movq %rax, %rcx
movq %rbx, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp60:
.Ltmp13:
# %bb.6:
#DEBUG_VALUE: bp <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 0 0 is_stmt 0 # test-coroutine.cpp:0:0
movq %rax, %rbx
.Ltmp61:
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rbx, %rdx
.Ltmp14:
.Ltmp62:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
leaq 32(%rsp), %rcx
.Ltmp63:
.file 39 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "ios"
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp64:
.Ltmp15:
# %bb.7:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp16:
.file 40 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "__locale"
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
leaq 32(%rsp), %rcx
.Ltmp65:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32] $rsp
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp66:
.Ltmp17:
# %bb.8:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbp
.Ltmp18:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbp)
.Ltmp67:
.Ltmp19:
# %bb.9:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %edi
.Ltmp68:
leaq 32(%rsp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp69:
.Ltmp21:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rbx, %rcx
movl %edi, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp70:
.Ltmp22:
# %bb.10:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp23:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rbx, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp71:
.Ltmp24:
# %bb.11: ,====== 第一次 co_await waiter;
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 9 0 10 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:10
leaq 560(%rsi), %rbx
.loc 4 66 5 is_stmt 1 # test-coroutine.cpp:66:5
movq %r14, (%rbx)
movq %rbx, %rcx
callq _ZN18suspend_some_times11await_readyEv # ====== 调用await_ready判定是否需要切出(后面的几处也一样)
.Ltmp72:
testb %al, %al
je .LBB2_24 # ====== 然后直接跳到函数尾了(后面的几处也一样)
.Ltmp73:
# %bb.12:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
leaq 568(%rsi), %rdi
movq 24(%rsi), %rbp
movq %rbx, %rcx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp74:
.loc 4 67 32 # test-coroutine.cpp:67:32
movl (%rbp), %eax
.loc 4 67 23 is_stmt 0 # test-coroutine.cpp:67:23
movl %eax, 48(%rsi)
.loc 4 68 26 is_stmt 1 # test-coroutine.cpp:68:26
movq %r15, 8(%rbp)
.loc 4 69 5 # test-coroutine.cpp:69:5
movq %rbp, 568(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp75:
testb %al, %al
je .LBB2_26
.Ltmp76:
# %bb.13:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
leaq 576(%rsi), %rbx
movq 24(%rsi), %rbp
movq %rdi, %rcx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp77:
.loc 4 70 33 # test-coroutine.cpp:70:33
movl (%rbp), %eax
.loc 4 70 5 is_stmt 0 # test-coroutine.cpp:70:5
leaq 88(%rsi), %rcx
.loc 4 70 24 # test-coroutine.cpp:70:24
movl %eax, 88(%rsi)
.loc 4 71 26 is_stmt 1 # test-coroutine.cpp:71:26
movq %rcx, 8(%rbp)
.loc 4 72 5 # test-coroutine.cpp:72:5
movq %rbp, 576(%rsi)
movq %rbx, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp78:
testb %al, %al
je .LBB2_30
.Ltmp79:
# %bb.14:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
leaq 584(%rsi), %rdi
movq 24(%rsi), %rbp
movq %rbx, %rcx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp80:
.loc 4 73 33 # test-coroutine.cpp:73:33
movl (%rbp), %eax
.loc 4 73 5 is_stmt 0 # test-coroutine.cpp:73:5
movq %rsi, %rcx
subq $-128, %rcx
.loc 4 73 24 # test-coroutine.cpp:73:24
movl %eax, 128(%rsi)
.loc 4 74 26 is_stmt 1 # test-coroutine.cpp:74:26
movq %rcx, 8(%rbp)
.loc 4 75 5 # test-coroutine.cpp:75:5
movq %rbp, 584(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp81:
testb %al, %al
je .LBB2_31
.Ltmp82:
# %bb.15:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
leaq 592(%rsi), %rbx
movq 24(%rsi), %rbp
movq %rdi, %rcx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp83:
.loc 4 76 33 # test-coroutine.cpp:76:33
movl (%rbp), %eax
.loc 4 76 5 is_stmt 0 # test-coroutine.cpp:76:5
leaq 168(%rsi), %rcx
.loc 4 76 24 # test-coroutine.cpp:76:24
movl %eax, 168(%rsi)
.loc 4 77 26 is_stmt 1 # test-coroutine.cpp:77:26
movq %rcx, 8(%rbp)
.loc 4 78 5 # test-coroutine.cpp:78:5
movq %rbp, 592(%rsi)
movq %rbx, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp84:
testb %al, %al
je .LBB2_32
.Ltmp85:
# %bb.16:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
movq 24(%rsi), %rdi
movq %rbx, %rcx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp86:
.loc 4 79 33 # test-coroutine.cpp:79:33
movl (%rdi), %eax
.loc 4 79 5 is_stmt 0 # test-coroutine.cpp:79:5
leaq 208(%rsi), %rcx
.loc 4 79 24 # test-coroutine.cpp:79:24
movl %eax, 208(%rsi)
.loc 4 80 26 is_stmt 1 # test-coroutine.cpp:80:26
movq %rcx, 8(%rdi)
.Ltmp25:
.Ltmp87:
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp88:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.3(%rip), %rdx
.Ltmp89:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $16, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp90:
.Ltmp26:
# %bb.17:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 0 0 is_stmt 0 # test-coroutine.cpp:0:0
movq %rax, %rdi
.Ltmp91:
leaq 32(%rsi), %rbx
.Ltmp92:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rdi, %rdx
.Ltmp27:
.Ltmp93:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 39 759 41 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %rbx, %rcx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp94:
.Ltmp28:
# %bb.18:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp29:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
movq %rbx, %rcx
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp95:
.Ltmp30:
# %bb.19:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbp
.Ltmp31:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbp)
.Ltmp96:
.Ltmp32:
# %bb.20:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebp
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
movq %rbx, %rcx
callq _ZNSt3__16localeD1Ev
.Ltmp97:
.Ltmp34:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rdi, %rcx
movl %ebp, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp98:
.Ltmp35:
# %bb.21:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp36:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rdi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp99:
.Ltmp37:
.LBB2_22:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 58 16 # test-coroutine.cpp:58:16
testq %rsi, %rsi
je .LBB2_29
.Ltmp100:
# %bb.23:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
movq %rsi, %rcx
callq _ZdlPv
.Ltmp101:
.loc 4 0 16 is_stmt 0 # test-coroutine.cpp:0:16
jmp .LBB2_29
.Ltmp102:
.LBB2_24:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 66 5 is_stmt 1 # test-coroutine.cpp:66:5
movb $0, 17(%rsi)
.Ltmp103:
.LBB2_25:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: from_address:__tmp <- [DW_OP_deref] undef
.loc 4 0 0 is_stmt 0 # test-coroutine.cpp:0:0
movq %rbx, %rcx
jmp .LBB2_28
.Ltmp104:
.LBB2_26:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 69 5 is_stmt 1 # test-coroutine.cpp:69:5
movb $1, 17(%rsi)
.Ltmp105:
.LBB2_27:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: from_address:__tmp <- [DW_OP_deref] undef
.loc 4 0 0 is_stmt 0 # test-coroutine.cpp:0:0
movq %rdi, %rcx
.Ltmp106:
.LBB2_28: # ====== 调用await_suspend回调,走到函数尾部,退出函数
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
movq %rsi, %rdx
callq _ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.Ltmp107:
.LBB2_29:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 58 16 is_stmt 1 # test-coroutine.cpp:58:16
nop
addq $40, %rsp
popq %rbx
popq %rbp
popq %rdi
popq %rsi
popq %r14
.Ltmp108:
popq %r15
retq
.LBB2_30:
.Ltmp109:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 72 5 # test-coroutine.cpp:72:5
movb $2, 17(%rsi)
jmp .LBB2_25
.Ltmp110:
.LBB2_31:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 75 5 # test-coroutine.cpp:75:5
movb $3, 17(%rsi)
jmp .LBB2_27
.Ltmp111:
.LBB2_32:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 78 5 # test-coroutine.cpp:78:5
movb $4, 17(%rsi)
jmp .LBB2_25
.Ltmp112:
.LBB2_33:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp33:
.loc 4 0 5 is_stmt 0 # test-coroutine.cpp:0:5
movq %rax, %rdi
.Ltmp113:
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
movq %rbx, %rcx
callq _ZNSt3__16localeD1Ev
.Ltmp114:
.loc 39 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB2_36
.Ltmp115:
.LBB2_34:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rbx
#DEBUG_VALUE: operator<<:this <- $rbx
#DEBUG_VALUE: sp <- $rdi
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp20:
movq %rax, %rdi
.Ltmp116:
leaq 32(%rsp), %rcx
.Ltmp117:
.loc 39 759 5 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp118:
.loc 39 0 5 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB2_36
.Ltmp119:
.LBB2_35:
#DEBUG_VALUE: stack_variable <- [$r15+0]
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp38:
movq %rax, %rdi
.Ltmp120:
.LBB2_36:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 58 16 is_stmt 1 # test-coroutine.cpp:58:16
movq %rdi, %rcx
callq __cxa_begin_catch
.Ltmp121:
.Ltmp39:
callq __cxa_end_catch
.Ltmp122:
.Ltmp40:
jmp .LBB2_22
.Ltmp123:
.LBB2_37:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.Ltmp41:
.loc 4 0 16 is_stmt 0 # test-coroutine.cpp:0:16
movq %rax, %rdi
.loc 4 58 16 # test-coroutine.cpp:58:16
testq %rsi, %rsi
je .LBB2_39
.Ltmp124:
# %bb.38:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
movq %rsi, %rcx
callq _ZdlPv
.Ltmp125:
.LBB2_39:
#DEBUG_VALUE: f:waiter <- $r14
#DEBUG_VALUE: f:waiter <- $r14
.loc 4 0 16 # test-coroutine.cpp:0:16
movq %rdi, %rcx
callq _Unwind_Resume
.Ltmp126:
ud2
.Lfunc_end2:
.file 41 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "iosfwd"
.file 42 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "mutex"
.seh_handlerdata
.text
.seh_endproc
.section .xdata,"dr"
.p2align 2
GCC_except_table2:
.Lexception0:
.byte 255 # @LPStart Encoding = omit
.byte 0 # @TType Encoding = absptr
.uleb128 .Lttbase0-.Lttbaseref0
.Lttbaseref0:
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
.uleb128 .Lfunc_begin2-.Lfunc_begin2 # >> Call Site 1 <<
.uleb128 .Ltmp2-.Lfunc_begin2 # Call between .Lfunc_begin2 and .Ltmp2
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp2-.Lfunc_begin2 # >> Call Site 2 <<
.uleb128 .Ltmp15-.Ltmp2 # Call between .Ltmp2 and .Ltmp15
.uleb128 .Ltmp38-.Lfunc_begin2 # jumps to .Ltmp38
.byte 1 # On action: 1
.uleb128 .Ltmp16-.Lfunc_begin2 # >> Call Site 3 <<
.uleb128 .Ltmp19-.Ltmp16 # Call between .Ltmp16 and .Ltmp19
.uleb128 .Ltmp20-.Lfunc_begin2 # jumps to .Ltmp20
.byte 1 # On action: 1
.uleb128 .Ltmp21-.Lfunc_begin2 # >> Call Site 4 <<
.uleb128 .Ltmp28-.Ltmp21 # Call between .Ltmp21 and .Ltmp28
.uleb128 .Ltmp38-.Lfunc_begin2 # jumps to .Ltmp38
.byte 1 # On action: 1
.uleb128 .Ltmp29-.Lfunc_begin2 # >> Call Site 5 <<
.uleb128 .Ltmp32-.Ltmp29 # Call between .Ltmp29 and .Ltmp32
.uleb128 .Ltmp33-.Lfunc_begin2 # jumps to .Ltmp33
.byte 1 # On action: 1
.uleb128 .Ltmp34-.Lfunc_begin2 # >> Call Site 6 <<
.uleb128 .Ltmp37-.Ltmp34 # Call between .Ltmp34 and .Ltmp37
.uleb128 .Ltmp38-.Lfunc_begin2 # jumps to .Ltmp38
.byte 1 # On action: 1
.uleb128 .Ltmp37-.Lfunc_begin2 # >> Call Site 7 <<
.uleb128 .Ltmp39-.Ltmp37 # Call between .Ltmp37 and .Ltmp39
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp39-.Lfunc_begin2 # >> Call Site 8 <<
.uleb128 .Ltmp40-.Ltmp39 # Call between .Ltmp39 and .Ltmp40
.uleb128 .Ltmp41-.Lfunc_begin2 # jumps to .Ltmp41
.byte 0 # On action: cleanup
.uleb128 .Ltmp40-.Lfunc_begin2 # >> Call Site 9 <<
.uleb128 .Lfunc_end2-.Ltmp40 # Call between .Ltmp40 and .Lfunc_end2
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.Lcst_end0:
.byte 1 # >> Action Record 1 <<
# Catch TypeInfo 1
.byte 0 # No further actions
.p2align 2
# >> Catch TypeInfos <<
.quad 0 # TypeInfo 1
.Lttbase0:
.p2align 2
.text
# -- End function
.def _ZN18suspend_some_times11await_readyEv;
.scl 2;
.type 32;
.endef
.section .text$_ZN18suspend_some_times11await_readyEv,"xr",discard,_ZN18suspend_some_times11await_readyEv
.globl _ZN18suspend_some_times11await_readyEv # -- Begin function _ZN18suspend_some_times11await_readyEv
.p2align 4, 0x90
_ZN18suspend_some_times11await_readyEv: # @_ZN18suspend_some_times11await_readyEv
.Lfunc_begin3:
.loc 4 19 0 is_stmt 1 # test-coroutine.cpp:19:0
.seh_proc _ZN18suspend_some_times11await_readyEv
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbx
.seh_pushreg 3
subq $48, %rsp
.seh_stackalloc 48
.seh_endprologue
#DEBUG_VALUE: await_ready:this <- $rcx
movq %rcx, %rsi
.Ltmp127:
.Ltmp143:
#DEBUG_VALUE: await_ready:this <- $rsi
.loc 9 865 12 prologue_end # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp144:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.8(%rip), %rdx
.Ltmp145:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $18, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp146:
.Ltmp128:
# %bb.1:
#DEBUG_VALUE: await_ready:this <- $rsi
.loc 4 20 46 # test-coroutine.cpp:20:46
movq (%rsi), %rcx
.loc 4 20 48 is_stmt 0 # test-coroutine.cpp:20:48
movl (%rcx), %edx
.Ltmp129:
.loc 4 20 43 # test-coroutine.cpp:20:43
movq %rax, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi
.Ltmp147:
.Ltmp130:
# %bb.2:
#DEBUG_VALUE: await_ready:this <- $rsi
.loc 4 0 0 # test-coroutine.cpp:0:0
movq %rax, %rdi
.Ltmp148:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rdi, %rdx
.Ltmp131:
.Ltmp149:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
leaq 40(%rsp), %rcx
.Ltmp150:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp151:
.Ltmp132:
# %bb.3:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_ready:this <- $rsi
.Ltmp133:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
leaq 40(%rsp), %rcx
.Ltmp152:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 40] $rsp
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp153:
.Ltmp134:
# %bb.4:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_ready:this <- $rsi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp135:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp154:
.Ltmp136:
# %bb.5:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_ready:this <- $rsi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebx
leaq 40(%rsp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp155:
.Ltmp138:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rdi, %rcx
movl %ebx, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp156:
.Ltmp139:
# %bb.6:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_ready:this <- $rsi
.Ltmp140:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rdi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp157:
.Ltmp141:
# %bb.7:
#DEBUG_VALUE: await_ready:this <- $rsi
.loc 4 21 16 # test-coroutine.cpp:21:16
movq (%rsi), %rax
.loc 4 21 29 is_stmt 0 # test-coroutine.cpp:21:29
cmpl $0, (%rax)
setle %al
.loc 4 21 9 # test-coroutine.cpp:21:9
addq $48, %rsp
popq %rbx
popq %rdi
popq %rsi
.Ltmp158:
retq
.LBB3_10:
.Ltmp159:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_ready:this <- $rsi
.Ltmp137:
.loc 4 0 9 # test-coroutine.cpp:0:9
movq %rax, %rsi
.Ltmp160:
leaq 40(%rsp), %rcx
.Ltmp161:
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp162:
.loc 39 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB3_9
.Ltmp163:
.LBB3_8:
#DEBUG_VALUE: await_ready:this <- $rsi
.Ltmp142:
movq %rax, %rsi
.Ltmp164:
.LBB3_9:
.loc 4 20 19 is_stmt 1 # test-coroutine.cpp:20:19
movq %rsi, %rcx
callq __clang_call_terminate
.Ltmp165:
ud2
.Ltmp166:
.Lfunc_end3:
.seh_handlerdata
.section .text$_ZN18suspend_some_times11await_readyEv,"xr",discard,_ZN18suspend_some_times11await_readyEv
.seh_endproc
.section .xdata$_ZN18suspend_some_times11await_readyEv,"dr"
.linkonce discard
.p2align 2
GCC_except_table3:
.Lexception1:
.byte 255 # @LPStart Encoding = omit
.byte 0 # @TType Encoding = absptr
.uleb128 .Lttbase1-.Lttbaseref1
.Lttbaseref1:
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
.uleb128 .Ltmp127-.Lfunc_begin3 # >> Call Site 1 <<
.uleb128 .Ltmp132-.Ltmp127 # Call between .Ltmp127 and .Ltmp132
.uleb128 .Ltmp142-.Lfunc_begin3 # jumps to .Ltmp142
.byte 1 # On action: 1
.uleb128 .Ltmp133-.Lfunc_begin3 # >> Call Site 2 <<
.uleb128 .Ltmp136-.Ltmp133 # Call between .Ltmp133 and .Ltmp136
.uleb128 .Ltmp137-.Lfunc_begin3 # jumps to .Ltmp137
.byte 1 # On action: 1
.uleb128 .Ltmp138-.Lfunc_begin3 # >> Call Site 3 <<
.uleb128 .Ltmp141-.Ltmp138 # Call between .Ltmp138 and .Ltmp141
.uleb128 .Ltmp142-.Lfunc_begin3 # jumps to .Ltmp142
.byte 1 # On action: 1
.Lcst_end1:
.byte 1 # >> Action Record 1 <<
# Catch TypeInfo 1
.byte 0 # No further actions
.p2align 2
# >> Catch TypeInfos <<
.quad 0 # TypeInfo 1
.Lttbase1:
.p2align 2
.section .text$_ZN18suspend_some_times11await_readyEv,"xr",discard,_ZN18suspend_some_times11await_readyEv
# -- End function
.def _ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE;
.scl 2;
.type 32;
.endef
.section .text$_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE,"xr",discard,_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.globl _ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE # -- Begin function _ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.p2align 4, 0x90
_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE: # @_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.Lfunc_begin4:
.loc 4 24 0 # test-coroutine.cpp:24:0
.seh_proc _ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %rsi
.seh_pushreg 6
pushq %rbx
.seh_pushreg 3
subq $40, %rsp
.seh_stackalloc 40
.seh_endprologue
#DEBUG_VALUE: await_suspend:this <- $rcx
movq %rcx, %rsi
#DEBUG_VALUE: await_suspend:h <- $rdx
.Ltmp183:
#DEBUG_VALUE: await_suspend:this <- $rsi
.loc 4 26 9 prologue_end # test-coroutine.cpp:26:9
movq (%rcx), %rax
.loc 4 26 18 is_stmt 0 # test-coroutine.cpp:26:18
movq %rdx, 16(%rax)
.Ltmp167:
.Ltmp184:
.loc 9 865 12 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp185:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.9(%rip), %rdx
.Ltmp186:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $20, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp187:
.Ltmp168:
# %bb.1:
#DEBUG_VALUE: await_suspend:this <- $rsi
.loc 4 28 51 # test-coroutine.cpp:28:51
movq (%rsi), %rcx
.loc 4 28 49 is_stmt 0 # test-coroutine.cpp:28:49
movl (%rcx), %edx
addl $-1, %edx
movl %edx, (%rcx)
.Ltmp169:
.loc 4 28 45 # test-coroutine.cpp:28:45
movq %rax, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi
.Ltmp188:
.Ltmp170:
# %bb.2:
#DEBUG_VALUE: await_suspend:this <- $rsi
.loc 4 0 0 # test-coroutine.cpp:0:0
movq %rax, %rsi
.Ltmp189:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rsi, %rdx
.Ltmp171:
.Ltmp190:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
leaq 32(%rsp), %rcx
.Ltmp191:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp192:
.Ltmp172:
# %bb.3:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.Ltmp173:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
leaq 32(%rsp), %rcx
.Ltmp193:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32] $rsp
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp194:
.Ltmp174:
# %bb.4:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp175:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp195:
.Ltmp176:
# %bb.5:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebx
leaq 32(%rsp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp196:
.Ltmp178:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rsi, %rcx
movl %ebx, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp197:
.Ltmp179:
# %bb.6:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.Ltmp180:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rsi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp198:
.Ltmp181:
# %bb.7:
.loc 4 29 5 # test-coroutine.cpp:29:5
nop
addq $40, %rsp
popq %rbx
popq %rsi
retq
.LBB4_10:
.Ltmp199:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.Ltmp177:
.loc 4 0 5 is_stmt 0 # test-coroutine.cpp:0:5
movq %rax, %rsi
.Ltmp200:
leaq 32(%rsp), %rcx
.Ltmp201:
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp202:
.loc 39 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB4_9
.Ltmp203:
.LBB4_8:
.Ltmp182:
movq %rax, %rsi
.LBB4_9:
.loc 4 28 19 is_stmt 1 # test-coroutine.cpp:28:19
movq %rsi, %rcx
callq __clang_call_terminate
.Ltmp204:
ud2
.Ltmp205:
.Lfunc_end4:
.seh_handlerdata
.section .text$_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE,"xr",discard,_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
.seh_endproc
.section .xdata$_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE,"dr"
.linkonce discard
.p2align 2
GCC_except_table4:
.Lexception2:
.byte 255 # @LPStart Encoding = omit
.byte 0 # @TType Encoding = absptr
.uleb128 .Lttbase2-.Lttbaseref2
.Lttbaseref2:
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
.uleb128 .Ltmp167-.Lfunc_begin4 # >> Call Site 1 <<
.uleb128 .Ltmp172-.Ltmp167 # Call between .Ltmp167 and .Ltmp172
.uleb128 .Ltmp182-.Lfunc_begin4 # jumps to .Ltmp182
.byte 1 # On action: 1
.uleb128 .Ltmp173-.Lfunc_begin4 # >> Call Site 2 <<
.uleb128 .Ltmp176-.Ltmp173 # Call between .Ltmp173 and .Ltmp176
.uleb128 .Ltmp177-.Lfunc_begin4 # jumps to .Ltmp177
.byte 1 # On action: 1
.uleb128 .Ltmp178-.Lfunc_begin4 # >> Call Site 3 <<
.uleb128 .Ltmp181-.Ltmp178 # Call between .Ltmp178 and .Ltmp181
.uleb128 .Ltmp182-.Lfunc_begin4 # jumps to .Ltmp182
.byte 1 # On action: 1
.Lcst_end2:
.byte 1 # >> Action Record 1 <<
# Catch TypeInfo 1
.byte 0 # No further actions
.p2align 2
# >> Catch TypeInfos <<
.quad 0 # TypeInfo 1
.Lttbase2:
.p2align 2
.section .text$_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE,"xr",discard,_ZN18suspend_some_times13await_suspendENSt12experimental13coroutines_v116coroutine_handleIvEE
# -- End function
.def _ZN18suspend_some_times12await_resumeEv;
.scl 2;
.type 32;
.endef
.section .text$_ZN18suspend_some_times12await_resumeEv,"xr",discard,_ZN18suspend_some_times12await_resumeEv
.globl _ZN18suspend_some_times12await_resumeEv # -- Begin function _ZN18suspend_some_times12await_resumeEv
.p2align 4, 0x90
_ZN18suspend_some_times12await_resumeEv: # @_ZN18suspend_some_times12await_resumeEv
.Lfunc_begin5:
.loc 4 31 0 # test-coroutine.cpp:31:0
.seh_proc _ZN18suspend_some_times12await_resumeEv
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbx
.seh_pushreg 3
subq $48, %rsp
.seh_stackalloc 48
.seh_endprologue
#DEBUG_VALUE: await_resume:this <- $rcx
movq %rcx, %rsi
.Ltmp206:
.Ltmp222:
#DEBUG_VALUE: await_resume:this <- $rsi
.loc 9 865 12 prologue_end # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp223:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.10(%rip), %rdx
.Ltmp224:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $19, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp225:
.Ltmp207:
# %bb.1:
#DEBUG_VALUE: await_resume:this <- $rsi
.loc 4 32 47 # test-coroutine.cpp:32:47
movq (%rsi), %rcx
.loc 4 32 49 is_stmt 0 # test-coroutine.cpp:32:49
movl (%rcx), %edx
.Ltmp208:
.loc 4 32 44 # test-coroutine.cpp:32:44
movq %rax, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEi
.Ltmp226:
.Ltmp209:
# %bb.2:
#DEBUG_VALUE: await_resume:this <- $rsi
.loc 4 0 0 # test-coroutine.cpp:0:0
movq %rax, %rdi
.Ltmp227:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rdi, %rdx
.Ltmp210:
.Ltmp228:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
leaq 40(%rsp), %rcx
.Ltmp229:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp230:
.Ltmp211:
# %bb.3:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_resume:this <- $rsi
.Ltmp212:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
leaq 40(%rsp), %rcx
.Ltmp231:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 40] $rsp
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp232:
.Ltmp213:
# %bb.4:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_resume:this <- $rsi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp214:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp233:
.Ltmp215:
# %bb.5:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_resume:this <- $rsi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebx
leaq 40(%rsp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp234:
.Ltmp217:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rdi, %rcx
movl %ebx, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp235:
.Ltmp218:
# %bb.6:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_resume:this <- $rsi
.Ltmp219:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rdi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp236:
.Ltmp220:
# %bb.7:
#DEBUG_VALUE: await_resume:this <- $rsi
.loc 4 33 9 # test-coroutine.cpp:33:9
movq (%rsi), %rax
.Ltmp237:
#DEBUG_VALUE: operator=: <- 0
#DEBUG_VALUE: operator=:this <- [DW_OP_plus_uconst 16, DW_OP_stack_value] $rax
.loc 5 104 19 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:104:19
movq $0, 16(%rax)
.Ltmp238:
.loc 4 34 5 # test-coroutine.cpp:34:5
addq $48, %rsp
popq %rbx
popq %rdi
popq %rsi
.Ltmp239:
retq
.Ltmp240:
.LBB5_10:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: await_resume:this <- $rsi
.Ltmp216:
.loc 4 0 5 is_stmt 0 # test-coroutine.cpp:0:5
movq %rax, %rsi
.Ltmp241:
leaq 40(%rsp), %rcx
.Ltmp242:
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp243:
.loc 39 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB5_9
.Ltmp244:
.LBB5_8:
#DEBUG_VALUE: await_resume:this <- $rsi
.Ltmp221:
movq %rax, %rsi
.Ltmp245:
.LBB5_9:
.loc 4 32 19 is_stmt 1 # test-coroutine.cpp:32:19
movq %rsi, %rcx
callq __clang_call_terminate
.Ltmp246:
ud2
.Ltmp247:
.Lfunc_end5:
.seh_handlerdata
.section .text$_ZN18suspend_some_times12await_resumeEv,"xr",discard,_ZN18suspend_some_times12await_resumeEv
.seh_endproc
.section .xdata$_ZN18suspend_some_times12await_resumeEv,"dr"
.linkonce discard
.p2align 2
GCC_except_table5:
.Lexception3:
.byte 255 # @LPStart Encoding = omit
.byte 0 # @TType Encoding = absptr
.uleb128 .Lttbase3-.Lttbaseref3
.Lttbaseref3:
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
.uleb128 .Ltmp206-.Lfunc_begin5 # >> Call Site 1 <<
.uleb128 .Ltmp211-.Ltmp206 # Call between .Ltmp206 and .Ltmp211
.uleb128 .Ltmp221-.Lfunc_begin5 # jumps to .Ltmp221
.byte 1 # On action: 1
.uleb128 .Ltmp212-.Lfunc_begin5 # >> Call Site 2 <<
.uleb128 .Ltmp215-.Ltmp212 # Call between .Ltmp212 and .Ltmp215
.uleb128 .Ltmp216-.Lfunc_begin5 # jumps to .Ltmp216
.byte 1 # On action: 1
.uleb128 .Ltmp217-.Lfunc_begin5 # >> Call Site 3 <<
.uleb128 .Ltmp220-.Ltmp217 # Call between .Ltmp217 and .Ltmp220
.uleb128 .Ltmp221-.Lfunc_begin5 # jumps to .Ltmp221
.byte 1 # On action: 1
.Lcst_end3:
.byte 1 # >> Action Record 1 <<
# Catch TypeInfo 1
.byte 0 # No further actions
.p2align 2
# >> Catch TypeInfos <<
.quad 0 # TypeInfo 1
.Lttbase3:
.p2align 2
.section .text$_ZN18suspend_some_times12await_resumeEv,"xr",discard,_ZN18suspend_some_times12await_resumeEv
# -- End function
.def main;
.scl 2;
.type 32;
.endef
.text
.globl main # -- Begin function main
.p2align 4, 0x90
main: # @main
.Lfunc_begin6:
.loc 4 84 0 # test-coroutine.cpp:84:0
.seh_proc main
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %rbp
.seh_pushreg 5
pushq %r15
.seh_pushreg 15
pushq %r14
.seh_pushreg 14
pushq %r13
.seh_pushreg 13
pushq %r12
.seh_pushreg 12
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbx
.seh_pushreg 3
subq $72, %rsp
.seh_stackalloc 72
leaq 64(%rsp), %rbp
.seh_setframe 5, 64
.seh_endprologue
#DEBUG_VALUE: main:argc <- $ecx
#DEBUG_VALUE: main:argv <- $rdx
callq __main
.Ltmp263:
.loc 9 865 12 prologue_end # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp264:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.4(%rip), %rdx
.Ltmp265:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $18, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp266:
.loc 4 86 39 # test-coroutine.cpp:86:39
movq %rax, %rcx
movl $201703, %edx # imm = 0x313E7
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEl
.Ltmp267:
movq %rax, %rsi
.Ltmp268:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.loc 9 1002 14 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rsi, %rdx
.Ltmp269:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
leaq -24(%rbp), %rdi
.Ltmp270:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %rdi, %rcx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp271:
.Ltmp248:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_constu 24, DW_OP_minus] $rbp
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
movq %rdi, %rcx
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp272:
.Ltmp249:
# %bb.1:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp250:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp273:
.Ltmp251:
# %bb.2:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebx
leaq -24(%rbp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp274:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rsi, %rcx
movl %ebx, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp275:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rsi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp276:
.loc 4 90 5 # test-coroutine.cpp:90:5
#APP
movq %rsp, %rdi
#NO_APP
.Ltmp277:
#DEBUG_VALUE: main:sp <- $rdi
.loc 4 91 5 # test-coroutine.cpp:91:5
#APP
movq %rbp, %rsi
#NO_APP
.Ltmp278:
#DEBUG_VALUE: wait_some_times:t <- 3
#DEBUG_VALUE: main:bp <- $rsi
.loc 4 13 30 # test-coroutine.cpp:13:30
movl $3, -24(%rbp)
.Ltmp279:
#DEBUG_VALUE: coroutine_handle: <- 0
.loc 5 100 63 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:100:63
movq $0, -8(%rbp)
.Ltmp280:
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp281:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.5(%rip), %rdx
.Ltmp282:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $42, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp283:
.loc 9 0 12 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:12
leaq -24(%rbp), %rdx
.Ltmp284:
#DEBUG_VALUE: coroutine_handle:this <- [DW_OP_constu 24, DW_OP_minus, DW_OP_plus_uconst 16, DW_OP_stack_value] $rbp
#DEBUG_VALUE: wait_some_times:this <- [DW_OP_constu 24, DW_OP_minus] $rbp
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 4 94 62 is_stmt 1 # test-coroutine.cpp:94:62
movq %rax, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp285:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rax
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
leaq .L.str.1(%rip), %rdx
.Ltmp286:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $7, %r8d
movq %rax, %rcx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp287:
.loc 4 94 85 # test-coroutine.cpp:94:85
movq %rax, %rcx
movq %rdi, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp288:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rax
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
leaq .L.str.2(%rip), %rdx
.Ltmp289:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $7, %r8d
movq %rax, %rcx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp290:
.loc 4 94 103 # test-coroutine.cpp:94:103
movq %rax, %rcx
movq %rsi, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp291:
movq %rax, %rsi
.Ltmp292:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.loc 9 1002 14 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rsi, %rdx
.Ltmp293:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 9 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:14
movq %rbp, %rdi
.Ltmp294:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %rdi, %rcx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp295:
.Ltmp253:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- $rbp
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
movq %rdi, %rcx
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp296:
.Ltmp254:
# %bb.3:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp255:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp297:
.Ltmp256:
# %bb.4:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebx
movq %rbp, %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp298:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rsi, %rcx
movl %ebx, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp299:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rsi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp300:
.loc 9 0 10 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:10
leaq -24(%rbp), %rcx
.Ltmp301:
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 4 95 5 is_stmt 1 # test-coroutine.cpp:95:5
callq _Z1fR15wait_some_times # ====== 第一次调用 f(waiter);
.Ltmp302:
#DEBUG_VALUE: operator bool:this <- [DW_OP_constu 24, DW_OP_minus, DW_OP_plus_uconst 16, DW_OP_stack_value] $rbp
.loc 5 112 73 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:112:73
movq -8(%rbp), %rax
testq %rax, %rax
.Ltmp303:
.loc 4 97 26 # test-coroutine.cpp:97:26
je .LBB6_10
.Ltmp304:
# %bb.5:
#DEBUG_VALUE: operator bool:this <- [DW_OP_constu 24, DW_OP_minus, DW_OP_plus_uconst 16, DW_OP_stack_value] $rbp
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 4 0 26 is_stmt 0 # test-coroutine.cpp:0:26
leaq -24(%rbp), %r12
leaq .L.str.7(%rip), %r13
movq %rbp, %rdi
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %r15
.Ltmp305:
.p2align 4, 0x90
.LBB6_6: # =>This Inner Loop Header: Depth=1
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 5 137 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:137:14
cmpq $0, (%rax)
.Ltmp306:
.loc 4 97 5 # test-coroutine.cpp:97:5
je .LBB6_10
.Ltmp307:
# %bb.7: # in Loop: Header=BB6_6 Depth=1
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- undef
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- undef
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movl $17, %r8d
movq .refptr._ZNSt3__14coutE(%rip), %rcx
leaq .L.str.6(%rip), %rdx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp308:
#DEBUG_VALUE: done:this <- [DW_OP_constu 24, DW_OP_minus, DW_OP_plus_uconst 16, DW_OP_stack_value] $rbp
.loc 4 98 42 # test-coroutine.cpp:98:42
movq %rax, %rcx
movq %r12, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp309:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rax
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $r13
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movl $22, %r8d
movq %rax, %rcx
movq %r13, %rdx
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp310:
.loc 4 98 89 # test-coroutine.cpp:98:89
movq -16(%rbp), %rdx
.loc 4 98 79 is_stmt 0 # test-coroutine.cpp:98:79
movq %rax, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEElsEPKv
.Ltmp311:
movq %rax, %rsi
.Ltmp312:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: operator<<:this <- $rsi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rsi, %rdx
.Ltmp313:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 39 759 41 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %rdi, %rcx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp314:
.Ltmp258:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- $rbp
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq %rdi, %rcx
movq %r15, %rdx
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp315:
.Ltmp259:
# %bb.8: # in Loop: Header=BB6_6 Depth=1
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbx
.Ltmp260:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbx)
.Ltmp316:
.Ltmp261:
# %bb.9: # in Loop: Header=BB6_6 Depth=1
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %r14d
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
movq %rdi, %rcx
callq _ZNSt3__16localeD1Ev
.Ltmp317:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rsi, %rcx
movl %r14d, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp318:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rsi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp319:
#DEBUG_VALUE: resume:this <- [DW_OP_plus_uconst 16, DW_OP_stack_value] undef
.loc 5 123 29 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:123:29
movq -8(%rbp), %rcx
.loc 5 123 7 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:123:7
callq *(%rcx) # ====== 调用 waiter.handle.resume(); 里的 __builtin_coro_resume
.Ltmp320:
#DEBUG_VALUE: operator bool:this <- [DW_OP_plus_uconst 16, DW_OP_stack_value] undef
.loc 5 112 73 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\experimental\coroutine:112:73
movq -8(%rbp), %rax
testq %rax, %rax
.Ltmp321:
.loc 4 97 26 # test-coroutine.cpp:97:26
jne .LBB6_6
.Ltmp322:
.LBB6_10:
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.loc 4 103 5 # test-coroutine.cpp:103:5
xorl %eax, %eax
addq $72, %rsp
popq %rbx
popq %rdi
popq %rsi
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
.Ltmp323:
retq
.LBB6_11:
.Ltmp324:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.Ltmp257:
.loc 4 0 5 is_stmt 0 # test-coroutine.cpp:0:5
jmp .LBB6_12
.Ltmp325:
.LBB6_14:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
.Ltmp252:
movq %rax, %rsi
.Ltmp326:
leaq -24(%rbp), %rcx
jmp .LBB6_15
.LBB6_13:
.Ltmp327:
#DEBUG_VALUE: operator<<:this <- $rsi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
.Ltmp262:
.LBB6_12:
#DEBUG_VALUE: main:waiter <- [DW_OP_constu 24, DW_OP_minus, DW_OP_deref] $rbp
movq %rax, %rsi
movq %rbp, %rcx
.Ltmp328:
.LBB6_15:
callq _ZNSt3__16localeD1Ev
.Ltmp329:
movq %rsi, %rcx
callq _Unwind_Resume
.Ltmp330:
ud2
.Ltmp331:
.Lfunc_end6:
.seh_handlerdata
.text
.seh_endproc
.section .xdata,"dr"
.p2align 2
GCC_except_table6:
.Lexception4:
.byte 255 # @LPStart Encoding = omit
.byte 255 # @TType Encoding = omit
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end4-.Lcst_begin4
.Lcst_begin4:
.uleb128 .Lfunc_begin6-.Lfunc_begin6 # >> Call Site 1 <<
.uleb128 .Ltmp248-.Lfunc_begin6 # Call between .Lfunc_begin6 and .Ltmp248
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp248-.Lfunc_begin6 # >> Call Site 2 <<
.uleb128 .Ltmp251-.Ltmp248 # Call between .Ltmp248 and .Ltmp251
.uleb128 .Ltmp252-.Lfunc_begin6 # jumps to .Ltmp252
.byte 0 # On action: cleanup
.uleb128 .Ltmp251-.Lfunc_begin6 # >> Call Site 3 <<
.uleb128 .Ltmp253-.Ltmp251 # Call between .Ltmp251 and .Ltmp253
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp253-.Lfunc_begin6 # >> Call Site 4 <<
.uleb128 .Ltmp256-.Ltmp253 # Call between .Ltmp253 and .Ltmp256
.uleb128 .Ltmp257-.Lfunc_begin6 # jumps to .Ltmp257
.byte 0 # On action: cleanup
.uleb128 .Ltmp256-.Lfunc_begin6 # >> Call Site 5 <<
.uleb128 .Ltmp258-.Ltmp256 # Call between .Ltmp256 and .Ltmp258
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp258-.Lfunc_begin6 # >> Call Site 6 <<
.uleb128 .Ltmp261-.Ltmp258 # Call between .Ltmp258 and .Ltmp261
.uleb128 .Ltmp262-.Lfunc_begin6 # jumps to .Ltmp262
.byte 0 # On action: cleanup
.uleb128 .Ltmp261-.Lfunc_begin6 # >> Call Site 7 <<
.uleb128 .Lfunc_end6-.Ltmp261 # Call between .Ltmp261 and .Lfunc_end6
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.Lcst_end4:
.p2align 2
.text
# -- End function
.def _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y;
.scl 2;
.type 32;
.endef
.section .text$_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y,"xr",discard,_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.globl _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y # -- Begin function _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.p2align 4, 0x90
_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y: # @_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Lfunc_begin7:
.loc 9 717 0 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:717:0
.seh_proc _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %r15
.seh_pushreg 15
pushq %r14
.seh_pushreg 14
pushq %r12
.seh_pushreg 12
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbp
.seh_pushreg 5
pushq %rbx
.seh_pushreg 3
subq $80, %rsp
.seh_stackalloc 80
.seh_endprologue
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rcx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rdx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $r8
.Ltmp354:
#DEBUG_VALUE: ostreambuf_iterator:__s <- $rcx
movq %r8, %rdi
movq %rdx, %rbx
movq %rcx, %rsi
.Ltmp355:
#DEBUG_VALUE: ostreambuf_iterator:__s <- $rsi
.Ltmp332:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
leaq 64(%rsp), %rcx
.Ltmp356:
.loc 9 722 57 prologue_end # C:\tools\msys64\mingw64\include\c++\v1\ostream:722:57
movq %rsi, %rdx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryC1ERS3_
.Ltmp357:
.Ltmp333:
# %bb.1:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
#DEBUG_VALUE: __s <- [DW_OP_deref] undef
#DEBUG_VALUE: operator bool:this <- undef
.loc 9 255 39 # C:\tools\msys64\mingw64\include\c++\v1\ostream:255:39
cmpb $0, 64(%rsp)
.Ltmp358:
.loc 9 723 13 # C:\tools\msys64\mingw64\include\c++\v1\ostream:723:13
je .LBB7_10
.Ltmp359:
# %bb.2:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
#DEBUG_VALUE: ostreambuf_iterator:this <- undef
.loc 7 1068 19 # C:\tools\msys64\mingw64\include\c++\v1\iterator:1068:19
movq (%rsi), %rax
movq -24(%rax), %rax
leaq (%rsi,%rax), %r14
.Ltmp360:
#DEBUG_VALUE: rdbuf:this <- $r14
#DEBUG_VALUE: rdbuf:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
.loc 39 340 59 # C:\tools\msys64\mingw64\include\c++\v1\ios:340:59
movq 40(%rsi,%rax), %r15
.Ltmp361:
#DEBUG_VALUE: flags:this <- $r14
.loc 39 442 12 # C:\tools\msys64\mingw64\include\c++\v1\ios:442:12
movl 8(%rsi,%rax), %ebp
.Ltmp362:
#DEBUG_VALUE: fill:this <- $r14
.loc 39 767 54 # C:\tools\msys64\mingw64\include\c++\v1\ios:767:54
movl 144(%rsi,%rax), %eax
.Ltmp363:
#DEBUG_VALUE: eq_int_type:__c1 <- -1
#DEBUG_VALUE: eq_int_type:__c2 <- $eax
.loc 8 238 22 # C:\tools\msys64\mingw64\include\c++\v1\__string:238:22
cmpl $-1, %eax
.Ltmp364:
.loc 39 767 9 # C:\tools\msys64\mingw64\include\c++\v1\ios:767:9
jne .LBB7_7
.Ltmp365:
# %bb.3:
#DEBUG_VALUE: fill:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
.Ltmp335:
#DEBUG_VALUE: widen:__c <- 32
.loc 39 0 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:9
leaq 56(%rsp), %rcx
.Ltmp366:
.loc 39 759 41 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %r14, %rdx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp367:
.Ltmp336:
# %bb.4:
#DEBUG_VALUE: fill:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
.Ltmp337:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
leaq 56(%rsp), %rcx
.Ltmp368:
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 56] $rsp
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp369:
.Ltmp338:
# %bb.5:
#DEBUG_VALUE: fill:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 32
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %r8
.Ltmp339:
movq %rax, %rcx
movb $32, %dl
callq *56(%r8)
.Ltmp370:
.Ltmp340:
# %bb.6:
#DEBUG_VALUE: fill:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %r12d
leaq 56(%rsp), %rcx
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp371:
.loc 39 768 19 # C:\tools\msys64\mingw64\include\c++\v1\ios:768:19
movsbl %r12b, %eax
.loc 39 768 17 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:768:17
movl %eax, 144(%r14)
.Ltmp372:
.LBB7_7:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
.loc 9 0 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:0
addq %rbx, %rdi
.Ltmp373:
.loc 9 728 48 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:728:48
andl $176, %ebp
.loc 9 728 73 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:728:73
cmpl $32, %ebp
.loc 9 728 34 # C:\tools\msys64\mingw64\include\c++\v1\ostream:728:34
movq %rbx, %r8
cmoveq %rdi, %r8
.Ltmp342:
.loc 9 726 17 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:726:17
movb %al, 40(%rsp)
movq %r14, 32(%rsp)
movq %r15, %rcx
movq %rbx, %rdx
movq %rdi, %r9
callq _ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.Ltmp374:
.Ltmp343:
# %bb.8:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: failed:this <- undef
.loc 7 1080 77 # C:\tools\msys64\mingw64\include\c++\v1\iterator:1080:77
testq %rax, %rax
.Ltmp375:
.loc 9 726 17 # C:\tools\msys64\mingw64\include\c++\v1\ostream:726:17
jne .LBB7_10
.Ltmp376:
# %bb.9:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 9 734 17 # C:\tools\msys64\mingw64\include\c++\v1\ostream:734:17
movq (%rsi), %rax
movq -24(%rax), %rax
leaq (%rsi,%rax), %rcx
.Ltmp377:
#DEBUG_VALUE: setstate:__state <- 5
#DEBUG_VALUE: setstate:this <- $rcx
#DEBUG_VALUE: setstate:__state <- 5
#DEBUG_VALUE: setstate:this <- $rcx
.loc 39 529 11 # C:\tools\msys64\mingw64\include\c++\v1\ios:529:11
movl 32(%rsi,%rax), %edx
.loc 39 529 22 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:529:22
orl $5, %edx
.Ltmp345:
.loc 39 529 5 # C:\tools\msys64\mingw64\include\c++\v1\ios:529:5
callq _ZNSt3__18ios_base5clearEj
.Ltmp378:
.Ltmp346:
.LBB7_10:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 39 0 5 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
leaq 64(%rsp), %rcx
.loc 9 737 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:737:5
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev
.Ltmp379:
#DEBUG_VALUE: __s <- [DW_OP_plus_uconst 64, DW_OP_deref] $rsp
.LBB7_11:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 9 743 5 # C:\tools\msys64\mingw64\include\c++\v1\ostream:743:5
movq %rsi, %rax
addq $80, %rsp
popq %rbx
.Ltmp380:
popq %rbp
popq %rdi
popq %rsi
.Ltmp381:
popq %r12
popq %r14
popq %r15
retq
.LBB7_12:
.Ltmp382:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.Ltmp347:
.loc 9 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:5
jmp .LBB7_15
.Ltmp383:
.LBB7_13:
#DEBUG_VALUE: fill:this <- $r14
#DEBUG_VALUE: widen:this <- $r14
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
.Ltmp341:
movq %rax, %rdi
.Ltmp384:
leaq 56(%rsp), %rcx
.Ltmp385:
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
callq _ZNSt3__16localeD1Ev
.Ltmp386:
.loc 39 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:5
jmp .LBB7_16
.Ltmp387:
.LBB7_14:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.Ltmp344:
.LBB7_15:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
movq %rax, %rdi
.Ltmp388:
.LBB7_16:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
leaq 64(%rsp), %rcx
.Ltmp389:
#DEBUG_VALUE: __s <- [DW_OP_plus_uconst 64, DW_OP_deref] $rsp
.loc 9 737 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:737:5
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE6sentryD1Ev
.Ltmp390:
.loc 9 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:5
jmp .LBB7_18
.Ltmp391:
.LBB7_17:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__len <- $rdi
#DEBUG_VALUE: ostreambuf_iterator:__s <- $rsi
.Ltmp334:
movq %rax, %rdi
.Ltmp392:
.LBB7_18:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 9 737 5 # C:\tools\msys64\mingw64\include\c++\v1\ostream:737:5
movq %rdi, %rcx
callq __cxa_begin_catch
.Ltmp393:
.loc 9 740 9 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:740:9
movq (%rsi), %rax
movq -24(%rax), %rcx
addq %rsi, %rcx
.Ltmp348:
.loc 9 740 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:740:14
callq _ZNSt3__18ios_base33__set_badbit_and_consider_rethrowEv
.Ltmp394:
.Ltmp349:
# %bb.19:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 9 741 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:741:5
callq __cxa_end_catch
.Ltmp395:
.loc 9 0 5 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:5
jmp .LBB7_11
.Ltmp396:
.LBB7_20:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__os <- $rsi
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.Ltmp350:
movq %rax, %rsi
.Ltmp397:
.Ltmp351:
.loc 9 741 5 # C:\tools\msys64\mingw64\include\c++\v1\ostream:741:5
callq __cxa_end_catch
.Ltmp398:
.Ltmp352:
# %bb.21:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.loc 9 0 5 # C:\tools\msys64\mingw64\include\c++\v1\ostream:0:5
movq %rsi, %rcx
callq _Unwind_Resume
.Ltmp399:
ud2
.Ltmp400:
.LBB7_22:
#DEBUG_VALUE: __put_character_sequence<char, std::__1::char_traits<char> >:__str <- $rbx
.Ltmp353:
.loc 9 741 5 # C:\tools\msys64\mingw64\include\c++\v1\ostream:741:5
movq %rax, %rcx
callq __clang_call_terminate
.Ltmp401:
ud2
.Ltmp402:
.Lfunc_end7:
.seh_handlerdata
.section .text$_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y,"xr",discard,_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.seh_endproc
.section .xdata$_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y,"dr"
.linkonce discard
.p2align 2
GCC_except_table7:
.Lexception5:
.byte 255 # @LPStart Encoding = omit
.byte 0 # @TType Encoding = absptr
.uleb128 .Lttbase4-.Lttbaseref4
.Lttbaseref4:
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end5-.Lcst_begin5
.Lcst_begin5:
.uleb128 .Ltmp332-.Lfunc_begin7 # >> Call Site 1 <<
.uleb128 .Ltmp333-.Ltmp332 # Call between .Ltmp332 and .Ltmp333
.uleb128 .Ltmp334-.Lfunc_begin7 # jumps to .Ltmp334
.byte 1 # On action: 1
.uleb128 .Ltmp335-.Lfunc_begin7 # >> Call Site 2 <<
.uleb128 .Ltmp336-.Ltmp335 # Call between .Ltmp335 and .Ltmp336
.uleb128 .Ltmp344-.Lfunc_begin7 # jumps to .Ltmp344
.byte 1 # On action: 1
.uleb128 .Ltmp337-.Lfunc_begin7 # >> Call Site 3 <<
.uleb128 .Ltmp340-.Ltmp337 # Call between .Ltmp337 and .Ltmp340
.uleb128 .Ltmp341-.Lfunc_begin7 # jumps to .Ltmp341
.byte 1 # On action: 1
.uleb128 .Ltmp342-.Lfunc_begin7 # >> Call Site 4 <<
.uleb128 .Ltmp343-.Ltmp342 # Call between .Ltmp342 and .Ltmp343
.uleb128 .Ltmp344-.Lfunc_begin7 # jumps to .Ltmp344
.byte 1 # On action: 1
.uleb128 .Ltmp345-.Lfunc_begin7 # >> Call Site 5 <<
.uleb128 .Ltmp346-.Ltmp345 # Call between .Ltmp345 and .Ltmp346
.uleb128 .Ltmp347-.Lfunc_begin7 # jumps to .Ltmp347
.byte 1 # On action: 1
.uleb128 .Ltmp346-.Lfunc_begin7 # >> Call Site 6 <<
.uleb128 .Ltmp348-.Ltmp346 # Call between .Ltmp346 and .Ltmp348
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp348-.Lfunc_begin7 # >> Call Site 7 <<
.uleb128 .Ltmp349-.Ltmp348 # Call between .Ltmp348 and .Ltmp349
.uleb128 .Ltmp350-.Lfunc_begin7 # jumps to .Ltmp350
.byte 0 # On action: cleanup
.uleb128 .Ltmp349-.Lfunc_begin7 # >> Call Site 8 <<
.uleb128 .Ltmp351-.Ltmp349 # Call between .Ltmp349 and .Ltmp351
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp351-.Lfunc_begin7 # >> Call Site 9 <<
.uleb128 .Ltmp352-.Ltmp351 # Call between .Ltmp351 and .Ltmp352
.uleb128 .Ltmp353-.Lfunc_begin7 # jumps to .Ltmp353
.byte 1 # On action: 1
.uleb128 .Ltmp352-.Lfunc_begin7 # >> Call Site 10 <<
.uleb128 .Lfunc_end7-.Ltmp352 # Call between .Ltmp352 and .Lfunc_end7
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.Lcst_end5:
.byte 1 # >> Action Record 1 <<
# Catch TypeInfo 1
.byte 0 # No further actions
.p2align 2
# >> Catch TypeInfos <<
.quad 0 # TypeInfo 1
.Lttbase4:
.p2align 2
.section .text$_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y,"xr",discard,_ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
# -- End function
.def _ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_;
.scl 2;
.type 32;
.endef
.section .text$_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_,"xr",discard,_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.globl _ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_ # -- Begin function _ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.p2align 4, 0x90
_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_: # @_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.Lfunc_begin8:
.file 43 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "locale"
.loc 43 1386 0 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1386:0
.seh_proc _ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %r15
.seh_pushreg 15
pushq %r14
.seh_pushreg 14
pushq %r13
.seh_pushreg 13
pushq %r12
.seh_pushreg 12
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbp
.seh_pushreg 5
pushq %rbx
.seh_pushreg 3
subq $56, %rsp
.seh_stackalloc 56
.seh_endprologue
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rcx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ob <- $rdx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r8
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r9
.Ltmp406:
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: sputn:__s <- $rdx
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: sputn:__s <- $r8
#DEBUG_VALUE: sputn:__s <- $rdx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ob <- $rdx
.loc 43 1387 21 prologue_end # C:\tools\msys64\mingw64\include\c++\v1\locale:1387:21
testq %rcx, %rcx
.Ltmp407:
.loc 43 1387 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1387:9
je .LBB8_20
.Ltmp408:
# %bb.1:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: sputn:__s <- $r8
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: sputn:__s <- $rdx
#DEBUG_VALUE: sputn:this <- $rcx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r9
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r8
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ob <- $rdx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rcx
.loc 43 0 9 # C:\tools\msys64\mingw64\include\c++\v1\locale:0:9
movq %r9, %r13
.Ltmp409:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
movq %r8, %r14
.Ltmp410:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: sputn:__s <- $r14
movq %rcx, %rsi
.Ltmp411:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: sputn:this <- $rsi
#DEBUG_VALUE: sputn:this <- $rsi
#DEBUG_VALUE: sputn:this <- $rsi
movq 160(%rsp), %r15
.Ltmp412:
#DEBUG_VALUE: width:this <- $r15
.loc 43 1389 28 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1389:28
movq %r9, %rax
subq %rdx, %rax
.Ltmp413:
#DEBUG_VALUE: width:__r <- [DW_OP_plus_uconst 24, DW_OP_deref, DW_OP_stack_value] $r15
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__sz <- $rax
#DEBUG_VALUE: width:this <- $r15
.loc 39 504 12 # C:\tools\msys64\mingw64\include\c++\v1\ios:504:12
movq 24(%r15), %rcx
.Ltmp414:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rcx
.loc 39 0 12 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:12
xorl %ebx, %ebx
.Ltmp415:
.loc 43 1391 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1391:14
subq %rax, %rcx
.Ltmp416:
.loc 43 1391 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1391:9
cmovgq %rcx, %rbx
.Ltmp417:
#DEBUG_VALUE: basic_string:__n <- $rbx
#DEBUG_VALUE: __init:__n <- $rbx
#DEBUG_VALUE: __recommend:__s <- $rbx
#DEBUG_VALUE: __align_it<16>:__s <- [DW_OP_plus_uconst 1, DW_OP_stack_value] $rbx
#DEBUG_VALUE: __set_long_size:__s <- $rbx
#DEBUG_VALUE: __set_short_size:__s <- $rbx
#DEBUG_VALUE: assign:__n <- $rbx
#DEBUG_VALUE: sputn:__n <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
.loc 43 1395 28 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1395:28
movq %r8, %rbp
subq %rdx, %rbp
.Ltmp418:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: sputn:__n <- $rbp
.loc 43 1396 14 # C:\tools\msys64\mingw64\include\c++\v1\locale:1396:14
testq %rbp, %rbp
.Ltmp419:
.loc 43 1396 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1396:9
jle .LBB8_3
.Ltmp420:
# %bb.2:
#DEBUG_VALUE: sputn:__n <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__sz <- $rax
#DEBUG_VALUE: sputn:this <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: sputn:__s <- $rdx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ob <- $rdx
.file 44 "C:\\tools\\msys64\\mingw64\\include\\c++\\v1" "streambuf"
.loc 44 230 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\streambuf:230:14
movq (%rsi), %rax
.Ltmp421:
movq %rsi, %rcx
movq %rbp, %r8
callq *96(%rax)
.Ltmp422:
.loc 43 1398 44 # C:\tools\msys64\mingw64\include\c++\v1\locale:1398:44
cmpq %rbp, %rax
.Ltmp423:
.loc 43 1398 13 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1398:13
jne .LBB8_20
.Ltmp424:
.LBB8_3:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 1404 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1404:14
testq %rbx, %rbx
.Ltmp425:
.loc 43 1404 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1404:9
jle .LBB8_16
.Ltmp426:
# %bb.4:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 0 9 # C:\tools\msys64\mingw64\include\c++\v1\locale:0:9
movb 168(%rsp), %dl
.Ltmp427:
#DEBUG_VALUE: __compressed_pair_elem:this <- undef
#DEBUG_VALUE: __compressed_pair<true, void>:this <- undef
#DEBUG_VALUE: basic_string:this <- undef
#DEBUG_VALUE: __sp <- [DW_OP_deref] undef
#DEBUG_VALUE: assign:__a <- $dl
#DEBUG_VALUE: basic_string:__c <- $dl
.loc 10 2140 66 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\memory:2140:66
xorps %xmm0, %xmm0
movaps %xmm0, 32(%rsp)
.Ltmp428:
#DEBUG_VALUE: __init:this <- undef
movq $0, 48(%rsp)
.Ltmp429:
#DEBUG_VALUE: __init:__c <- $dl
.loc 1 1915 13 # C:\tools\msys64\mingw64\include\c++\v1\string:1915:13
cmpq $23, %rbx
.Ltmp430:
.loc 1 1915 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:1915:9
jae .LBB8_8
.Ltmp431:
# %bb.5:
#DEBUG_VALUE: __init:__c <- $dl
#DEBUG_VALUE: basic_string:__c <- $dl
#DEBUG_VALUE: assign:__a <- $dl
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 1 1471 52 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1471:52
leal (%rbx,%rbx), %eax
.loc 1 1471 35 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:1471:35
movb %al, 32(%rsp)
leaq 32(%rsp), %r12
.Ltmp432:
#DEBUG_VALUE: __get_short_pointer:this <- [DW_OP_plus_uconst 32] $rsp
#DEBUG_VALUE: __set_short_size:this <- [DW_OP_plus_uconst 32] $rsp
.loc 1 1512 53 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1512:53
leaq 33(%rsp), %rbp
.Ltmp433:
#DEBUG_VALUE: assign:__s <- $rbp
#DEBUG_VALUE: __init:__p <- $rbp
.loc 1 0 53 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:0:53
jmp .LBB8_9
.Ltmp434:
.LBB8_8:
#DEBUG_VALUE: __init:__c <- $dl
#DEBUG_VALUE: basic_string:__c <- $dl
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 1 1534 26 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1534:26
leaq 16(%rbx), %rdi
.loc 1 1534 37 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:1534:37
andq $-16, %rdi
.Ltmp435:
#DEBUG_VALUE: __libcpp_allocate:__align <- 1
#DEBUG_VALUE: allocate: <- 0
#DEBUG_VALUE: __libcpp_allocate:__size <- $rdi
#DEBUG_VALUE: allocate:__n <- $rdi
#DEBUG_VALUE: allocate:__n <- $rdi
#DEBUG_VALUE: __cap <- [DW_OP_constu 1, DW_OP_minus, DW_OP_stack_value] $rdi
#DEBUG_VALUE: __recommend:__guess <- [DW_OP_constu 1, DW_OP_minus, DW_OP_stack_value] $rdi
.loc 3 239 10 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\new:239:10
movq %rdi, %rcx
movl %edx, %ebp
.Ltmp436:
callq _Znwy
.Ltmp437:
.loc 3 0 10 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\new:0:10
movl %ebp, %edx
.loc 3 239 10 # C:\tools\msys64\mingw64\include\c++\v1\new:239:10
movq %rax, %rbp
.Ltmp438:
#DEBUG_VALUE: __init:__p <- $rbp
#DEBUG_VALUE: __set_long_pointer:__p <- $rbp
.loc 1 1503 35 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1503:35
movq %rax, 48(%rsp)
.Ltmp439:
#DEBUG_VALUE: __set_long_cap:__s <- $rdi
.loc 1 1496 49 # C:\tools\msys64\mingw64\include\c++\v1\string:1496:49
orq $1, %rdi
.Ltmp440:
.loc 1 1496 35 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:1496:35
movq %rdi, 32(%rsp)
.Ltmp441:
.loc 1 1486 35 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1486:35
movq %rbx, 40(%rsp)
leaq 32(%rsp), %r12
.Ltmp442:
#DEBUG_VALUE: __set_long_size:this <- [DW_OP_plus_uconst 32] $rsp
#DEBUG_VALUE: __set_long_cap:this <- [DW_OP_plus_uconst 32] $rsp
#DEBUG_VALUE: __set_long_pointer:this <- [DW_OP_plus_uconst 32] $rsp
.LBB8_9:
#DEBUG_VALUE: __init:__p <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 8 229 46 # C:\tools\msys64\mingw64\include\c++\v1\__string:229:46
movq %rbp, %rcx
movq %rbx, %r8
callq memset
.Ltmp443:
#DEBUG_VALUE: assign:__c1 <- undef
.loc 8 209 73 # C:\tools\msys64\mingw64\include\c++\v1\__string:209:73
movb $0, (%rbp,%rbx)
.Ltmp444:
#DEBUG_VALUE: __is_long:this <- undef
#DEBUG_VALUE: __get_pointer:this <- undef
#DEBUG_VALUE: data:this <- undef
#DEBUG_VALUE: __sp <- [DW_OP_deref] undef
.loc 1 1427 22 # C:\tools\msys64\mingw64\include\c++\v1\string:1427:22
testb $1, 32(%rsp)
.Ltmp445:
.loc 1 1518 17 # C:\tools\msys64\mingw64\include\c++\v1\string:1518:17
je .LBB8_11
.Ltmp446:
# %bb.10:
#DEBUG_VALUE: __init:__p <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 1 0 17 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\string:0:17
movq 48(%rsp), %r12
jmp .LBB8_12
.Ltmp447:
.LBB8_11:
#DEBUG_VALUE: __init:__p <- $rbp
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
addq $1, %r12
.Ltmp448:
.LBB8_12:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: sputn:__s <- $r12
.loc 44 230 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\streambuf:230:14
movq (%rsi), %rax
.Ltmp403:
movq %rsi, %rcx
movq %r12, %rdx
movq %rbx, %r8
callq *96(%rax)
.Ltmp449:
.Ltmp404:
# %bb.13:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:0:0
movq %rax, %rbp
.Ltmp450:
#DEBUG_VALUE: __sp <- [DW_OP_deref] undef
#DEBUG_VALUE: ~basic_string:this <- undef
#DEBUG_VALUE: __is_long:this <- undef
.loc 1 1427 22 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1427:22
testb $1, 32(%rsp)
.Ltmp451:
.loc 1 2138 9 # C:\tools\msys64\mingw64\include\c++\v1\string:2138:9
je .LBB8_15
.Ltmp452:
# %bb.14:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: __get_long_pointer:this <- undef
.loc 1 1506 34 # C:\tools\msys64\mingw64\include\c++\v1\string:1506:34
movq 48(%rsp), %rcx
.Ltmp453:
#DEBUG_VALUE: __do_deallocate_handle_size_align:__align <- 1
#DEBUG_VALUE: __libcpp_deallocate:__align <- 1
#DEBUG_VALUE: __do_call:__ptr <- $rcx
#DEBUG_VALUE: __do_deallocate_handle_size:__ptr <- $rcx
#DEBUG_VALUE: __do_deallocate_handle_size_align:__ptr <- $rcx
#DEBUG_VALUE: __libcpp_deallocate:__ptr <- $rcx
#DEBUG_VALUE: deallocate:__p <- $rcx
#DEBUG_VALUE: deallocate:__p <- $rcx
.loc 3 320 12 # C:\tools\msys64\mingw64\include\c++\v1\new:320:12
callq _ZdlPv
.Ltmp454:
.LBB8_15:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 1407 51 # C:\tools\msys64\mingw64\include\c++\v1\locale:1407:51
cmpq %rbx, %rbp
jne .LBB8_20
.Ltmp455:
.LBB8_16:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 1413 17 # C:\tools\msys64\mingw64\include\c++\v1\locale:1413:17
subq %r14, %r13
.Ltmp456:
#DEBUG_VALUE: sputn:__n <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $r13
.loc 43 1414 14 # C:\tools\msys64\mingw64\include\c++\v1\locale:1414:14
testq %r13, %r13
.Ltmp457:
.loc 43 1414 9 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1414:9
jle .LBB8_18
.Ltmp458:
# %bb.17:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $r13
#DEBUG_VALUE: sputn:__n <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 44 230 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\streambuf:230:14
movq (%rsi), %rax
movq %rsi, %rcx
movq %r14, %rdx
movq %r13, %r8
callq *96(%rax)
.Ltmp459:
.loc 43 1416 44 # C:\tools\msys64\mingw64\include\c++\v1\locale:1416:44
cmpq %r13, %rax
.Ltmp460:
.loc 43 1416 13 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:1416:13
jne .LBB8_20
.Ltmp461:
.LBB8_18:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__np <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: width:__wide <- 0
.loc 39 512 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:512:14
movq $0, 24(%r15)
jmp .LBB8_21
.Ltmp462:
.LBB8_20:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 39 0 14 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:14
xorl %esi, %esi
.Ltmp463:
.LBB8_21:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 43 1424 1 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\locale:1424:1
movq %rsi, %rax
addq $56, %rsp
.Ltmp464:
popq %rbx
popq %rbp
popq %rdi
popq %rsi
popq %r12
popq %r13
popq %r14
popq %r15
retq
.LBB8_22:
.Ltmp465:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__s <- $rsi
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.Ltmp405:
.loc 43 0 1 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\locale:0:1
movq %rax, %rsi
.Ltmp466:
#DEBUG_VALUE: __is_long:this <- undef
#DEBUG_VALUE: ~basic_string:this <- undef
#DEBUG_VALUE: __sp <- [DW_OP_deref] undef
.loc 1 1427 22 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\string:1427:22
testb $1, 32(%rsp)
.Ltmp467:
.loc 1 2138 9 # C:\tools\msys64\mingw64\include\c++\v1\string:2138:9
je .LBB8_24
.Ltmp468:
# %bb.23:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
#DEBUG_VALUE: __get_long_pointer:this <- undef
.loc 1 1506 34 # C:\tools\msys64\mingw64\include\c++\v1\string:1506:34
movq 48(%rsp), %rcx
.Ltmp469:
#DEBUG_VALUE: __do_deallocate_handle_size_align:__align <- 1
#DEBUG_VALUE: __libcpp_deallocate:__align <- 1
#DEBUG_VALUE: __do_call:__ptr <- $rcx
#DEBUG_VALUE: __do_deallocate_handle_size:__ptr <- $rcx
#DEBUG_VALUE: __do_deallocate_handle_size_align:__ptr <- $rcx
#DEBUG_VALUE: __libcpp_deallocate:__ptr <- $rcx
#DEBUG_VALUE: deallocate:__p <- $rcx
#DEBUG_VALUE: deallocate:__p <- $rcx
.loc 3 320 12 # C:\tools\msys64\mingw64\include\c++\v1\new:320:12
callq _ZdlPv
.Ltmp470:
.LBB8_24:
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__ns <- $rbx
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__op <- $r14
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__oe <- $r13
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__iob <- [DW_OP_plus_uconst 160] [$rsp+0]
#DEBUG_VALUE: __pad_and_output<char, std::__1::char_traits<char> >:__fl <- [DW_OP_plus_uconst 168] [$rsp+0]
.loc 3 0 12 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\new:0:12
movq %rsi, %rcx
callq _Unwind_Resume
.Ltmp471:
ud2
.Lfunc_end8:
.seh_handlerdata
.section .text$_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_,"xr",discard,_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
.seh_endproc
.section .xdata$_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_,"dr"
.linkonce discard
.p2align 2
GCC_except_table8:
.Lexception6:
.byte 255 # @LPStart Encoding = omit
.byte 255 # @TType Encoding = omit
.byte 1 # Call site Encoding = uleb128
.uleb128 .Lcst_end6-.Lcst_begin6
.Lcst_begin6:
.uleb128 .Lfunc_begin8-.Lfunc_begin8 # >> Call Site 1 <<
.uleb128 .Ltmp403-.Lfunc_begin8 # Call between .Lfunc_begin8 and .Ltmp403
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.uleb128 .Ltmp403-.Lfunc_begin8 # >> Call Site 2 <<
.uleb128 .Ltmp404-.Ltmp403 # Call between .Ltmp403 and .Ltmp404
.uleb128 .Ltmp405-.Lfunc_begin8 # jumps to .Ltmp405
.byte 0 # On action: cleanup
.uleb128 .Ltmp404-.Lfunc_begin8 # >> Call Site 3 <<
.uleb128 .Lfunc_end8-.Ltmp404 # Call between .Ltmp404 and .Lfunc_end8
.byte 0 # has no landing pad
.byte 0 # On action: cleanup
.Lcst_end6:
.p2align 2
.section .text$_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_,"xr",discard,_ZNSt3__116__pad_and_outputIcNS_11char_traitsIcEEEENS_19ostreambuf_iteratorIT_T0_EES6_PKS4_S8_S8_RNS_8ios_baseES4_
# -- End function
.def _Z1fR15wait_some_times.resume;
.scl 3;
.type 32;
.endef
.text
.p2align 4, 0x90 # -- Begin function _Z1fR15wait_some_times.resume
_Z1fR15wait_some_times.resume: # @_Z1fR15wait_some_times.resume
.Lfunc_begin9:
.loc 4 58 0 is_stmt 1 # test-coroutine.cpp:58:0
.seh_proc _Z1fR15wait_some_times.resume
.seh_handler __gxx_personality_seh0, @unwind, @except
# %bb.0:
pushq %rsi
.seh_pushreg 6
pushq %rdi
.seh_pushreg 7
pushq %rbp
.seh_pushreg 5
pushq %rbx
.seh_pushreg 3
subq $40, %rsp
.seh_stackalloc 40
.seh_endprologue
.Ltmp486:
#DEBUG_VALUE: from_address:__addr <- $rcx
#DEBUG_VALUE: from_address:__addr <- $rcx
#DEBUG_VALUE: from_address:__addr <- $rcx
#DEBUG_VALUE: from_address:__addr <- $rcx
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32, DW_OP_stack_value] $rcx
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rcx
movq %rcx, %rsi
.Ltmp487:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32, DW_OP_stack_value] $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
movb 17(%rcx), %al
addb $-1, %al
cmpb $3, %al
ja .LBB9_4
.Ltmp488:
# %bb.1:
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: from_address:__addr <- $rsi
#DEBUG_VALUE: use_facet<std::__1::ctype<char> >:__l <- [DW_OP_plus_uconst 32, DW_OP_stack_value] $rsi
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
movzbl %al, %eax
leaq .LJTI9_0(%rip), %rcx
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
.Ltmp489:
.LBB9_4:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.loc 4 66 5 prologue_end # test-coroutine.cpp:66:5
leaq 568(%rsi), %rdi
leaq 560(%rsi), %rcx
movq 24(%rsi), %rbx
.loc 4 65 70 # test-coroutine.cpp:65:70
leaq 48(%rsi), %rbp
.loc 4 66 5 # test-coroutine.cpp:66:5
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp490:
.loc 4 67 32 # test-coroutine.cpp:67:32
movl (%rbx), %eax
.loc 4 67 23 is_stmt 0 # test-coroutine.cpp:67:23
movl %eax, 48(%rsi)
.loc 4 68 26 is_stmt 1 # test-coroutine.cpp:68:26
movq %rbp, 8(%rbx)
.loc 4 69 5 # test-coroutine.cpp:69:5
movq %rbx, 568(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp491:
testb %al, %al
je .LBB9_5
.Ltmp492:
.LBB9_7:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
leaq 576(%rsi), %rdi
leaq 568(%rsi), %rcx
movq 24(%rsi), %rbx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp493:
.loc 4 70 33 # test-coroutine.cpp:70:33
movl (%rbx), %eax
.loc 4 70 5 is_stmt 0 # test-coroutine.cpp:70:5
leaq 88(%rsi), %rcx
.loc 4 70 24 # test-coroutine.cpp:70:24
movl %eax, 88(%rsi)
.loc 4 71 26 is_stmt 1 # test-coroutine.cpp:71:26
movq %rcx, 8(%rbx)
.loc 4 72 5 # test-coroutine.cpp:72:5
movq %rbx, 576(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp494:
testb %al, %al
je .LBB9_8
.Ltmp495:
.LBB9_9:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
leaq 584(%rsi), %rdi
leaq 576(%rsi), %rcx
movq 24(%rsi), %rbx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp496:
.loc 4 73 33 # test-coroutine.cpp:73:33
movl (%rbx), %eax
.loc 4 73 5 is_stmt 0 # test-coroutine.cpp:73:5
movq %rsi, %rcx
subq $-128, %rcx
.loc 4 73 24 # test-coroutine.cpp:73:24
movl %eax, 128(%rsi)
.loc 4 74 26 is_stmt 1 # test-coroutine.cpp:74:26
movq %rcx, 8(%rbx)
.loc 4 75 5 # test-coroutine.cpp:75:5
movq %rbx, 584(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp497:
testb %al, %al
je .LBB9_10
.Ltmp498:
.LBB9_11:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
leaq 592(%rsi), %rdi
leaq 584(%rsi), %rcx
movq 24(%rsi), %rbx
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp499:
.loc 4 76 33 # test-coroutine.cpp:76:33
movl (%rbx), %eax
.loc 4 76 5 is_stmt 0 # test-coroutine.cpp:76:5
leaq 168(%rsi), %rcx
.loc 4 76 24 # test-coroutine.cpp:76:24
movl %eax, 168(%rsi)
.loc 4 77 26 is_stmt 1 # test-coroutine.cpp:77:26
movq %rcx, 8(%rbx)
.loc 4 78 5 # test-coroutine.cpp:78:5
movq %rbx, 592(%rsi)
movq %rdi, %rcx
callq _ZN18suspend_some_times11await_readyEv
.Ltmp500:
testb %al, %al
je .LBB9_12
.Ltmp501:
.LBB9_13:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
leaq 592(%rsi), %rcx
movq 24(%rsi), %rdi
callq _ZN18suspend_some_times12await_resumeEv
.Ltmp502:
.loc 4 79 33 # test-coroutine.cpp:79:33
movl (%rdi), %eax
.loc 4 79 5 is_stmt 0 # test-coroutine.cpp:79:5
leaq 208(%rsi), %rcx
.loc 4 79 24 # test-coroutine.cpp:79:24
movl %eax, 208(%rsi)
.loc 4 80 26 is_stmt 1 # test-coroutine.cpp:80:26
movq %rcx, 8(%rdi)
.Ltmp472:
.Ltmp503:
.loc 9 865 12 # C:\tools\msys64\mingw64\include\c++\v1\ostream:865:12
movq .refptr._ZNSt3__14coutE(%rip), %rcx
.Ltmp504:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__os <- $rcx
leaq .L.str.3(%rip), %rdx
.Ltmp505:
#DEBUG_VALUE: operator<<<std::__1::char_traits<char> >:__str <- $rdx
movl $16, %r8d
callq _ZNSt3__124__put_character_sequenceIcNS_11char_traitsIcEEEERNS_13basic_ostreamIT_T0_EES7_PKS4_y
.Ltmp506:
.Ltmp473:
# %bb.14:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.loc 4 0 0 is_stmt 0 # test-coroutine.cpp:0:0
movq %rax, %rdi
.Ltmp507:
leaq 32(%rsi), %rbx
.Ltmp508:
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: operator<<:this <- $rdi
.loc 9 1002 14 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:14
movq (%rax), %rax
movq -24(%rax), %rdx
addq %rdi, %rdx
.Ltmp474:
.Ltmp509:
#DEBUG_VALUE: widen:this <- $rdx
#DEBUG_VALUE: widen:__c <- 10
.loc 39 759 41 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:41
movq %rbx, %rcx
callq _ZNKSt3__18ios_base6getlocEv
.Ltmp510:
.Ltmp475:
# %bb.15:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.Ltmp476:
.loc 40 234 44 # C:\tools\msys64\mingw64\include\c++\v1\__locale:234:44
movq .refptr._ZNSt3__15ctypeIcE2idE(%rip), %rdx
movq %rbx, %rcx
callq _ZNKSt3__16locale9use_facetERNS0_2idE
.Ltmp511:
.Ltmp477:
# %bb.16:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
#DEBUG_VALUE: widen:this <- $rax
#DEBUG_VALUE: widen:__c <- 10
.loc 40 649 16 # C:\tools\msys64\mingw64\include\c++\v1\__locale:649:16
movq (%rax), %rbp
.Ltmp478:
movq %rax, %rcx
movb $10, %dl
callq *56(%rbp)
.Ltmp512:
.Ltmp479:
# %bb.17:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.loc 39 0 0 is_stmt 0 # C:\tools\msys64\mingw64\include\c++\v1\ios:0:0
movl %eax, %ebp
.loc 39 759 5 is_stmt 1 # C:\tools\msys64\mingw64\include\c++\v1\ios:759:5
movq %rbx, %rcx
callq _ZNSt3__16localeD1Ev
.Ltmp513:
.Ltmp481:
.loc 9 1002 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1002:10
movq %rdi, %rcx
movl %ebp, %edx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE3putEc
.Ltmp514:
.Ltmp482:
# %bb.18:
#DEBUG_VALUE: operator<<:this <- $rdi
#DEBUG_VALUE: endl<char, std::__1::char_traits<char> >:__os <- $rdi
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.Ltmp483:
.loc 9 1003 10 # C:\tools\msys64\mingw64\include\c++\v1\ostream:1003:10
movq %rdi, %rcx
callq _ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv
.Ltmp515:
.Ltmp484:
.LBB9_19:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
.loc 4 58 16 # test-coroutine.cpp:58:16
movq %rsi, %rcx
addq $40, %rsp
popq %rbx
popq %rbp
popq %rdi
popq %rsi
.Ltmp516:
jmp _ZdlPv # TAILCALL
.Ltmp517:
.LBB9_12:
#DEBUG_VALUE: f:__promise <- [DW_OP_plus_uconst 16, DW_OP_deref, DW_OP_stack_value] $rsi
#DEBUG_VALUE: from_address:__tmp <- [DW_OP_deref] undef
.loc 4 78 5 # test-coroutine.cpp:78:5
movb $4, 17(%rsi)