summaryrefslogtreecommitdiff
path: root/thread/aap.asm
diff options
context:
space:
mode:
Diffstat (limited to 'thread/aap.asm')
-rw-r--r--thread/aap.asm4804
1 files changed, 2402 insertions, 2402 deletions
diff --git a/thread/aap.asm b/thread/aap.asm
index 787537b..347cd32 100644
--- a/thread/aap.asm
+++ b/thread/aap.asm
@@ -1,2402 +1,2402 @@
-
-
- d2 equ r10
- d3 equ r11
-
- ifndef NEW_DESCRIPTORS
- extern __cycle__in__spine:near
- extern collect_2:near
- endif
-
-_TEXT segment para 'CODE'
-_TEXT ends
-_DATA segment para 'DATA'
-_DATA ends
-
- _TEXT segment
-
- public ap_2
- public ap_3
- public ap_4
- public ap_5
- public ap_6
- public ap_7
- public ap_8
- public ap_9
- public ap_10
- public ap_11
- public ap_12
- public ap_13
- public ap_14
- public ap_15
- public ap_16
- public ap_17
- public ap_18
- public ap_19
- public ap_20
- public ap_21
- public ap_22
- public ap_23
- public ap_24
- public ap_25
- public ap_26
- public ap_27
- public ap_28
- public ap_29
- public ap_30
- public ap_31
- public ap_32
-
- public add_empty_node_2
- public add_empty_node_3
- public add_empty_node_4
- public add_empty_node_5
- public add_empty_node_6
- public add_empty_node_7
- public add_empty_node_8
- public add_empty_node_9
- public add_empty_node_10
- public add_empty_node_11
- public add_empty_node_12
- public add_empty_node_13
- public add_empty_node_14
- public add_empty_node_15
- public add_empty_node_16
- public add_empty_node_17
- public add_empty_node_18
- public add_empty_node_19
- public add_empty_node_20
- public add_empty_node_21
- public add_empty_node_22
- public add_empty_node_23
- public add_empty_node_24
- public add_empty_node_25
- public add_empty_node_26
- public add_empty_node_27
- public add_empty_node_28
- public add_empty_node_29
- public add_empty_node_30
- public add_empty_node_31
- public add_empty_node_32
-
- public yet_args_needed_5
- public yet_args_needed_6
- public yet_args_needed_7
- public yet_args_needed_8
- public yet_args_needed_9
- public yet_args_needed_10
- public yet_args_needed_11
- public yet_args_needed_12
- public yet_args_needed_13
- public yet_args_needed_14
- public yet_args_needed_15
- public yet_args_needed_16
- public yet_args_needed_17
- public yet_args_needed_18
- public yet_args_needed_19
- public yet_args_needed_20
- public yet_args_needed_21
- public yet_args_needed_22
- public yet_args_needed_23
- public yet_args_needed_24
- public yet_args_needed_25
- public yet_args_needed_26
- public yet_args_needed_27
- public yet_args_needed_28
- public yet_args_needed_29
- public yet_args_needed_30
- public yet_args_needed_31
-
-ap_32:
- mov rbp,qword ptr [r8]
- mov rbx,32*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap32
-
-ap_31:
- mov rbp,qword ptr [r8]
- mov rbx,31*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap31
-
-ap_30:
- mov rbp,qword ptr [r8]
- mov rbx,30*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap30
-
-ap_29:
- mov rbp,qword ptr [r8]
- mov rbx,29*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap29
-
-ap_28:
- mov rbp,qword ptr [r8]
- mov rbx,28*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap28
-
-ap_27:
- mov rbp,qword ptr [r8]
- mov rbx,27*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap27
-
-ap_26:
- mov rbp,qword ptr [r8]
- mov rbx,26*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap26
-
-ap_25:
- mov rbp,qword ptr [r8]
- mov rbx,25*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap25
-
-ap_24:
- mov rbp,qword ptr [r8]
- mov rbx,24*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap24
-
-ap_23:
- mov rbp,qword ptr [r8]
- mov rbx,23*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap23
-
-ap_22:
- mov rbp,qword ptr [r8]
- mov rbx,22*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap22
-
-ap_21:
- mov rbp,qword ptr [r8]
- mov rbx,21*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap21
-
-ap_20:
- mov rbp,qword ptr [r8]
- mov rbx,20*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap20
-
-ap_19:
- mov rbp,qword ptr [r8]
- mov rbx,19*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap19
-
-ap_18:
- mov rbp,qword ptr [r8]
- mov rbx,18*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap18
-
-ap_17:
- mov rbp,qword ptr [r8]
- mov rbx,17*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap17
-
-ap_16:
- mov rbp,qword ptr [r8]
- mov rbx,16*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap16
-
-ap_15:
- mov rbp,qword ptr [r8]
- mov rbx,15*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap15
-
-ap_14:
- mov rbp,qword ptr [r8]
- mov rbx,14*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap14
-
-ap_13:
- mov rbp,qword ptr [r8]
- mov rbx,13*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap13
-
-ap_12:
- mov rbp,qword ptr [r8]
- mov rbx,12*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap12
-
-ap_11:
- mov rbp,qword ptr [r8]
- mov rbx,11*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap11
-
-ap_10:
- mov rbp,qword ptr [r8]
- mov rbx,10*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap10
-
-ap_9:
- mov rbp,qword ptr [r8]
- mov rbx,9*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap9
-
-ap_8:
- mov rbp,qword ptr [r8]
- mov rbx,8*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap8
-
-ap_7:
- mov rbp,qword ptr [r8]
- mov rbx,7*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap7
-
-ap_6:
- mov rbp,qword ptr [r8]
- mov rbx,6*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap6
-
-ap_5:
- mov rbp,qword ptr [r8]
- mov rbx,5*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap5
-
-ap_4:
- mov rbp,qword ptr [r8]
- mov rbx,4*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap4
-
-ap_3:
- mov rbp,qword ptr [r8]
- mov rbx,3*8
- cmp word ptr [rbp],bx
- je fast_ap
-
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap3
-
-ap_2:
- mov rbp,qword ptr [r8]
- mov rbx,2*8
- cmp word ptr [rbp],bx
- jne no_fast_ap2_
-
-fast_ap_2_2_:
- movzx rax,word ptr -2[rbp]
- add rbx,rbp
- mov ebp,dword ptr -6[rbx]
- ifdef PROFILE
- sub rbp,24
- else
- sub rbp,12
- endif
- cmp rax,1
- jb repl_args_0_2
- je repl_args_1
-
- cmp rax,3
- jb repl_args_2
-
- mov qword ptr [rsi],rcx
- mov qword ptr 8[rsi],rdx
- lea rsi,16[rsi]
- mov rdx,qword ptr 16[r8]
-
- jmp fast_ap_
-
-no_fast_ap2_:
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- mov rdx,r8
- mov r8d,dword ptr 2[rbp]
- add rsi,8
- jmp no_fast_ap2
-
-fast_ap_2_2:
- mov r8,rdx
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
- jmp fast_ap_2_2_
-
-fast_ap_2:
- mov r8,rdx
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
-fast_ap:
- movzx rax,word ptr -2[rbp]
- add rbx,rbp
- mov ebp,dword ptr -6[rbx]
- ifdef PROFILE
- sub rbp,24
- else
- sub rbp,12
- endif
- cmp rax,1
- jb repl_args_0
- je repl_args_1
-
- cmp rax,3
- jb repl_args_2
-
- mov qword ptr [rsi],rcx
- mov qword ptr 8[rsi],rdx
- lea rsi,16[rsi]
- mov rdx,qword ptr 16[r8]
-
-fast_ap_:
- mov r8,qword ptr 8[r8]
- je repl_args_3
-
- cmp rax,5
- jb repl_args_4
- je repl_args_5
-
- cmp rax,7
- jb repl_args_6
-
-repl_args_7_:
- mov rbx,qword ptr -16[rdx+rax*8]
- mov qword ptr [rsi],rbx
- sub rax,1
- add rsi,8
- cmp rax,6
- jne repl_args_7_
-
-repl_args_6:
- mov rax,qword ptr 32[rdx]
- mov qword ptr [rsi],rax
- mov rax,qword ptr 24[rdx]
- mov qword ptr 8[rsi],rax
- mov rax,qword ptr 16[rdx]
- mov qword ptr 16[rsi],rax
- mov rcx,qword ptr 8[rdx]
- mov rdx,qword ptr [rdx]
- add rsi,24
- jmp rbp
-
-repl_args_0:
- mov r8,rdx
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-repl_args_0_2:
- jmp rbp
-
-repl_args_1:
- mov r8,qword ptr 8[r8]
- jmp rbp
-
-repl_args_2:
- mov qword ptr [rsi],rcx
- mov rcx,rdx
- add rsi,8
- mov rdx,qword ptr 16[r8]
- mov r8,qword ptr 8[r8]
- jmp rbp
-
-repl_args_3:
- mov rcx,qword ptr 8[rdx]
- mov rdx,qword ptr [rdx]
- jmp rbp
-
-repl_args_4:
- mov rax,qword ptr 16[rdx]
- mov qword ptr [rsi],rax
- mov rcx,qword ptr 8[rdx]
- mov rdx,qword ptr [rdx]
- add rsi,8
- jmp rbp
-
-repl_args_5:
- mov rax,qword ptr 24[rdx]
- mov qword ptr [rsi],rax
- mov rax,qword ptr 16[rdx]
- mov qword ptr 8[rsi],rax
- mov rcx,qword ptr 8[rdx]
- mov rdx,qword ptr [rdx]
- add rsi,16
- jmp rbp
-
-
-no_fast_ap32:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,31*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap31:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,30*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap30:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,29*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap29:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,28*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap28:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,27*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap27:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,26*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap26:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,25*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap25:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,24*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap24:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,23*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap23:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,22*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap22:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,21*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap21:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,20*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap20:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,19*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap19:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,18*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap18:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,17*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap17:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,16*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap16:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,15*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap15:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,14*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap14:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,13*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap13:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,12*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap12:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,11*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap11:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,10*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap10:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,9*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap9:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,8*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap8:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,7*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap7:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,6*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap6:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,5*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap5:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,4*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap4:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,3*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap3:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
-
- mov rbx,2*8
- cmp word ptr [rbp],bx
- je fast_ap_2
-
- mov r8d,dword ptr 2[rbp]
-no_fast_ap2:
- call r8
- mov rbp,qword ptr [rcx]
- mov rdx,rcx
- mov rcx,qword ptr -8[rsi]
- sub rsi,8
- mov r8d,dword ptr 2[rbp]
- jmp r8
-
-
-add_empty_node_2:
- sub r15,3
- jb add_empty_node_2_gc
-add_empty_node_2_gc_:
- mov qword ptr [rdi],offset __cycle__in__spine
- mov r8,rdx
- mov rdx,rcx
- mov rcx,rdi
- add rdi,24
- ret
-add_empty_node_2_gc:
- call collect_2
- jmp add_empty_node_2_gc_
-
-add_empty_node_3:
- sub r15,3
- jb add_empty_node_3_gc
-add_empty_node_3_gc_:
- mov qword ptr [rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_3_gc:
- call collect_3
- jmp add_empty_node_3_gc_
-
-add_empty_node_4:
- sub r15,3
- jb add_empty_node_4_gc
-add_empty_node_4_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov qword ptr -8[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_4_gc:
- call collect_3
- jmp add_empty_node_4_gc_
-
-add_empty_node_5:
- sub r15,3
- jb add_empty_node_5_gc
-add_empty_node_5_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov qword ptr -16[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_5_gc:
- call collect_3
- jmp add_empty_node_5_gc_
-
-add_empty_node_6:
- sub r15,3
- jb add_empty_node_6_gc
-add_empty_node_6_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov qword ptr -24[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_6_gc:
- call collect_3
- jmp add_empty_node_6_gc_
-
-add_empty_node_7:
- sub r15,3
- jb add_empty_node_7_gc
-add_empty_node_7_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov rbp,qword ptr -32[rsi]
- mov qword ptr -24[rsi],rbp
- mov qword ptr -32[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_7_gc:
- call collect_3
- jmp add_empty_node_7_gc_
-
-add_empty_node_8:
- sub r15,3
- jb add_empty_node_8_gc
-add_empty_node_8_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov rbp,qword ptr -32[rsi]
- mov qword ptr -24[rsi],rbp
- mov rbp,qword ptr -40[rsi]
- mov qword ptr -32[rsi],rbp
- mov qword ptr -40[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_8_gc:
- call collect_3
- jmp add_empty_node_8_gc_
-
-add_empty_node_9:
- sub r15,3
- jb add_empty_node_9_gc
-add_empty_node_9_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov rbp,qword ptr -32[rsi]
- mov qword ptr -24[rsi],rbp
- mov rbp,qword ptr -40[rsi]
- mov qword ptr -32[rsi],rbp
- mov rbp,qword ptr -48[rsi]
- mov qword ptr -40[rsi],rbp
- mov qword ptr -48[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_9_gc:
- call collect_3
- jmp add_empty_node_9_gc_
-
-add_empty_node_10:
- sub r15,3
- jb add_empty_node_10_gc
-add_empty_node_10_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov rbp,qword ptr -32[rsi]
- mov qword ptr -24[rsi],rbp
- mov rbp,qword ptr -40[rsi]
- mov qword ptr -32[rsi],rbp
- mov rbp,qword ptr -48[rsi]
- mov qword ptr -40[rsi],rbp
- mov rbp,qword ptr -56[rsi]
- mov qword ptr -48[rsi],rbp
- mov qword ptr -56[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_10_gc:
- call collect_3
- jmp add_empty_node_10_gc_
-
-add_empty_node_11:
- sub r15,3
- jb add_empty_node_11_gc
-add_empty_node_11_gc_:
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
- mov rbp,qword ptr -32[rsi]
- mov qword ptr -24[rsi],rbp
- mov rbp,qword ptr -40[rsi]
- mov qword ptr -32[rsi],rbp
- mov rbp,qword ptr -48[rsi]
- mov qword ptr -40[rsi],rbp
- mov rbp,qword ptr -56[rsi]
- mov qword ptr -48[rsi],rbp
- mov rbp,qword ptr -64[rsi]
- mov qword ptr -56[rsi],rbp
- mov qword ptr -64[rsi],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_11_gc:
- call collect_3
- jmp add_empty_node_11_gc_
-
-add_empty_node_32:
- mov rbx,7
- jmp add_empty_node_12_
-add_empty_node_28:
- mov rbx,6
- jmp add_empty_node_12_
-add_empty_node_24:
- mov rbx,5
- jmp add_empty_node_12_
-add_empty_node_20:
- mov rbx,4
- jmp add_empty_node_12_
-add_empty_node_16:
- mov rbx,3
- jmp add_empty_node_12_
-add_empty_node_12:
- mov rbx,2
-add_empty_node_12_:
- sub r15,3
- jb add_empty_node_12_gc
-add_empty_node_12_gc_:
- mov rax,rsi
-add_empty_node_12_lp:
- mov rbp,qword ptr -8[rax]
- mov qword ptr [rax],rbp
- mov rbp,qword ptr -16[rax]
- mov qword ptr -8[rax],rbp
- mov rbp,qword ptr -24[rax]
- mov qword ptr -16[rax],rbp
- mov rbp,qword ptr -32[rax]
- mov qword ptr -24[rax],rbp
- sub rax,32
- sub rbx,1
- jne add_empty_node_12_lp
- mov qword ptr [rax],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_12_gc:
- call collect_3
- jmp add_empty_node_12_gc_
-
-add_empty_node_29:
- mov rbx,6
- jmp add_empty_node_13_
-add_empty_node_25:
- mov rbx,5
- jmp add_empty_node_13_
-add_empty_node_21:
- mov rbx,4
- jmp add_empty_node_13_
-add_empty_node_17:
- mov rbx,3
- jmp add_empty_node_13_
-add_empty_node_13:
- mov rbx,2
-add_empty_node_13_:
- sub r15,3
- jb add_empty_node_13_gc
-add_empty_node_13_gc_:
- mov rax,rsi
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
-add_empty_node_13_lp:
- mov rbp,qword ptr -16[rax]
- mov qword ptr -8[rax],rbp
- mov rbp,qword ptr -24[rax]
- mov qword ptr -16[rax],rbp
- mov rbp,qword ptr -32[rax]
- mov qword ptr -24[rax],rbp
- mov rbp,qword ptr -40[rax]
- mov qword ptr -32[rax],rbp
- sub rax,32
- sub rbx,1
- jne add_empty_node_13_lp
- mov qword ptr -8[rax],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_13_gc:
- call collect_3
- jmp add_empty_node_13_gc_
-
-add_empty_node_30:
- mov rbx,6
- jmp add_empty_node_14_
-add_empty_node_26:
- mov rbx,5
- jmp add_empty_node_14_
-add_empty_node_22:
- mov rbx,4
- jmp add_empty_node_14_
-add_empty_node_18:
- mov rbx,3
- jmp add_empty_node_14_
-add_empty_node_14:
- mov rbx,2
-add_empty_node_14_:
- sub r15,3
- jb add_empty_node_14_gc
-add_empty_node_14_gc_:
- mov rax,rsi
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rsi,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
-add_empty_node_14_lp:
- mov rbp,qword ptr -24[rax]
- mov qword ptr -16[rax],rbp
- mov rbp,qword ptr -32[rax]
- mov qword ptr -24[rax],rbp
- mov rbp,qword ptr -40[rax]
- mov qword ptr -32[rax],rbp
- mov rbp,qword ptr -48[rax]
- mov qword ptr -40[rax],rbp
- sub rax,32
- sub rbx,1
- jne add_empty_node_14_lp
- mov qword ptr -16[rax],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_14_gc:
- call collect_3
- jmp add_empty_node_14_gc_
-
-add_empty_node_31:
- mov rbx,6
- jmp add_empty_node_15_
-add_empty_node_27:
- mov rbx,5
- jmp add_empty_node_15_
-add_empty_node_23:
- mov rbx,4
- jmp add_empty_node_15_
-add_empty_node_19:
- mov rbx,3
- jmp add_empty_node_15_
-add_empty_node_15:
- mov rbx,2
-add_empty_node_15_:
- sub r15,3
- jb add_empty_node_15_gc
-add_empty_node_15_gc_:
- mov rax,rbp
- mov rbp,qword ptr -8[rsi]
- mov qword ptr [rsi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr -8[rsi],rbp
- mov rbp,qword ptr -24[rsi]
- mov qword ptr -16[rsi],rbp
-add_empty_node_15_lp:
- mov rbp,qword ptr -32[rax]
- mov qword ptr -24[rax],rbp
- mov rbp,qword ptr -40[rax]
- mov qword ptr -32[rax],rbp
- mov rbp,qword ptr -48[rax]
- mov qword ptr -40[rax],rbp
- mov rbp,qword ptr -56[rax]
- mov qword ptr -48[rax],rbp
- sub rax,32
- sub rbx,1
- jne add_empty_node_15_lp
- mov qword ptr -24[rax],rdi
- mov qword ptr [rdi],offset __cycle__in__spine
- add rsi,8
- add rdi,24
- ret
-add_empty_node_15_gc:
- call collect_3
- jmp add_empty_node_15_gc_
-
-
-yet_args_needed_0:
- sub r15,2
- jb yet_args_needed_0_gc
-yet_args_needed_0_gc_r:
- mov qword ptr 8[rdi],rcx
- mov rax,qword ptr [rdx]
- mov rcx,rdi
- add rax,8
- mov qword ptr [rdi],rax
- add rdi,16
- ret
-
-yet_args_needed_0_gc:
- call collect_2
- jmp yet_args_needed_0_gc_r
-
-
- align (4)
- sub r15,3
- jae short build_node_2_gc_r
- jmp short build_node_2_gc
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_1:
- sub r15,3
- jb yet_args_needed_1_gc
-yet_args_needed_1_gc_r:
- mov qword ptr 16[rdi],rcx
- mov rax,qword ptr [rdx]
- mov rcx,rdi
- add rax,8
- mov qword ptr [rdi],rax
- mov rbx,qword ptr 8[rdx]
- mov qword ptr 8[rdi],rbx
- add rdi,24
- ret
-
-yet_args_needed_1_gc:
- call collect_2
- jmp yet_args_needed_1_gc_r
-
-build_node_2_gc_r:
- mov qword ptr [rdi],rbx
- mov qword ptr 8[rdi],rdx
- mov qword ptr 16[rdi],rcx
- mov rcx,rdi
- add rdi,24
- ret
-
-build_node_2_gc:
- call collect_2
- jmp build_node_2_gc_r
-
-
- align (4)
- sub r15,5
- jae short build_node_3_gc_r
- jmp short build_node_3_gc
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_2:
- sub r15,5
- jb gc_22
-gc_r_22:
- mov rax,qword ptr [rdx]
- mov qword ptr 8[rdi],rcx
- add rax,8
- mov d2,qword ptr 8[rdx]
- mov qword ptr 16[rdi],rax
- lea rcx,16[rdi]
- mov rbp,qword ptr 16[rdx]
- mov qword ptr 24[rdi],d2
- mov qword ptr [rdi],rbp
- mov qword ptr 32[rdi],rdi
- add rdi,40
- ret
-
-gc_22: call collect_2
- jmp gc_r_22
-
-build_node_3_gc_r:
- mov qword ptr [rdi],rbx
- lea rbp,24[rdi]
- mov qword ptr 8[rdi],r8
- mov qword ptr 16[rdi],rbp
- mov qword ptr 24[rdi],rdx
- mov qword ptr 32[rdi],rcx
- mov rcx,rdi
- add rdi,40
- ret
-
-build_node_3_gc:
- call collect_2
- jmp build_node_3_gc_r
-
-
- align (4)
- sub r15,6
- jae short build_node_4_gc_r
- jmp short build_node_4_gc
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_3:
- sub r15,6
- jb gc_23
-gc_r_23:
- mov rax,qword ptr [rdx]
- mov qword ptr 16[rdi],rcx
- add rax,8
- mov d2,qword ptr 8[rdx]
- mov qword ptr 24[rdi],rax
- mov rdx,qword ptr 16[rdx]
- mov qword ptr 32[rdi],d2
- mov rbp,qword ptr [rdx]
- mov qword ptr 40[rdi],rdi
- mov qword ptr [rdi],rbp
- mov rbp,qword ptr 8[rdx]
- lea rcx,24[rdi]
- mov qword ptr 8[rdi],rbp
- add rdi,48
- ret
-
-gc_23: call collect_2
- jmp gc_r_23
-
-build_node_4_gc_r:
- mov qword ptr [rdi],rbx
- lea rbp,24[rdi]
- mov qword ptr 8[rdi],r8
- mov qword ptr 16[rdi],rbp
- mov qword ptr 24[rdi],rdx
- mov qword ptr 32[rdi],rcx
- mov rcx,rdi
- mov rbp,qword ptr -8[rsi]
- mov qword ptr 40[rdi],rbp
- sub rsi,8
- add rdi,48
- ret
-
-build_node_4_gc:
- call collect_2
- jmp build_node_4_gc_r
-
-
- align (4)
- sub r15,7
- jae short build_node_5_gc_r
- jmp build_node_5_gc
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_4:
- sub r15,7
- jb gc_24
-gc_r_24:
- mov rax,qword ptr [rdx]
- mov qword ptr 24[rdi],rcx
- add rax,8
- mov d2,qword ptr 8[rdx]
- mov qword ptr 32[rdi],rax
- mov rdx,qword ptr 16[rdx]
- mov qword ptr 40[rdi],d2
- mov rbp,qword ptr [rdx]
- mov 48[rdi],rdi
- mov qword ptr [rdi],rbp
- mov rbp,qword ptr 8[rdx]
- lea rcx,32[rdi]
- mov qword ptr 8[rdi],rbp
- mov rbp,qword ptr 16[rdx]
- mov qword ptr 16[rdi],rbp
- add rdi,56
- ret
-
-gc_24: call collect_2
- jmp gc_r_24
-
-build_node_5_gc_r:
- mov qword ptr [rdi],rbx
- lea rbp,24[rdi]
- mov qword ptr 8[rdi],r8
- mov qword ptr 16[rdi],rbp
- mov qword ptr 24[rdi],rdx
- mov qword ptr 32[rdi],rcx
- mov rcx,rdi
- mov rbp,qword ptr -8[rsi]
- mov qword ptr 40[rdi],rbp
- mov rbp,qword ptr -16[rsi]
- mov qword ptr 48[rdi],rbp
- sub rsi,16
- add rdi,56
- ret
-
-build_node_5_gc:
- call collect_2
- jmp build_node_5_gc_r
-
-
- align (4)
- mov eax,8
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_5:
- mov rbx,qword ptr [rdx]
- mov rax,8
- jmp yet_args_needed_
-
-
- align (4)
- mov eax,9
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_6:
- mov rbx,qword ptr [rdx]
- mov rax,9
- jmp yet_args_needed_
-
- align (4)
- mov eax,10
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_7:
- mov rbx,qword ptr [rdx]
- mov rax,10
- jmp yet_args_needed_
-
- align (4)
- mov eax,11
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_8:
- mov rbx,qword ptr [rdx]
- mov rax,11
- jmp yet_args_needed_
-
- align (4)
- mov eax,12
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_9:
- mov rbx,qword ptr [rdx]
- mov rax,12
- jmp yet_args_needed_
-
- align (4)
- mov eax,13
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_10:
- mov rbx,qword ptr [rdx]
- mov rax,13
- jmp yet_args_needed_
-
- align (4)
- mov eax,14
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_11:
- mov rbx,qword ptr [rdx]
- mov rax,14
- jmp yet_args_needed_
-
- align (4)
- mov eax,15
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_12:
- mov rbx,qword ptr [rdx]
- mov rax,15
- jmp yet_args_needed_
-
- align (4)
- mov eax,16
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_13:
- mov rbx,qword ptr [rdx]
- mov rax,16
- jmp yet_args_needed_
-
- align (4)
- mov eax,17
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_14:
- mov rbx,qword ptr [rdx]
- mov rax,17
- jmp yet_args_needed_
-
- align (4)
- mov eax,18
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_15:
- mov rbx,qword ptr [rdx]
- mov rax,18
- jmp yet_args_needed_
-
- align (4)
- mov eax,19
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_16:
- mov rbx,qword ptr [rdx]
- mov rax,19
- jmp yet_args_needed_
-
- align (4)
- mov eax,20
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_17:
- mov rbx,qword ptr [rdx]
- mov rax,20
- jmp yet_args_needed_
-
- align (4)
- mov eax,21
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_18:
- mov rbx,qword ptr [rdx]
- mov rax,21
- jmp yet_args_needed_
-
- align (4)
- mov eax,22
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_19:
- mov rbx,qword ptr [rdx]
- mov rax,22
- jmp yet_args_needed_
-
- align (4)
- mov eax,23
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_20:
- mov rbx,qword ptr [rdx]
- mov rax,23
- jmp yet_args_needed_
-
- align (4)
- mov eax,24
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_21:
- mov rbx,qword ptr [rdx]
- mov rax,24
- jmp yet_args_needed_
-
- align (4)
- mov eax,25
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_22:
- mov rbx,qword ptr [rdx]
- mov rax,25
- jmp yet_args_needed_
-
- align (4)
- mov eax,26
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_23:
- mov rbx,qword ptr [rdx]
- mov rax,26
- jmp yet_args_needed_
-
- align (4)
- mov eax,27
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_24:
- mov rbx,qword ptr [rdx]
- mov rax,27
- jmp yet_args_needed_
-
- align (4)
- mov eax,28
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_25:
- mov rbx,qword ptr [rdx]
- mov rax,28
- jmp yet_args_needed_
-
- align (4)
- mov eax,29
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_26:
- mov rbx,qword ptr [rdx]
- mov rax,29
- jmp yet_args_needed_
-
- align (4)
- mov eax,30
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_27:
- mov rbx,qword ptr [rdx]
- mov rax,30
- jmp yet_args_needed_
-
- align (4)
- mov eax,31
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_28:
- mov rbx,qword ptr [rdx]
- mov rax,31
- jmp yet_args_needed_
-
- align (4)
- mov eax,32
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_29:
- mov rbx,qword ptr [rdx]
- mov rax,32
- jmp yet_args_needed_
-
- align (4)
- mov eax,33
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_30:
- mov rbx,qword ptr [rdx]
- mov rax,33
- jmp yet_args_needed_
-
- align (4)
- mov eax,34
- jmp build_node_
- nop
- nop
- align (4)
- ifdef PROFILE
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- nop
- endif
-yet_args_needed_31:
- mov rbx,qword ptr [rdx]
- mov rax,34
- jmp yet_args_needed_
-
-yet_args_needed:
- mov rbx,qword ptr [rdx]
- movzx rax,word ptr -2[rbx]
- add rax,3
-yet_args_needed_:
- sub r15,rax
- jb yet_args_needed_gc
-yet_args_needed_gc_r:
- mov d3,qword ptr 8[rdx]
- sub rax,3+1+4
- mov rdx,qword ptr 16[rdx]
- mov d2,rdi
- mov rbp,qword ptr [rdx]
- mov qword ptr [rdi],rbp
- mov rbp,qword ptr 8[rdx]
- mov qword ptr 8[rdi],rbp
- mov rbp,qword ptr 16[rdx]
- mov qword ptr 16[rdi],rbp
- add rdx,24
- add rdi,24
-
-yet_args_needed_cp_a:
- mov rbp,qword ptr [rdx]
- add rdx,8
- mov qword ptr [rdi],rbp
- add rdi,8
- sub rax,1
- jge yet_args_needed_cp_a
-
- mov qword ptr [rdi],rcx
- add rbx,8
- mov qword ptr 8[rdi],rbx
- lea rcx,8[rdi]
- mov qword ptr 16[rdi],d3
- mov qword ptr 24[rdi],d2
- add rdi,32
- ret
-
-yet_args_needed_gc:
- call collect_2
- jmp yet_args_needed_gc_r
-
-build_node_:
- sub r15,rax
- jb build_node_gc
-build_node_gc_r:
- mov qword ptr [rdi],rbx
- lea rbp,24[rdi]
- mov qword ptr 8[rdi],r8
- mov qword ptr 16[rdi],rbp
- mov qword ptr 24[rdi],rdx
- mov qword ptr 32[rdi],rcx
- mov rcx,rdi
- mov r8,qword ptr -8[rsi]
- mov qword ptr 40[rdi],r8
- mov r8,qword ptr -16[rsi]
- sub rsi,16
- mov qword ptr 48[rdi],r8
- add rdi,56
-
- sub rax,5+2
-build_node_cp_a:
- mov r8,qword ptr -8[rsi]
- sub rsi,8
- mov qword ptr [rdi],r8
- add rdi,8
- sub rax,1
- jne build_node_cp_a
-
- ret
-
-build_node_gc:
- call collect_3
- jmp build_node_gc_r
-
-_TEXT ends
-
- ifndef NEW_DESCRIPTORS
- end
- endif
+
+
+ d2 equ r10
+ d3 equ r11
+
+ ifndef NEW_DESCRIPTORS
+ extern __cycle__in__spine:near
+ extern collect_2:near
+ endif
+
+_TEXT segment para 'CODE'
+_TEXT ends
+_DATA segment para 'DATA'
+_DATA ends
+
+ _TEXT segment
+
+ public ap_2
+ public ap_3
+ public ap_4
+ public ap_5
+ public ap_6
+ public ap_7
+ public ap_8
+ public ap_9
+ public ap_10
+ public ap_11
+ public ap_12
+ public ap_13
+ public ap_14
+ public ap_15
+ public ap_16
+ public ap_17
+ public ap_18
+ public ap_19
+ public ap_20
+ public ap_21
+ public ap_22
+ public ap_23
+ public ap_24
+ public ap_25
+ public ap_26
+ public ap_27
+ public ap_28
+ public ap_29
+ public ap_30
+ public ap_31
+ public ap_32
+
+ public add_empty_node_2
+ public add_empty_node_3
+ public add_empty_node_4
+ public add_empty_node_5
+ public add_empty_node_6
+ public add_empty_node_7
+ public add_empty_node_8
+ public add_empty_node_9
+ public add_empty_node_10
+ public add_empty_node_11
+ public add_empty_node_12
+ public add_empty_node_13
+ public add_empty_node_14
+ public add_empty_node_15
+ public add_empty_node_16
+ public add_empty_node_17
+ public add_empty_node_18
+ public add_empty_node_19
+ public add_empty_node_20
+ public add_empty_node_21
+ public add_empty_node_22
+ public add_empty_node_23
+ public add_empty_node_24
+ public add_empty_node_25
+ public add_empty_node_26
+ public add_empty_node_27
+ public add_empty_node_28
+ public add_empty_node_29
+ public add_empty_node_30
+ public add_empty_node_31
+ public add_empty_node_32
+
+ public yet_args_needed_5
+ public yet_args_needed_6
+ public yet_args_needed_7
+ public yet_args_needed_8
+ public yet_args_needed_9
+ public yet_args_needed_10
+ public yet_args_needed_11
+ public yet_args_needed_12
+ public yet_args_needed_13
+ public yet_args_needed_14
+ public yet_args_needed_15
+ public yet_args_needed_16
+ public yet_args_needed_17
+ public yet_args_needed_18
+ public yet_args_needed_19
+ public yet_args_needed_20
+ public yet_args_needed_21
+ public yet_args_needed_22
+ public yet_args_needed_23
+ public yet_args_needed_24
+ public yet_args_needed_25
+ public yet_args_needed_26
+ public yet_args_needed_27
+ public yet_args_needed_28
+ public yet_args_needed_29
+ public yet_args_needed_30
+ public yet_args_needed_31
+
+ap_32:
+ mov rbp,qword ptr [r8]
+ mov rbx,32*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap32
+
+ap_31:
+ mov rbp,qword ptr [r8]
+ mov rbx,31*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap31
+
+ap_30:
+ mov rbp,qword ptr [r8]
+ mov rbx,30*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap30
+
+ap_29:
+ mov rbp,qword ptr [r8]
+ mov rbx,29*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap29
+
+ap_28:
+ mov rbp,qword ptr [r8]
+ mov rbx,28*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap28
+
+ap_27:
+ mov rbp,qword ptr [r8]
+ mov rbx,27*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap27
+
+ap_26:
+ mov rbp,qword ptr [r8]
+ mov rbx,26*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap26
+
+ap_25:
+ mov rbp,qword ptr [r8]
+ mov rbx,25*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap25
+
+ap_24:
+ mov rbp,qword ptr [r8]
+ mov rbx,24*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap24
+
+ap_23:
+ mov rbp,qword ptr [r8]
+ mov rbx,23*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap23
+
+ap_22:
+ mov rbp,qword ptr [r8]
+ mov rbx,22*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap22
+
+ap_21:
+ mov rbp,qword ptr [r8]
+ mov rbx,21*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap21
+
+ap_20:
+ mov rbp,qword ptr [r8]
+ mov rbx,20*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap20
+
+ap_19:
+ mov rbp,qword ptr [r8]
+ mov rbx,19*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap19
+
+ap_18:
+ mov rbp,qword ptr [r8]
+ mov rbx,18*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap18
+
+ap_17:
+ mov rbp,qword ptr [r8]
+ mov rbx,17*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap17
+
+ap_16:
+ mov rbp,qword ptr [r8]
+ mov rbx,16*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap16
+
+ap_15:
+ mov rbp,qword ptr [r8]
+ mov rbx,15*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap15
+
+ap_14:
+ mov rbp,qword ptr [r8]
+ mov rbx,14*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap14
+
+ap_13:
+ mov rbp,qword ptr [r8]
+ mov rbx,13*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap13
+
+ap_12:
+ mov rbp,qword ptr [r8]
+ mov rbx,12*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap12
+
+ap_11:
+ mov rbp,qword ptr [r8]
+ mov rbx,11*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap11
+
+ap_10:
+ mov rbp,qword ptr [r8]
+ mov rbx,10*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap10
+
+ap_9:
+ mov rbp,qword ptr [r8]
+ mov rbx,9*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap9
+
+ap_8:
+ mov rbp,qword ptr [r8]
+ mov rbx,8*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap8
+
+ap_7:
+ mov rbp,qword ptr [r8]
+ mov rbx,7*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap7
+
+ap_6:
+ mov rbp,qword ptr [r8]
+ mov rbx,6*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap6
+
+ap_5:
+ mov rbp,qword ptr [r8]
+ mov rbx,5*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap5
+
+ap_4:
+ mov rbp,qword ptr [r8]
+ mov rbx,4*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap4
+
+ap_3:
+ mov rbp,qword ptr [r8]
+ mov rbx,3*8
+ cmp word ptr [rbp],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap3
+
+ap_2:
+ mov rbp,qword ptr [r8]
+ mov rbx,2*8
+ cmp word ptr [rbp],bx
+ jne no_fast_ap2_
+
+fast_ap_2_2_:
+ movzx rax,word ptr -2[rbp]
+ add rbx,rbp
+ mov ebp,dword ptr -6[rbx]
+ ifdef PROFILE
+ sub rbp,24
+ else
+ sub rbp,12
+ endif
+ cmp rax,1
+ jb repl_args_0_2
+ je repl_args_1
+
+ cmp rax,3
+ jb repl_args_2
+
+ mov qword ptr [rsi],rcx
+ mov qword ptr 8[rsi],rdx
+ lea rsi,16[rsi]
+ mov rdx,qword ptr 16[r8]
+
+ jmp fast_ap_
+
+no_fast_ap2_:
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8d,dword ptr 2[rbp]
+ add rsi,8
+ jmp no_fast_ap2
+
+fast_ap_2_2:
+ mov r8,rdx
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+ jmp fast_ap_2_2_
+
+fast_ap_2:
+ mov r8,rdx
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+fast_ap:
+ movzx rax,word ptr -2[rbp]
+ add rbx,rbp
+ mov ebp,dword ptr -6[rbx]
+ ifdef PROFILE
+ sub rbp,24
+ else
+ sub rbp,12
+ endif
+ cmp rax,1
+ jb repl_args_0
+ je repl_args_1
+
+ cmp rax,3
+ jb repl_args_2
+
+ mov qword ptr [rsi],rcx
+ mov qword ptr 8[rsi],rdx
+ lea rsi,16[rsi]
+ mov rdx,qword ptr 16[r8]
+
+fast_ap_:
+ mov r8,qword ptr 8[r8]
+ je repl_args_3
+
+ cmp rax,5
+ jb repl_args_4
+ je repl_args_5
+
+ cmp rax,7
+ jb repl_args_6
+
+repl_args_7_:
+ mov rbx,qword ptr -16[rdx+rax*8]
+ mov qword ptr [rsi],rbx
+ sub rax,1
+ add rsi,8
+ cmp rax,6
+ jne repl_args_7_
+
+repl_args_6:
+ mov rax,qword ptr 32[rdx]
+ mov qword ptr [rsi],rax
+ mov rax,qword ptr 24[rdx]
+ mov qword ptr 8[rsi],rax
+ mov rax,qword ptr 16[rdx]
+ mov qword ptr 16[rsi],rax
+ mov rcx,qword ptr 8[rdx]
+ mov rdx,qword ptr [rdx]
+ add rsi,24
+ jmp rbp
+
+repl_args_0:
+ mov r8,rdx
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+repl_args_0_2:
+ jmp rbp
+
+repl_args_1:
+ mov r8,qword ptr 8[r8]
+ jmp rbp
+
+repl_args_2:
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ add rsi,8
+ mov rdx,qword ptr 16[r8]
+ mov r8,qword ptr 8[r8]
+ jmp rbp
+
+repl_args_3:
+ mov rcx,qword ptr 8[rdx]
+ mov rdx,qword ptr [rdx]
+ jmp rbp
+
+repl_args_4:
+ mov rax,qword ptr 16[rdx]
+ mov qword ptr [rsi],rax
+ mov rcx,qword ptr 8[rdx]
+ mov rdx,qword ptr [rdx]
+ add rsi,8
+ jmp rbp
+
+repl_args_5:
+ mov rax,qword ptr 24[rdx]
+ mov qword ptr [rsi],rax
+ mov rax,qword ptr 16[rdx]
+ mov qword ptr 8[rsi],rax
+ mov rcx,qword ptr 8[rdx]
+ mov rdx,qword ptr [rdx]
+ add rsi,16
+ jmp rbp
+
+
+no_fast_ap32:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,31*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap31:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,30*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap30:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,29*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap29:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,28*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap28:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,27*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap27:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,26*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap26:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,25*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap25:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,24*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap24:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,23*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap23:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,22*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap22:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,21*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap21:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,20*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap20:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,19*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap19:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,18*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap18:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,17*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap17:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,16*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap16:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,15*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap15:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,14*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap14:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,13*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap13:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,12*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap12:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,11*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap11:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,10*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap10:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,9*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap9:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,8*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap8:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,7*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap7:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,6*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap6:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,5*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap5:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,4*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap4:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,3*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap3:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+
+ mov rbx,2*8
+ cmp word ptr [rbp],bx
+ je fast_ap_2
+
+ mov r8d,dword ptr 2[rbp]
+no_fast_ap2:
+ call r8
+ mov rbp,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+ mov r8d,dword ptr 2[rbp]
+ jmp r8
+
+
+add_empty_node_2:
+ sub r15,3
+ jb add_empty_node_2_gc
+add_empty_node_2_gc_:
+ mov qword ptr [rdi],offset __cycle__in__spine
+ mov r8,rdx
+ mov rdx,rcx
+ mov rcx,rdi
+ add rdi,24
+ ret
+add_empty_node_2_gc:
+ call collect_2
+ jmp add_empty_node_2_gc_
+
+add_empty_node_3:
+ sub r15,3
+ jb add_empty_node_3_gc
+add_empty_node_3_gc_:
+ mov qword ptr [rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_3_gc:
+ call collect_3
+ jmp add_empty_node_3_gc_
+
+add_empty_node_4:
+ sub r15,3
+ jb add_empty_node_4_gc
+add_empty_node_4_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov qword ptr -8[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_4_gc:
+ call collect_3
+ jmp add_empty_node_4_gc_
+
+add_empty_node_5:
+ sub r15,3
+ jb add_empty_node_5_gc
+add_empty_node_5_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov qword ptr -16[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_5_gc:
+ call collect_3
+ jmp add_empty_node_5_gc_
+
+add_empty_node_6:
+ sub r15,3
+ jb add_empty_node_6_gc
+add_empty_node_6_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov qword ptr -24[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_6_gc:
+ call collect_3
+ jmp add_empty_node_6_gc_
+
+add_empty_node_7:
+ sub r15,3
+ jb add_empty_node_7_gc
+add_empty_node_7_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov rbp,qword ptr -32[rsi]
+ mov qword ptr -24[rsi],rbp
+ mov qword ptr -32[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_7_gc:
+ call collect_3
+ jmp add_empty_node_7_gc_
+
+add_empty_node_8:
+ sub r15,3
+ jb add_empty_node_8_gc
+add_empty_node_8_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov rbp,qword ptr -32[rsi]
+ mov qword ptr -24[rsi],rbp
+ mov rbp,qword ptr -40[rsi]
+ mov qword ptr -32[rsi],rbp
+ mov qword ptr -40[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_8_gc:
+ call collect_3
+ jmp add_empty_node_8_gc_
+
+add_empty_node_9:
+ sub r15,3
+ jb add_empty_node_9_gc
+add_empty_node_9_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov rbp,qword ptr -32[rsi]
+ mov qword ptr -24[rsi],rbp
+ mov rbp,qword ptr -40[rsi]
+ mov qword ptr -32[rsi],rbp
+ mov rbp,qword ptr -48[rsi]
+ mov qword ptr -40[rsi],rbp
+ mov qword ptr -48[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_9_gc:
+ call collect_3
+ jmp add_empty_node_9_gc_
+
+add_empty_node_10:
+ sub r15,3
+ jb add_empty_node_10_gc
+add_empty_node_10_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov rbp,qword ptr -32[rsi]
+ mov qword ptr -24[rsi],rbp
+ mov rbp,qword ptr -40[rsi]
+ mov qword ptr -32[rsi],rbp
+ mov rbp,qword ptr -48[rsi]
+ mov qword ptr -40[rsi],rbp
+ mov rbp,qword ptr -56[rsi]
+ mov qword ptr -48[rsi],rbp
+ mov qword ptr -56[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_10_gc:
+ call collect_3
+ jmp add_empty_node_10_gc_
+
+add_empty_node_11:
+ sub r15,3
+ jb add_empty_node_11_gc
+add_empty_node_11_gc_:
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+ mov rbp,qword ptr -32[rsi]
+ mov qword ptr -24[rsi],rbp
+ mov rbp,qword ptr -40[rsi]
+ mov qword ptr -32[rsi],rbp
+ mov rbp,qword ptr -48[rsi]
+ mov qword ptr -40[rsi],rbp
+ mov rbp,qword ptr -56[rsi]
+ mov qword ptr -48[rsi],rbp
+ mov rbp,qword ptr -64[rsi]
+ mov qword ptr -56[rsi],rbp
+ mov qword ptr -64[rsi],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_11_gc:
+ call collect_3
+ jmp add_empty_node_11_gc_
+
+add_empty_node_32:
+ mov rbx,7
+ jmp add_empty_node_12_
+add_empty_node_28:
+ mov rbx,6
+ jmp add_empty_node_12_
+add_empty_node_24:
+ mov rbx,5
+ jmp add_empty_node_12_
+add_empty_node_20:
+ mov rbx,4
+ jmp add_empty_node_12_
+add_empty_node_16:
+ mov rbx,3
+ jmp add_empty_node_12_
+add_empty_node_12:
+ mov rbx,2
+add_empty_node_12_:
+ sub r15,3
+ jb add_empty_node_12_gc
+add_empty_node_12_gc_:
+ mov rax,rsi
+add_empty_node_12_lp:
+ mov rbp,qword ptr -8[rax]
+ mov qword ptr [rax],rbp
+ mov rbp,qword ptr -16[rax]
+ mov qword ptr -8[rax],rbp
+ mov rbp,qword ptr -24[rax]
+ mov qword ptr -16[rax],rbp
+ mov rbp,qword ptr -32[rax]
+ mov qword ptr -24[rax],rbp
+ sub rax,32
+ sub rbx,1
+ jne add_empty_node_12_lp
+ mov qword ptr [rax],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_12_gc:
+ call collect_3
+ jmp add_empty_node_12_gc_
+
+add_empty_node_29:
+ mov rbx,6
+ jmp add_empty_node_13_
+add_empty_node_25:
+ mov rbx,5
+ jmp add_empty_node_13_
+add_empty_node_21:
+ mov rbx,4
+ jmp add_empty_node_13_
+add_empty_node_17:
+ mov rbx,3
+ jmp add_empty_node_13_
+add_empty_node_13:
+ mov rbx,2
+add_empty_node_13_:
+ sub r15,3
+ jb add_empty_node_13_gc
+add_empty_node_13_gc_:
+ mov rax,rsi
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+add_empty_node_13_lp:
+ mov rbp,qword ptr -16[rax]
+ mov qword ptr -8[rax],rbp
+ mov rbp,qword ptr -24[rax]
+ mov qword ptr -16[rax],rbp
+ mov rbp,qword ptr -32[rax]
+ mov qword ptr -24[rax],rbp
+ mov rbp,qword ptr -40[rax]
+ mov qword ptr -32[rax],rbp
+ sub rax,32
+ sub rbx,1
+ jne add_empty_node_13_lp
+ mov qword ptr -8[rax],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_13_gc:
+ call collect_3
+ jmp add_empty_node_13_gc_
+
+add_empty_node_30:
+ mov rbx,6
+ jmp add_empty_node_14_
+add_empty_node_26:
+ mov rbx,5
+ jmp add_empty_node_14_
+add_empty_node_22:
+ mov rbx,4
+ jmp add_empty_node_14_
+add_empty_node_18:
+ mov rbx,3
+ jmp add_empty_node_14_
+add_empty_node_14:
+ mov rbx,2
+add_empty_node_14_:
+ sub r15,3
+ jb add_empty_node_14_gc
+add_empty_node_14_gc_:
+ mov rax,rsi
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rsi,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+add_empty_node_14_lp:
+ mov rbp,qword ptr -24[rax]
+ mov qword ptr -16[rax],rbp
+ mov rbp,qword ptr -32[rax]
+ mov qword ptr -24[rax],rbp
+ mov rbp,qword ptr -40[rax]
+ mov qword ptr -32[rax],rbp
+ mov rbp,qword ptr -48[rax]
+ mov qword ptr -40[rax],rbp
+ sub rax,32
+ sub rbx,1
+ jne add_empty_node_14_lp
+ mov qword ptr -16[rax],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_14_gc:
+ call collect_3
+ jmp add_empty_node_14_gc_
+
+add_empty_node_31:
+ mov rbx,6
+ jmp add_empty_node_15_
+add_empty_node_27:
+ mov rbx,5
+ jmp add_empty_node_15_
+add_empty_node_23:
+ mov rbx,4
+ jmp add_empty_node_15_
+add_empty_node_19:
+ mov rbx,3
+ jmp add_empty_node_15_
+add_empty_node_15:
+ mov rbx,2
+add_empty_node_15_:
+ sub r15,3
+ jb add_empty_node_15_gc
+add_empty_node_15_gc_:
+ mov rax,rbp
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr [rsi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr -8[rsi],rbp
+ mov rbp,qword ptr -24[rsi]
+ mov qword ptr -16[rsi],rbp
+add_empty_node_15_lp:
+ mov rbp,qword ptr -32[rax]
+ mov qword ptr -24[rax],rbp
+ mov rbp,qword ptr -40[rax]
+ mov qword ptr -32[rax],rbp
+ mov rbp,qword ptr -48[rax]
+ mov qword ptr -40[rax],rbp
+ mov rbp,qword ptr -56[rax]
+ mov qword ptr -48[rax],rbp
+ sub rax,32
+ sub rbx,1
+ jne add_empty_node_15_lp
+ mov qword ptr -24[rax],rdi
+ mov qword ptr [rdi],offset __cycle__in__spine
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_15_gc:
+ call collect_3
+ jmp add_empty_node_15_gc_
+
+
+yet_args_needed_0:
+ sub r15,2
+ jb yet_args_needed_0_gc
+yet_args_needed_0_gc_r:
+ mov qword ptr 8[rdi],rcx
+ mov rax,qword ptr [rdx]
+ mov rcx,rdi
+ add rax,8
+ mov qword ptr [rdi],rax
+ add rdi,16
+ ret
+
+yet_args_needed_0_gc:
+ call collect_2
+ jmp yet_args_needed_0_gc_r
+
+
+ align (4)
+ sub r15,3
+ jae short build_node_2_gc_r
+ jmp short build_node_2_gc
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_1:
+ sub r15,3
+ jb yet_args_needed_1_gc
+yet_args_needed_1_gc_r:
+ mov qword ptr 16[rdi],rcx
+ mov rax,qword ptr [rdx]
+ mov rcx,rdi
+ add rax,8
+ mov qword ptr [rdi],rax
+ mov rbx,qword ptr 8[rdx]
+ mov qword ptr 8[rdi],rbx
+ add rdi,24
+ ret
+
+yet_args_needed_1_gc:
+ call collect_2
+ jmp yet_args_needed_1_gc_r
+
+build_node_2_gc_r:
+ mov qword ptr [rdi],rbx
+ mov qword ptr 8[rdi],rdx
+ mov qword ptr 16[rdi],rcx
+ mov rcx,rdi
+ add rdi,24
+ ret
+
+build_node_2_gc:
+ call collect_2
+ jmp build_node_2_gc_r
+
+
+ align (4)
+ sub r15,5
+ jae short build_node_3_gc_r
+ jmp short build_node_3_gc
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_2:
+ sub r15,5
+ jb gc_22
+gc_r_22:
+ mov rax,qword ptr [rdx]
+ mov qword ptr 8[rdi],rcx
+ add rax,8
+ mov d2,qword ptr 8[rdx]
+ mov qword ptr 16[rdi],rax
+ lea rcx,16[rdi]
+ mov rbp,qword ptr 16[rdx]
+ mov qword ptr 24[rdi],d2
+ mov qword ptr [rdi],rbp
+ mov qword ptr 32[rdi],rdi
+ add rdi,40
+ ret
+
+gc_22: call collect_2
+ jmp gc_r_22
+
+build_node_3_gc_r:
+ mov qword ptr [rdi],rbx
+ lea rbp,24[rdi]
+ mov qword ptr 8[rdi],r8
+ mov qword ptr 16[rdi],rbp
+ mov qword ptr 24[rdi],rdx
+ mov qword ptr 32[rdi],rcx
+ mov rcx,rdi
+ add rdi,40
+ ret
+
+build_node_3_gc:
+ call collect_2
+ jmp build_node_3_gc_r
+
+
+ align (4)
+ sub r15,6
+ jae short build_node_4_gc_r
+ jmp short build_node_4_gc
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_3:
+ sub r15,6
+ jb gc_23
+gc_r_23:
+ mov rax,qword ptr [rdx]
+ mov qword ptr 16[rdi],rcx
+ add rax,8
+ mov d2,qword ptr 8[rdx]
+ mov qword ptr 24[rdi],rax
+ mov rdx,qword ptr 16[rdx]
+ mov qword ptr 32[rdi],d2
+ mov rbp,qword ptr [rdx]
+ mov qword ptr 40[rdi],rdi
+ mov qword ptr [rdi],rbp
+ mov rbp,qword ptr 8[rdx]
+ lea rcx,24[rdi]
+ mov qword ptr 8[rdi],rbp
+ add rdi,48
+ ret
+
+gc_23: call collect_2
+ jmp gc_r_23
+
+build_node_4_gc_r:
+ mov qword ptr [rdi],rbx
+ lea rbp,24[rdi]
+ mov qword ptr 8[rdi],r8
+ mov qword ptr 16[rdi],rbp
+ mov qword ptr 24[rdi],rdx
+ mov qword ptr 32[rdi],rcx
+ mov rcx,rdi
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr 40[rdi],rbp
+ sub rsi,8
+ add rdi,48
+ ret
+
+build_node_4_gc:
+ call collect_2
+ jmp build_node_4_gc_r
+
+
+ align (4)
+ sub r15,7
+ jae short build_node_5_gc_r
+ jmp build_node_5_gc
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_4:
+ sub r15,7
+ jb gc_24
+gc_r_24:
+ mov rax,qword ptr [rdx]
+ mov qword ptr 24[rdi],rcx
+ add rax,8
+ mov d2,qword ptr 8[rdx]
+ mov qword ptr 32[rdi],rax
+ mov rdx,qword ptr 16[rdx]
+ mov qword ptr 40[rdi],d2
+ mov rbp,qword ptr [rdx]
+ mov 48[rdi],rdi
+ mov qword ptr [rdi],rbp
+ mov rbp,qword ptr 8[rdx]
+ lea rcx,32[rdi]
+ mov qword ptr 8[rdi],rbp
+ mov rbp,qword ptr 16[rdx]
+ mov qword ptr 16[rdi],rbp
+ add rdi,56
+ ret
+
+gc_24: call collect_2
+ jmp gc_r_24
+
+build_node_5_gc_r:
+ mov qword ptr [rdi],rbx
+ lea rbp,24[rdi]
+ mov qword ptr 8[rdi],r8
+ mov qword ptr 16[rdi],rbp
+ mov qword ptr 24[rdi],rdx
+ mov qword ptr 32[rdi],rcx
+ mov rcx,rdi
+ mov rbp,qword ptr -8[rsi]
+ mov qword ptr 40[rdi],rbp
+ mov rbp,qword ptr -16[rsi]
+ mov qword ptr 48[rdi],rbp
+ sub rsi,16
+ add rdi,56
+ ret
+
+build_node_5_gc:
+ call collect_2
+ jmp build_node_5_gc_r
+
+
+ align (4)
+ mov eax,8
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_5:
+ mov rbx,qword ptr [rdx]
+ mov rax,8
+ jmp yet_args_needed_
+
+
+ align (4)
+ mov eax,9
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_6:
+ mov rbx,qword ptr [rdx]
+ mov rax,9
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,10
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_7:
+ mov rbx,qword ptr [rdx]
+ mov rax,10
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,11
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_8:
+ mov rbx,qword ptr [rdx]
+ mov rax,11
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,12
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_9:
+ mov rbx,qword ptr [rdx]
+ mov rax,12
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,13
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_10:
+ mov rbx,qword ptr [rdx]
+ mov rax,13
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,14
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_11:
+ mov rbx,qword ptr [rdx]
+ mov rax,14
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,15
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_12:
+ mov rbx,qword ptr [rdx]
+ mov rax,15
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,16
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_13:
+ mov rbx,qword ptr [rdx]
+ mov rax,16
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,17
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_14:
+ mov rbx,qword ptr [rdx]
+ mov rax,17
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,18
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_15:
+ mov rbx,qword ptr [rdx]
+ mov rax,18
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,19
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_16:
+ mov rbx,qword ptr [rdx]
+ mov rax,19
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,20
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_17:
+ mov rbx,qword ptr [rdx]
+ mov rax,20
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,21
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_18:
+ mov rbx,qword ptr [rdx]
+ mov rax,21
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,22
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_19:
+ mov rbx,qword ptr [rdx]
+ mov rax,22
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,23
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_20:
+ mov rbx,qword ptr [rdx]
+ mov rax,23
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,24
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_21:
+ mov rbx,qword ptr [rdx]
+ mov rax,24
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,25
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_22:
+ mov rbx,qword ptr [rdx]
+ mov rax,25
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,26
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_23:
+ mov rbx,qword ptr [rdx]
+ mov rax,26
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,27
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_24:
+ mov rbx,qword ptr [rdx]
+ mov rax,27
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,28
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_25:
+ mov rbx,qword ptr [rdx]
+ mov rax,28
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,29
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_26:
+ mov rbx,qword ptr [rdx]
+ mov rax,29
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,30
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_27:
+ mov rbx,qword ptr [rdx]
+ mov rax,30
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,31
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_28:
+ mov rbx,qword ptr [rdx]
+ mov rax,31
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,32
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_29:
+ mov rbx,qword ptr [rdx]
+ mov rax,32
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,33
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_30:
+ mov rbx,qword ptr [rdx]
+ mov rax,33
+ jmp yet_args_needed_
+
+ align (4)
+ mov eax,34
+ jmp build_node_
+ nop
+ nop
+ align (4)
+ ifdef PROFILE
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ nop
+ endif
+yet_args_needed_31:
+ mov rbx,qword ptr [rdx]
+ mov rax,34
+ jmp yet_args_needed_
+
+yet_args_needed:
+ mov rbx,qword ptr [rdx]
+ movzx rax,word ptr -2[rbx]
+ add rax,3
+yet_args_needed_:
+ sub r15,rax
+ jb yet_args_needed_gc
+yet_args_needed_gc_r:
+ mov d3,qword ptr 8[rdx]
+ sub rax,3+1+4
+ mov rdx,qword ptr 16[rdx]
+ mov d2,rdi
+ mov rbp,qword ptr [rdx]
+ mov qword ptr [rdi],rbp
+ mov rbp,qword ptr 8[rdx]
+ mov qword ptr 8[rdi],rbp
+ mov rbp,qword ptr 16[rdx]
+ mov qword ptr 16[rdi],rbp
+ add rdx,24
+ add rdi,24
+
+yet_args_needed_cp_a:
+ mov rbp,qword ptr [rdx]
+ add rdx,8
+ mov qword ptr [rdi],rbp
+ add rdi,8
+ sub rax,1
+ jge yet_args_needed_cp_a
+
+ mov qword ptr [rdi],rcx
+ add rbx,8
+ mov qword ptr 8[rdi],rbx
+ lea rcx,8[rdi]
+ mov qword ptr 16[rdi],d3
+ mov qword ptr 24[rdi],d2
+ add rdi,32
+ ret
+
+yet_args_needed_gc:
+ call collect_2
+ jmp yet_args_needed_gc_r
+
+build_node_:
+ sub r15,rax
+ jb build_node_gc
+build_node_gc_r:
+ mov qword ptr [rdi],rbx
+ lea rbp,24[rdi]
+ mov qword ptr 8[rdi],r8
+ mov qword ptr 16[rdi],rbp
+ mov qword ptr 24[rdi],rdx
+ mov qword ptr 32[rdi],rcx
+ mov rcx,rdi
+ mov r8,qword ptr -8[rsi]
+ mov qword ptr 40[rdi],r8
+ mov r8,qword ptr -16[rsi]
+ sub rsi,16
+ mov qword ptr 48[rdi],r8
+ add rdi,56
+
+ sub rax,5+2
+build_node_cp_a:
+ mov r8,qword ptr -8[rsi]
+ sub rsi,8
+ mov qword ptr [rdi],r8
+ add rdi,8
+ sub rax,1
+ jne build_node_cp_a
+
+ ret
+
+build_node_gc:
+ call collect_3
+ jmp build_node_gc_r
+
+_TEXT ends
+
+ ifndef NEW_DESCRIPTORS
+ end
+ endif