summaryrefslogblamecommitdiff
path: root/aap.s
blob: 85aa3dab89b7ec9b36157dbac8550b1d56f1c5c3 (plain) (tree)
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955


























































































































                                  

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                         
                        
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                  
                                   
       



                                 

                        
                       
       




                                   

                                     
                                     
       












                                    
                           






                                    

                                  
                                   
       

















                                     

                                     
                                     
       












                                    
                           


















































































                                            

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                         
                        
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       





                                     

                        
                       
       

                                

                                  
                                   
       




                                     

                               
                                   
       




                                   


                                           
                                                         
       












                                    


                                           
                                                         
       


                      
                         







                                     


                                           
                                                         
       


                      
                         









                                      


                                           
                                                         
       


                      
                         











                                      


                                           
                                                         
       


                      
                         













                                      


                                           
                                                         
       


                      
                         















                                      


                                           
                                                         
       


                      
                         

















                                      


                                           
                                                         
       


                      
                         



















                                      


                                           
                                                         
       


                      
                         





















                                      


                                           
                                                         
       


                      
                         



































                                     


                                           
                                                         
       


                      
                         


































                                     


                                           
                                                         
       


                      
                         




































                                      


                                           
                                                         
       


                      
                         






































                                      


                                           
                                                         
       


                      
                         








                                     

                      
                     
       


































                                      

                      
                     
       















































                                      

                      
                     
       





















































                                     

                      
                     
       



























































                                     

                      
                     
       







































































































































































































































































































































































































































































































































































































































































































































































                                      

                      
                     
       










































                                     
	.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]
 .ifdef PIC
	mov	rbx,32*16
 .else
	mov	rbx,32*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap32

ap_31:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,31*16
 .else
	mov	rbx,31*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap31

ap_30:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,30*16
 .else
	mov	rbx,30*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap30

ap_29:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,29*16
 .else
	mov	rbx,29*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap29

ap_28:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,28*16
 .else
	mov	rbx,28*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap28

ap_27:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,27*16
 .else
	mov	rbx,27*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap27

ap_26:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,26*16
 .else
	mov	rbx,26*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap26

ap_25:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,25*16
 .else
	mov	rbx,25*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap25

ap_24:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,24*16
 .else
	mov	rbx,24*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap24

ap_23:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,23*16
 .else
	mov	rbx,23*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap23

ap_22:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,22*16
 .else
	mov	rbx,22*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap22

ap_21:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,21*16
 .else
	mov	rbx,21*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap21

ap_20:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,20*16
 .else
	mov	rbx,20*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap20

ap_19:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,19*16
 .else
	mov	rbx,19*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap19

ap_18:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,18*16
 .else
	mov	rbx,18*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap18

ap_17:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,17*16
 .else
	mov	rbx,17*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap17

ap_16:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,16*16
 .else
	mov	rbx,16*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap16

ap_15:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,15*16
 .else
	mov	rbx,15*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap15

ap_14:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,14*16
 .else
	mov	rbx,14*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap14

ap_13:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,13*16
 .else
	mov	rbx,13*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap13

ap_12:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,12*16
 .else
	mov	rbx,12*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap12

ap_11:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,11*16
 .else
	mov	rbx,11*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap11

ap_10:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,10*16
 .else
	mov	rbx,10*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap10

ap_9:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,9*16
 .else
	mov	rbx,9*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap9

ap_8:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,8*16
 .else
	mov	rbx,8*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap8

ap_7:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,7*16
 .else
	mov	rbx,7*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap7

ap_6:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,6*16
 .else
	mov	rbx,6*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap6

ap_5:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,5*16
 .else
	mov	rbx,5*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap5

ap_4:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,4*16
 .else
	mov	rbx,4*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap4

ap_3:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,3*16
 .else
	mov	rbx,3*8
 .endif
	cmp	word ptr [r9],bx
	je	fast_ap

	mov	qword ptr [rsi],rcx
	mov	rcx,rdx
	mov	rdx,r8
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	add	rsi,8
	jmp	no_fast_ap3

