summaryrefslogtreecommitdiff
path: root/macho64/aap.s
diff options
context:
space:
mode:
authorJohn van Groningen2011-04-04 12:26:23 +0000
committerJohn van Groningen2011-04-04 12:26:23 +0000
commitefa180162c0186f3b1ce299c6ea3c821c71e40f0 (patch)
tree6a67db3981102c6080e6a9e0b3508b9d27fe572e /macho64/aap.s
parentadd directory for 64 bit Intel Mac OS X version (diff)
port to 64 bit Intel Mac OS X version
Diffstat (limited to 'macho64/aap.s')
-rw-r--r--macho64/aap.s2418
1 files changed, 2418 insertions, 0 deletions
diff --git a/macho64/aap.s b/macho64/aap.s
new file mode 100644
index 0000000..0db8c1c
--- /dev/null
+++ b/macho64/aap.s
@@ -0,0 +1,2418 @@
+
+ .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 */
+
+ .text
+
+ .globl ap_2
+ .globl ap_3
+ .globl ap_4
+ .globl ap_5
+ .globl ap_6
+ .globl ap_7
+ .globl ap_8
+ .globl ap_9
+ .globl ap_10
+ .globl ap_11
+ .globl ap_12
+ .globl ap_13
+ .globl ap_14
+ .globl ap_15
+ .globl ap_16
+ .globl ap_17
+ .globl ap_18
+ .globl ap_19
+ .globl ap_20
+ .globl ap_21
+ .globl ap_22
+ .globl ap_23
+ .globl ap_24
+ .globl ap_25
+ .globl ap_26
+ .globl ap_27
+ .globl ap_28
+ .globl ap_29
+ .globl ap_30
+ .globl ap_31
+ .globl ap_32
+
+ .globl add_empty_node_2
+ .globl add_empty_node_3
+ .globl add_empty_node_4
+ .globl add_empty_node_5
+ .globl add_empty_node_6
+ .globl add_empty_node_7
+ .globl add_empty_node_8
+ .globl add_empty_node_9
+ .globl add_empty_node_10
+ .globl add_empty_node_11
+ .globl add_empty_node_12
+ .globl add_empty_node_13
+ .globl add_empty_node_14
+ .globl add_empty_node_15
+ .globl add_empty_node_16
+ .globl add_empty_node_17
+ .globl add_empty_node_18
+ .globl add_empty_node_19
+ .globl add_empty_node_20
+ .globl add_empty_node_21
+ .globl add_empty_node_22
+ .globl add_empty_node_23
+ .globl add_empty_node_24
+ .globl add_empty_node_25
+ .globl add_empty_node_26
+ .globl add_empty_node_27
+ .globl add_empty_node_28
+ .globl add_empty_node_29
+ .globl add_empty_node_30
+ .globl add_empty_node_31
+ .globl add_empty_node_32
+
+ .globl yet_args_needed_5
+ .globl yet_args_needed_6
+ .globl yet_args_needed_7
+ .globl yet_args_needed_8
+ .globl yet_args_needed_9
+ .globl yet_args_needed_10
+ .globl yet_args_needed_11
+ .globl yet_args_needed_12
+ .globl yet_args_needed_13
+ .globl yet_args_needed_14
+ .globl yet_args_needed_15
+ .globl yet_args_needed_16
+ .globl yet_args_needed_17
+ .globl yet_args_needed_18
+ .globl yet_args_needed_19
+ .globl yet_args_needed_20
+ .globl yet_args_needed_21
+ .globl yet_args_needed_22
+ .globl yet_args_needed_23
+ .globl yet_args_needed_24
+ .globl yet_args_needed_25
+ .globl yet_args_needed_26
+ .globl yet_args_needed_27
+ .globl yet_args_needed_28
+ .globl yet_args_needed_29
+ .globl yet_args_needed_30
+ .globl yet_args_needed_31
+
+ap_32:
+ mov r9,qword ptr [r8]
+ mov rbx,32*16
+ cmp word ptr [r9],bx
+ je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap32
+
+ap_31:
+ mov r9,qword ptr [r8]
+ mov rbx,31*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap31
+
+ap_30:
+ mov r9,qword ptr [r8]
+ mov rbx,30*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap30
+
+ap_29:
+ mov r9,qword ptr [r8]
+ mov rbx,29*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap29
+
+ap_28:
+ mov r9,qword ptr [r8]
+ mov rbx,28*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap28
+
+ap_27:
+ mov r9,qword ptr [r8]
+ mov rbx,27*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap27
+
+ap_26:
+ mov r9,qword ptr [r8]
+ mov rbx,26*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap26
+
+ap_25:
+ mov r9,qword ptr [r8]
+ mov rbx,25*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap25
+
+ap_24:
+ mov r9,qword ptr [r8]
+ mov rbx,24*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap24
+
+ap_23:
+ mov r9,qword ptr [r8]
+ mov rbx,23*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap23
+
+ap_22:
+ mov r9,qword ptr [r8]
+ mov rbx,22*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap22
+
+ap_21:
+ mov r9,qword ptr [r8]
+ mov rbx,21*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap21
+
+ap_20:
+ mov r9,qword ptr [r8]
+ mov rbx,20*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap20
+
+ap_19:
+ mov r9,qword ptr [r8]
+ mov rbx,19*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap19
+
+ap_18:
+ mov r9,qword ptr [r8]
+ mov rbx,18*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap18
+
+ap_17:
+ mov r9,qword ptr [r8]
+ mov rbx,17*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap17
+
+ap_16:
+ mov r9,qword ptr [r8]
+ mov rbx,16*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap16
+
+ap_15:
+ mov r9,qword ptr [r8]
+ mov rbx,15*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap15
+
+ap_14:
+ mov r9,qword ptr [r8]
+ mov rbx,14*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap14
+
+ap_13:
+ mov r9,qword ptr [r8]
+ mov rbx,13*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap13
+
+ap_12:
+ mov r9,qword ptr [r8]
+ mov rbx,12*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap12
+
+ap_11:
+ mov r9,qword ptr [r8]
+ mov rbx,11*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap11
+
+ap_10:
+ mov r9,qword ptr [r8]
+ mov rbx,10*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap10
+
+ap_9:
+ mov r9,qword ptr [r8]
+ mov rbx,9*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap9
+
+ap_8:
+ mov r9,qword ptr [r8]
+ mov rbx,8*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap8
+
+ap_7:
+ mov r9,qword ptr [r8]
+ mov rbx,7*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap7
+
+ap_6:
+ mov r9,qword ptr [r8]
+ mov rbx,6*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap6
+
+ap_5:
+ mov r9,qword ptr [r8]
+ mov rbx,5*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap5
+
+ap_4:
+ mov r9,qword ptr [r8]
+ mov rbx,4*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap4
+
+ap_3:
+ mov r9,qword ptr [r8]
+ mov rbx,3*16
+ cmp word ptr [r9],bx
+ att_je fast_ap
+
+ mov qword ptr [rsi],rcx
+ mov rcx,rdx
+ mov rdx,r8
+ mov r8,qword ptr 6[r9]
+ add rsi,8
+ jmp no_fast_ap3
+
+ap_2:
+ mov r9,qword ptr [r8]
+ mov rbx,2*16
+ cmp word ptr [r9],bx
+ jne no_fast_ap2_
+
+fast_ap_2_2_:
+ movzx rax,word ptr -2[r9]
+ add rbx,r9
+ mov r9,qword ptr -10[rbx]
+ .if 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
+ 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 r8,qword ptr 6[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
+ att_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 r9,qword ptr -10[rbx]
+ .if PROFILE
+ sub r9,24
+ .else
+ sub r9,12
+ .endif
+ cmp rax,1
+ jb repl_args_0
+ att_je repl_args_1
+
+ cmp rax,3
+ att_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 rbp,qword ptr -16[rdx+rax*8]
+ mov qword ptr [rsi],rbp
+ sub rax,1
+ add rsi,8
+ cmp rax,6
+ att_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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[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*16
+ cmp word ptr [r9],bx
+ att_je fast_ap_2
+
+ mov r8,qword ptr 6[r9]
+no_fast_ap2:
+ call r8
+ mov r9,qword ptr [rcx]
+ mov rdx,rcx
+ mov rcx,qword ptr -8[rsi]
+ sub rsi,8
+ jmp qword ptr 6[r9]
+
+
+add_empty_node_2:
+ sub r15,3
+ jb add_empty_node_2_gc
+add_empty_node_2_gc_:
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ mov r8,rdx
+ mov rdx,rcx
+ mov rcx,rdi
+ add rdi,24
+ ret
+add_empty_node_2_gc:
+ att_call collect_2
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_3_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_4_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_5_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_6_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_7_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_8_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_9_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_10_gc:
+ att_call collect_3
+ att_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
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_11_gc:
+ att_call collect_3
+ att_jmp add_empty_node_11_gc_
+
+add_empty_node_32:
+ mov rbx,7
+ att_jmp add_empty_node_12_
+add_empty_node_28:
+ mov rbx,6
+ att_jmp add_empty_node_12_
+add_empty_node_24:
+ mov rbx,5
+ att_jmp add_empty_node_12_
+add_empty_node_20:
+ mov rbx,4
+ att_jmp add_empty_node_12_
+add_empty_node_16:
+ mov rbx,3
+ att_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
+ att_jne add_empty_node_12_lp
+ mov qword ptr [rax],rdi
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_12_gc:
+ att_call collect_3
+ att_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
+ att_jmp add_empty_node_13_
+add_empty_node_21:
+ mov rbx,4
+ att_jmp add_empty_node_13_
+add_empty_node_17:
+ mov rbx,3
+ att_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
+ att_jne add_empty_node_13_lp
+ mov qword ptr -8[rax],rdi
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_13_gc:
+ att_call collect_3
+ att_jmp add_empty_node_13_gc_
+
+add_empty_node_30:
+ mov rbx,6
+ att_jmp add_empty_node_14_
+add_empty_node_26:
+ mov rbx,5
+ att_jmp add_empty_node_14_
+add_empty_node_22:
+ mov rbx,4
+ att_jmp add_empty_node_14_
+add_empty_node_18:
+ mov rbx,3
+ att_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
+ att_jne add_empty_node_14_lp
+ mov qword ptr -16[rax],rdi
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_14_gc:
+ att_call collect_3
+ att_jmp add_empty_node_14_gc_
+
+add_empty_node_31:
+ mov rbx,6
+ att_jmp add_empty_node_15_
+add_empty_node_27:
+ mov rbx,5
+ att_jmp add_empty_node_15_
+add_empty_node_23:
+ mov rbx,4
+ att_jmp add_empty_node_15_
+add_empty_node_19:
+ mov rbx,3
+ att_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
+ att_jne add_empty_node_15_lp
+ mov qword ptr -24[rax],rdi
+ lea rbp,__cycle__in__spine[rip]
+ mov qword ptr [rdi],rbp
+ add rsi,8
+ add rdi,24
+ ret
+add_empty_node_15_gc:
+ att_call collect_3
+ att_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,16
+ mov qword ptr [rdi],rax
+ add rdi,16
+ ret
+
+yet_args_needed_0_gc:
+ att_call collect_2
+ att_jmp yet_args_needed_0_gc_r
+
+
+ .align 2
+ sub r15,3
+ jae short build_node_2_gc_r
+ jmp short build_node_2_gc
+ nop
+ .align 2
+ .if 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,16
+ 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:
+ att_call collect_2
+ att_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:
+ att_call collect_2
+ att_jmp build_node_2_gc_r
+
+
+ .align 2
+ sub r15,5
+ jae short build_node_3_gc_r
+ jmp short build_node_3_gc
+ nop
+ .align 2
+ .if 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,16
+ 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: att_call collect_2
+ att_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:
+ att_call collect_2
+ att_jmp build_node_3_gc_r
+
+
+ .align 2
+ sub r15,6
+ jae short build_node_4_gc_r
+ jmp short build_node_4_gc
+ nop
+ .align 2
+ .if 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,16
+ 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: att_call collect_2
+ att_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:
+ att_call collect_2
+ att_jmp build_node_4_gc_r
+
+
+ .align 2
+ sub r15,7
+ jae short build_node_5_gc_r
+ jmp build_node_5_gc
+ nop
+ .align 2
+ .if 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,16
+ 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: att_call collect_2
+ att_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:
+ att_call collect_2
+ att_jmp build_node_5_gc_r
+
+
+ .align 2
+ mov eax,8
+ jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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 2
+ mov eax,9
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,10
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,11
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,12
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,13
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,14
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+ .if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,15
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,16
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,17
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,18
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,19
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,20
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,21
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,22
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,23
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,24
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,25
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,26
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,27
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,28
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,29
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,30
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,31
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,32
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,33
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_jmp yet_args_needed_
+
+ .align 2
+ mov eax,34
+ att_jmp build_node_
+ nop
+ nop
+ .align 2
+.if 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
+ att_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
+ att_jge yet_args_needed_cp_a
+
+ mov qword ptr [rdi],rcx
+ add rbx,16
+ 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:
+ att_call collect_2
+ att_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
+ att_jne build_node_cp_a
+
+ ret
+
+build_node_gc:
+ att_call collect_3
+ att_jmp build_node_gc_r
+