diff options
Diffstat (limited to 'aap.s')
-rw-r--r-- | aap.s | 2410 |
1 files changed, 2410 insertions, 0 deletions
@@ -0,0 +1,2410 @@ + + .intel_syntax noprefix + +/* d0 = rax */ +/* d1 = rbx */ +/* d2 = r10 */ +/* d3 = r11 */ +/* d7 = r15 */ +/* a0 = rcx */ +/* a1 = rdx */ +/* a2 = r8 */ +/* a3 = r9 */ +/* a4 = rsi */ +/* a6 = rdi */ + +/* d0l = eax */ +/* a2l = r8d */ +/* a3l = r9d */ + +/* d1w = bx */ + +/* qw = qword ptr */ + + .ifndef NEW_DESCRIPTORS + .global __cycle__in__spine + .global collect_2 + .endif + + .text + + .global ap_2 + .global ap_3 + .global ap_4 + .global ap_5 + .global ap_6 + .global ap_7 + .global ap_8 + .global ap_9 + .global ap_10 + .global ap_11 + .global ap_12 + .global ap_13 + .global ap_14 + .global ap_15 + .global ap_16 + .global ap_17 + .global ap_18 + .global ap_19 + .global ap_20 + .global ap_21 + .global ap_22 + .global ap_23 + .global ap_24 + .global ap_25 + .global ap_26 + .global ap_27 + .global ap_28 + .global ap_29 + .global ap_30 + .global ap_31 + .global ap_32 + + .global add_empty_node_2 + .global add_empty_node_3 + .global add_empty_node_4 + .global add_empty_node_5 + .global add_empty_node_6 + .global add_empty_node_7 + .global add_empty_node_8 + .global add_empty_node_9 + .global add_empty_node_10 + .global add_empty_node_11 + .global add_empty_node_12 + .global add_empty_node_13 + .global add_empty_node_14 + .global add_empty_node_15 + .global add_empty_node_16 + .global add_empty_node_17 + .global add_empty_node_18 + .global add_empty_node_19 + .global add_empty_node_20 + .global add_empty_node_21 + .global add_empty_node_22 + .global add_empty_node_23 + .global add_empty_node_24 + .global add_empty_node_25 + .global add_empty_node_26 + .global add_empty_node_27 + .global add_empty_node_28 + .global add_empty_node_29 + .global add_empty_node_30 + .global add_empty_node_31 + .global add_empty_node_32 + + .global yet_args_needed_5 + .global yet_args_needed_6 + .global yet_args_needed_7 + .global yet_args_needed_8 + .global yet_args_needed_9 + .global yet_args_needed_10 + .global yet_args_needed_11 + .global yet_args_needed_12 + .global yet_args_needed_13 + .global yet_args_needed_14 + .global yet_args_needed_15 + .global yet_args_needed_16 + .global yet_args_needed_17 + .global yet_args_needed_18 + .global yet_args_needed_19 + .global yet_args_needed_20 + .global yet_args_needed_21 + .global yet_args_needed_22 + .global yet_args_needed_23 + .global yet_args_needed_24 + .global yet_args_needed_25 + .global yet_args_needed_26 + .global yet_args_needed_27 + .global yet_args_needed_28 + .global yet_args_needed_29 + .global yet_args_needed_30 + .global yet_args_needed_31 + +ap_32: + mov r9,qword ptr [r8] + mov rbx,32*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap32 + +ap_31: + mov r9,qword ptr [r8] + mov rbx,31*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap31 + +ap_30: + mov r9,qword ptr [r8] + mov rbx,30*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap30 + +ap_29: + mov r9,qword ptr [r8] + mov rbx,29*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap29 + +ap_28: + mov r9,qword ptr [r8] + mov rbx,28*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap28 + +ap_27: + mov r9,qword ptr [r8] + mov rbx,27*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap27 + +ap_26: + mov r9,qword ptr [r8] + mov rbx,26*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap26 + +ap_25: + mov r9,qword ptr [r8] + mov rbx,25*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap25 + +ap_24: + mov r9,qword ptr [r8] + mov rbx,24*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap24 + +ap_23: + mov r9,qword ptr [r8] + mov rbx,23*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap23 + +ap_22: + mov r9,qword ptr [r8] + mov rbx,22*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap22 + +ap_21: + mov r9,qword ptr [r8] + mov rbx,21*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap21 + +ap_20: + mov r9,qword ptr [r8] + mov rbx,20*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap20 + +ap_19: + mov r9,qword ptr [r8] + mov rbx,19*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap19 + +ap_18: + mov r9,qword ptr [r8] + mov rbx,18*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap18 + +ap_17: + mov r9,qword ptr [r8] + mov rbx,17*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap17 + +ap_16: + mov r9,qword ptr [r8] + mov rbx,16*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap16 + +ap_15: + mov r9,qword ptr [r8] + mov rbx,15*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap15 + +ap_14: + mov r9,qword ptr [r8] + mov rbx,14*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap14 + +ap_13: + mov r9,qword ptr [r8] + mov rbx,13*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap13 + +ap_12: + mov r9,qword ptr [r8] + mov rbx,12*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap12 + +ap_11: + mov r9,qword ptr [r8] + mov rbx,11*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap11 + +ap_10: + mov r9,qword ptr [r8] + mov rbx,10*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap10 + +ap_9: + mov r9,qword ptr [r8] + mov rbx,9*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap9 + +ap_8: + mov r9,qword ptr [r8] + mov rbx,8*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap8 + +ap_7: + mov r9,qword ptr [r8] + mov rbx,7*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap7 + +ap_6: + mov r9,qword ptr [r8] + mov rbx,6*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap6 + +ap_5: + mov r9,qword ptr [r8] + mov rbx,5*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap5 + +ap_4: + mov r9,qword ptr [r8] + mov rbx,4*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap4 + +ap_3: + mov r9,qword ptr [r8] + mov rbx,3*8 + cmp word ptr [r9],bx + je fast_ap + + mov qword ptr [rsi],rcx + mov rcx,rdx + mov rdx,r8 + mov r8d,dword ptr 2[r9] + add rsi,8 + jmp no_fast_ap3 + +ap_2: + mov r9,qword ptr [r8] + mov rbx,2*8 + cmp word ptr [r9],bx + jne no_fast_ap2_ + +fast_ap_2_2_: + movzx rax,word ptr -2[r9] + add rbx,r9 + mov r9d,dword ptr -6[rbx] +.ifdef PROFILE + sub r9,24 +.else + sub r9,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 + add rsi,16 + 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[r9] + 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[r9] + add rbx,r9 + mov r9d,dword ptr -6[rbx] +.ifdef PROFILE + sub r9,24 +.else + sub r9,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 + add rsi,16 + 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 rbp,qword ptr -16[rdx+rax*8] + mov qword ptr [rsi],rbp + 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 r9 + +repl_args_0: + mov r8,rdx + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 +repl_args_0_2: + jmp r9 + +repl_args_1: + mov r8,qword ptr 8[r8] + jmp r9 + +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 r9 + +repl_args_3: + mov rcx,qword ptr 8[rdx] + mov rdx,qword ptr [rdx] + jmp r9 + +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 r9 + +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 r9 + + +no_fast_ap32: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,31*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap31: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,30*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap30: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,29*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap29: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,28*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap28: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,27*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap27: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,26*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap26: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,25*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap25: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,24*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap24: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,23*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap23: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,22*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap22: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,21*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap21: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,20*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap20: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,19*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap19: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,18*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap18: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,17*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap17: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,16*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap16: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,15*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap15: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,14*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap14: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,13*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap13: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,12*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap12: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,11*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap11: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,10*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap10: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,9*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap9: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,8*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap8: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,7*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap7: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,6*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap6: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,5*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap5: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,4*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap4: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,3*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap3: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + + mov rbx,2*8 + cmp word ptr [r9],bx + je fast_ap_2 + + mov r8d,dword ptr 2[r9] +no_fast_ap2: + call r8 + mov r9,qword ptr [rcx] + mov rdx,rcx + mov rcx,qword ptr -8[rsi] + sub rsi,8 + mov r8d,dword ptr 2[r9] + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + mov r9,qword ptr -32[rsi] + mov qword ptr -24[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + mov r9,qword ptr -32[rsi] + mov qword ptr -24[rsi],r9 + mov r9,qword ptr -40[rsi] + mov qword ptr -32[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + mov r9,qword ptr -32[rsi] + mov qword ptr -24[rsi],r9 + mov r9,qword ptr -40[rsi] + mov qword ptr -32[rsi],r9 + mov r9,qword ptr -48[rsi] + mov qword ptr -40[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + mov r9,qword ptr -32[rsi] + mov qword ptr -24[rsi],r9 + mov r9,qword ptr -40[rsi] + mov qword ptr -32[rsi],r9 + mov r9,qword ptr -48[rsi] + mov qword ptr -40[rsi],r9 + mov r9,qword ptr -56[rsi] + mov qword ptr -48[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 + mov r9,qword ptr -32[rsi] + mov qword ptr -24[rsi],r9 + mov r9,qword ptr -40[rsi] + mov qword ptr -32[rsi],r9 + mov r9,qword ptr -48[rsi] + mov qword ptr -40[rsi],r9 + mov r9,qword ptr -56[rsi] + mov qword ptr -48[rsi],r9 + mov r9,qword ptr -64[rsi] + mov qword ptr -56[rsi],r9 + 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_2 + 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 r9,qword ptr -8[rax] + mov qword ptr [rax],r9 + mov r9,qword ptr -16[rax] + mov qword ptr -8[rax],r9 + mov r9,qword ptr -24[rax] + mov qword ptr -16[rax],r9 + mov r9,qword ptr -32[rax] + mov qword ptr -24[rax],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 +add_empty_node_13_lp: + mov r9,qword ptr -16[rax] + mov qword ptr -8[rax],r9 + mov r9,qword ptr -24[rax] + mov qword ptr -16[rax],r9 + mov r9,qword ptr -32[rax] + mov qword ptr -24[rax],r9 + mov r9,qword ptr -40[rax] + mov qword ptr -32[rax],r9 + 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_2 + 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 r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov rsi,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 +add_empty_node_14_lp: + mov r9,qword ptr -24[rax] + mov qword ptr -16[rax],r9 + mov r9,qword ptr -32[rax] + mov qword ptr -24[rax],r9 + mov r9,qword ptr -40[rax] + mov qword ptr -32[rax],r9 + mov r9,qword ptr -48[rax] + mov qword ptr -40[rax],r9 + 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_2 + 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,r9 + mov r9,qword ptr -8[rsi] + mov qword ptr [rsi],r9 + mov r9,qword ptr -16[rsi] + mov qword ptr -8[rsi],r9 + mov r9,qword ptr -24[rsi] + mov qword ptr -16[rsi],r9 +add_empty_node_15_lp: + mov r9,qword ptr -32[rax] + mov qword ptr -24[rax],r9 + mov r9,qword ptr -40[rax] + mov qword ptr -32[rax],r9 + mov r9,qword ptr -48[rax] + mov qword ptr -40[rax],r9 + mov r9,qword ptr -56[rax] + mov qword ptr -48[rax],r9 + 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_2 + 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 r10,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],r10 + 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 r10,qword ptr 8[rdx] + mov qword ptr 24[rdi],rax + mov rdx,qword ptr 16[rdx] + mov qword ptr 32[rdi],r10 + 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 r10,qword ptr 8[rdx] + mov qword ptr 32[rdi],rax + mov rdx,qword ptr 16[rdx] + mov qword ptr 40[rdi],r10 + 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 r11,qword ptr 8[rdx] + sub rax,3+1+4 + mov rdx,qword ptr 16[rdx] + mov r10,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],r11 + mov qword ptr 24[rdi],r10 + 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 + |