ap_2:
	mov	r9,qword ptr [r8]
 .ifdef PIC
	mov	rbx,2*16
 .else
	mov	rbx,2*8
 .endif
	cmp	word ptr [r9],bx
	jne	no_fast_ap2_

fast_ap_2_2_:
	movzx	rax,word ptr -2[r9]
	add	rbx,r9
 .ifdef PIC
	mov	r9,qword ptr -10[rbx]
 .else
	mov	r9d,dword ptr -6[rbx]
 .endif
.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
	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
 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
	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
 .ifdef PIC
	mov	r9,qword ptr -10[rbx]
 .else
	mov	r9d,dword ptr -6[rbx]
 .endif
.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
	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
	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

 .ifdef PIC
	mov	rbx,31*16
 .else
	mov	rbx,31*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap31:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,30*16
 .else
	mov	rbx,30*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap30:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,29*16
 .else
	mov	rbx,29*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap29:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,28*16
 .else
	mov	rbx,28*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap28:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,27*16
 .else
	mov	rbx,27*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap27:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,26*16
 .else
	mov	rbx,26*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap26:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,25*16
 .else
	mov	rbx,25*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap25:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,24*16
 .else
	mov	rbx,24*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap24:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,23*16
 .else
	mov	rbx,23*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap23:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,22*16
 .else
	mov	rbx,22*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap22:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,21*16
 .else
	mov	rbx,21*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap21:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,20*16
 .else
	mov	rbx,20*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap20:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,19*16
 .else
	mov	rbx,19*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap19:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,18*16
 .else
	mov	rbx,18*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap18:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,17*16
 .else
	mov	rbx,17*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap17:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,16*16
 .else
	mov	rbx,16*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap16:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,15*16
 .else
	mov	rbx,15*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap15:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,14*16
 .else
	mov	rbx,14*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap14:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,13*16
 .else
	mov	rbx,13*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap13:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,12*16
 .else
	mov	rbx,12*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap12:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,11*16
 .else
	mov	rbx,11*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap11:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,10*16
 .else
	mov	rbx,10*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap10:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,9*16
 .else
	mov	rbx,9*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap9:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,8*16
 .else
	mov	rbx,8*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap8:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,7*16
 .else
	mov	rbx,7*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap7:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,6*16
 .else
	mov	rbx,6*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap6:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,5*16
 .else
	mov	rbx,5*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap5:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,4*16
 .else
	mov	rbx,4*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap4:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,3*16
 .else
	mov	rbx,3*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap3:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8

 .ifdef PIC
	mov	rbx,2*16
 .else
	mov	rbx,2*8
 .endif
 	cmp	word ptr [r9],bx
	je	fast_ap_2

 .ifdef PIC
	mov	r8,qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
 .endif
no_fast_ap2:
	call	r8
	mov	r9,qword ptr [rcx]
	mov	rdx,rcx
	mov	rcx,qword ptr -8[rsi]
	sub	rsi,8
 .ifdef PIC
	jmp	qword ptr 6[r9]
 .else
	mov	r8d,dword ptr 2[r9]
	jmp	r8
 .endif


add_empty_node_2:
	sub	r15,3
	jb	add_empty_node_2_gc
add_empty_node_2_gc_:
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	r9,qword ptr -8[rsi]
	mov	qword ptr [rsi],r9
	mov	qword ptr -8[rsi],rdi
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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	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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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,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
 .ifdef PIC
	lea	rbp,__cycle__in__spine[rip]
	mov	qword ptr [rdi],rbp
 .else
	mov	qword ptr [rdi],offset __cycle__in__spine
 .endif
	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
 .ifdef PIC
	add	rax,16
 .else
	add	rax,8
 .endif
	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
 .ifdef PIC
	add	rax,16
 .else
	add	rax,8
 .endif
	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
 .ifdef PIC
	add	rax,16
 .else
	add	rax,8
 .endif
	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
 .ifdef PIC
	add	rax,16
 .else
	add	rax,8
 .endif
	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
 .ifdef PIC
	add	rax,16
 .else
	add	rax,8
 .endif
	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
 .ifdef PIC
	add	rbx,16
 .else
	add	rbx,8
 .endif
	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