update ghc codegen sample to use the same input that grin optimise

This commit is contained in:
Csaba Hruska 2018-03-21 07:58:07 +01:00
parent 02fcd70d8d
commit 11925ff917
6 changed files with 2862 additions and 874 deletions

View File

@ -1,105 +1,306 @@
.text
.file "sum.ll"
.globl Sum_zdwsum_info$def # -- Begin function Sum_zdwsum_info$def
.file "SumSimpleBasic.ll"
.globl SumSimpleBasic_zdwsum_info$def # -- Begin function SumSimpleBasic_zdwsum_info$def
.p2align 4, 0x90
.type Sum_zdwsum_info$def,@function
.quad 12884901904 # @"Sum_zdwsum_info$def"
# 0x300000010
.type SumSimpleBasic_zdwsum_info$def,@function
.quad 4294967301 # @"SumSimpleBasic_zdwsum_info$def"
# 0x100000005
.quad 0 # 0x0
.quad 14 # 0xe
Sum_zdwsum_info$def:
# BB#0: # %c3is
movq %rbx, -24(%rsp)
movq %rdi, -16(%rsp)
movq %rsi, -32(%rsp)
movq %r14, -40(%rsp)
jmp .LBB0_1
.p2align 4, 0x90
.LBB0_2: # %c3iq
# in Loop: Header=BB0_1 Depth=1
movq -32(%rsp), %rax
movq -40(%rsp), %rcx
addq %rax, %rcx
movq %rcx, -8(%rsp)
incq %rax
movq %rax, -32(%rsp)
movq %rcx, -40(%rsp)
.LBB0_1: # %c3ik
# =>This Inner Loop Header: Depth=1
movq -32(%rsp), %rax
cmpq -16(%rsp), %rax
jle .LBB0_2
# BB#3: # %c3ir
movq -40(%rsp), %rbx
movq %rbx, -24(%rsp)
movq (%rbp), %rax
SumSimpleBasic_zdwsum_info$def:
# BB#0: # %c3kG
movq %rbx, -16(%rsp)
movq %rbp, -24(%rsp)
movq %r14, -8(%rsp)
addq $-16, %rbp
cmpq %r15, %rbp
jae .LBB0_1
# BB#3: # %c3kH
movq -8(%rsp), %r14
movq $SumSimpleBasic_zdwsum_closure$def, -16(%rsp)
movq -8(%r13), %rax
movq -24(%rsp), %rbp
movl $SumSimpleBasic_zdwsum_closure$def, %ebx
jmpq *%rax # TAILCALL
.LBB0_1: # %c3kI
movq -24(%rsp), %rax
movq $c3kz_info$def, -8(%rax)
movq -8(%rsp), %rax
movq %rax, -16(%rsp)
addq $-8, -24(%rsp)
testb $7, -16(%rsp)
je .LBB0_4
# BB#2: # %u3l2
movq -24(%rsp), %rbp
movq -16(%rsp), %rbx
jmp c3kz_info$def # TAILCALL
.LBB0_4: # %c3kA
movq -16(%rsp), %rbx
movq (%rbx), %rax
movq -24(%rsp), %rbp
jmpq *%rax # TAILCALL
.Lfunc_end0:
.size Sum_zdwsum_info$def, .Lfunc_end0-Sum_zdwsum_info$def
.size SumSimpleBasic_zdwsum_info$def, .Lfunc_end0-SumSimpleBasic_zdwsum_info$def
# -- End function
.globl Sum_hszusumzupure2_info$def # -- Begin function Sum_hszusumzupure2_info$def
.p2align 4, 0x90 # -- Begin function c3kz_info$def
.type c3kz_info$def,@function
.quad 0 # @"c3kz_info$def"
# 0x0
.quad 30 # 0x1e
c3kz_info$def:
# BB#0: # %c3kz
movq %rbx, -16(%rsp)
movq %rbp, -24(%rsp)
andl $7, %ebx
cmpq $2, %rbx
jne .LBB1_3
# BB#1: # %c3kE
movq -24(%rsp), %rax
movq $c3kO_info$def, -8(%rax)
movq -16(%rsp), %rax
movq 14(%rax), %rcx
movq %rcx, -8(%rsp)
movq 6(%rax), %rax
movq %rax, -16(%rsp)
movq -24(%rsp), %rax
movq %rcx, (%rax)
addq $-8, -24(%rsp)
testb $7, -16(%rsp)
je .LBB1_4
# BB#2: # %u3l1
movq -24(%rsp), %rbp
movq -16(%rsp), %rbx
jmp c3kO_info$def # TAILCALL
.LBB1_3: # %c3kD
movq $0, -16(%rsp)
movq -24(%rsp), %rax
leaq 8(%rax), %rbp
movq %rbp, -24(%rsp)
movq 8(%rax), %rax
xorl %ebx, %ebx
jmpq *%rax # TAILCALL
.LBB1_4: # %c3kP
movq -16(%rsp), %rbx
movq (%rbx), %rax
movq -24(%rsp), %rbp
jmpq *%rax # TAILCALL
.Lfunc_end1:
.size c3kz_info$def, .Lfunc_end1-c3kz_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3kO_info$def
.type c3kO_info$def,@function
.quad 1 # @"c3kO_info$def"
# 0x1
.quad 30 # 0x1e
c3kO_info$def:
# BB#0: # %c3kO
movq $c3kT_info$def, (%rbp)
movq 8(%rbp), %rax
movq %rax, -8(%rsp)
movq 7(%rbx), %rax
movq %rax, 8(%rbp)
movq -8(%rsp), %r14
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.Lfunc_end2:
.size c3kO_info$def, .Lfunc_end2-c3kO_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3kT_info$def
.type c3kT_info$def,@function
.quad 65 # @"c3kT_info$def"
# 0x41
.quad 30 # 0x1e
c3kT_info$def:
# BB#0: # %c3kT
movq %rbx, -8(%rsp)
movq %rbp, -16(%rsp)
addq 8(%rbp), %rbx
movq %rbx, -8(%rsp)
leaq 16(%rbp), %rax
movq %rax, -16(%rsp)
movq 16(%rbp), %rcx
movq %rax, %rbp
jmpq *%rcx # TAILCALL
.Lfunc_end3:
.size c3kT_info$def, .Lfunc_end3-c3kT_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function s3kp_info$def
.type s3kp_info$def,@function
.quad 8589934592 # @"s3kp_info$def"
# 0x200000000
.quad 20 # 0x14
s3kp_info$def:
# BB#0: # %c3n4
movq %rbp, -32(%rsp)
movq %rbx, -24(%rsp)
addq $-16, %rbp
cmpq %r15, %rbp
jae .LBB4_1
# BB#2: # %c3n5
movq -24(%rsp), %rbx
movq -16(%r13), %rax
movq -32(%rsp), %rbp
jmpq *%rax # TAILCALL
.LBB4_1: # %c3n6
movq -32(%rsp), %rax
movq $stg_upd_frame_info, -16(%rax)
movq -24(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, -8(%rcx)
movq -24(%rsp), %rbx
movq 24(%rbx), %rsi
movq %rsi, -8(%rsp)
movq 16(%rbx), %r14
incq %r14
movq %r14, -16(%rsp)
movq -32(%rsp), %rbp
addq $-16, %rbp
movq %rbp, -32(%rsp)
jmp SumSimpleBasic_zdwupto_info$def # TAILCALL
.Lfunc_end4:
.size s3kp_info$def, .Lfunc_end4-s3kp_info$def
# -- End function
.globl SumSimpleBasic_zdwupto_info$def # -- Begin function SumSimpleBasic_zdwupto_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure2_info$def,@function
.quad 0 # @"Sum_hszusumzupure2_info$def"
.type SumSimpleBasic_zdwupto_info$def,@function
.quad 8589934604 # @"SumSimpleBasic_zdwupto_info$def"
# 0x20000000c
.quad 0 # 0x0
.quad 14 # 0xe
SumSimpleBasic_zdwupto_info$def:
# BB#0: # %c3na
movq %rbx, -8(%rsp)
movq %rsi, -16(%rsp)
movq %r14, -24(%rsp)
addq $72, %r12
movq %r12, -32(%rsp)
cmpq 856(%r13), %r12
jbe .LBB5_1
# BB#3: # %c3ne
movq $72, 904(%r13)
movq -16(%rsp), %rsi
movq -24(%rsp), %r14
movq $SumSimpleBasic_zdwupto_closure$def, -8(%rsp)
movq -8(%r13), %rax
movq -32(%rsp), %r12
movl $SumSimpleBasic_zdwupto_closure$def, %ebx
jmpq *%rax # TAILCALL
.LBB5_1: # %c3nd
movq -24(%rsp), %rax
cmpq -16(%rsp), %rax
jle .LBB5_4
# BB#2: # %c3n9
movq -32(%rsp), %r12
addq $-72, %r12
movq %r12, -32(%rsp)
movq $SumSimpleBasic_Nil_closure+1, -8(%rsp)
movq (%rbp), %rax
movl $SumSimpleBasic_Nil_closure+1, %ebx
jmpq *%rax # TAILCALL
.LBB5_4: # %c3n8
movq -32(%rsp), %rax
movq $s3kp_info$def, -64(%rax)
movq -24(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, -48(%rcx)
movq -16(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, -40(%rcx)
movq -32(%rsp), %rax
movq $ghczmprim_GHCziTypes_Izh_con_info, -32(%rax)
movq -24(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, -24(%rcx)
movq -32(%rsp), %rax
movq $SumSimpleBasic_Cons_con_info, -16(%rax)
movq -32(%rsp), %rax
leaq -31(%rax), %rcx
movq %rcx, -8(%rax)
movq -32(%rsp), %rax
leaq -64(%rax), %rcx
movq %rcx, (%rax)
movq -32(%rsp), %r12
leaq -14(%r12), %rbx
movq %rbx, -8(%rsp)
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end5:
.size SumSimpleBasic_zdwupto_info$def, .Lfunc_end5-SumSimpleBasic_zdwupto_info$def
# -- End function
.globl SumSimpleBasic_hszusumzupure2_info$def # -- Begin function SumSimpleBasic_hszusumzupure2_info$def
.p2align 4, 0x90
.type SumSimpleBasic_hszusumzupure2_info$def,@function
.quad 0 # @"SumSimpleBasic_hszusumzupure2_info$def"
# 0x0
.quad 21 # 0x15
Sum_hszusumzupure2_info$def:
# BB#0: # %c3iY
SumSimpleBasic_hszusumzupure2_info$def:
# BB#0: # %c3pj
subq $136, %rsp
movq %rbp, (%rsp)
movq %rbx, 8(%rsp)
addq $-24, %rbp
cmpq %r15, %rbp
jae .LBB1_1
# BB#4: # %c3j4
jae .LBB6_1
# BB#4: # %c3pt
movq 8(%rsp), %rbx
movq -16(%r13), %rax
jmp .LBB1_3
.LBB1_1: # %c3j5
jmp .LBB6_3
.LBB6_1: # %c3pu
movq 8(%rsp), %rsi
movq %r13, %rdi
callq newCAF
movq %rax, 16(%rsp)
testq %rax, %rax
je .LBB1_2
# BB#5: # %c3iU
je .LBB6_2
# BB#5: # %c3pf
movq (%rsp), %rax
movq $stg_bh_upd_frame_info, -16(%rax)
movq 16(%rsp), %rax
movq (%rsp), %rcx
movq %rax, -8(%rcx)
movq (%rsp), %rax
movq $c3iW_info$def, -24(%rax)
movq $c3ph_info$def, -24(%rax)
movq $100000, 32(%rsp) # imm = 0x186A0
movq $1, 40(%rsp)
movq $0, 24(%rsp)
movq $1, 24(%rsp)
movq (%rsp), %rbp
addq $-24, %rbp
movq %rbp, (%rsp)
movq 8(%rsp), %rbx
xorl %r14d, %r14d
movl $1, %esi
movl $100000, %edi # imm = 0x186A0
movl $1, %r14d
movl $100000, %esi # imm = 0x186A0
addq $136, %rsp
jmp Sum_zdwsum_info$def # TAILCALL
.LBB1_2: # %c3iV
jmp SumSimpleBasic_zdwupto_info$def # TAILCALL
.LBB6_2: # %c3pg
movq 8(%rsp), %rbx
movq (%rbx), %rax
.LBB1_3: # %c3iV
.LBB6_3: # %c3pg
movq (%rsp), %rbp
addq $136, %rsp
jmpq *%rax # TAILCALL
.Lfunc_end1:
.size Sum_hszusumzupure2_info$def, .Lfunc_end1-Sum_hszusumzupure2_info$def
.Lfunc_end6:
.size SumSimpleBasic_hszusumzupure2_info$def, .Lfunc_end6-SumSimpleBasic_hszusumzupure2_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3iW_info$def
.type c3iW_info$def,@function
.quad 0 # @"c3iW_info$def"
.p2align 4, 0x90 # -- Begin function c3ph_info$def
.type c3ph_info$def,@function
.quad 0 # @"c3ph_info$def"
# 0x0
.quad 30 # 0x1e
c3iW_info$def:
# BB#0: # %c3iW
movq $c3j1_info$def, (%rbp)
c3ph_info$def:
# BB#0: # %c3ph
movq $c3pm_info$def, (%rbp)
movq %rbx, -8(%rsp)
movq %rbx, %r14
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.Lfunc_end7:
.size c3ph_info$def, .Lfunc_end7-c3ph_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3pm_info$def
.type c3pm_info$def,@function
.quad 0 # @"c3pm_info$def"
# 0x0
.quad 30 # 0x1e
c3pm_info$def:
# BB#0: # %c3pm
movq $c3pq_info$def, (%rbp)
movq $ghczmprim_GHCziTypes_ZMZN_closure+1, -8(%rsp)
movq %rbx, -16(%rsp)
movq $0, -24(%rsp)
@ -107,31 +308,31 @@ c3iW_info$def:
movl $ghczmprim_GHCziTypes_ZMZN_closure+1, %edi
movq %rbx, %rsi
jmp base_GHCziShow_zdwshowSignedInt_info # TAILCALL
.Lfunc_end2:
.size c3iW_info$def, .Lfunc_end2-c3iW_info$def
.Lfunc_end8:
.size c3pm_info$def, .Lfunc_end8-c3pm_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3j1_info$def
.type c3j1_info$def,@function
.quad 0 # @"c3j1_info$def"
.p2align 4, 0x90 # -- Begin function c3pq_info$def
.type c3pq_info$def,@function
.quad 0 # @"c3pq_info$def"
# 0x0
.quad 30 # 0x1e
c3j1_info$def:
# BB#0: # %c3j1
c3pq_info$def:
# BB#0: # %c3pq
movq %rbx, -16(%rsp)
movq %rbp, -24(%rsp)
movq %r14, -8(%rsp)
addq $24, %r12
movq %r12, -32(%rsp)
cmpq 856(%r13), %r12
jbe .LBB3_1
# BB#2: # %c3j9
jbe .LBB9_1
# BB#2: # %c3pz
movq $24, 904(%r13)
movq -8(%rsp), %r14
movq -16(%rsp), %rbx
movq -24(%rsp), %rbp
movq -32(%rsp), %r12
jmp stg_gc_pp # TAILCALL
.LBB3_1: # %c3j8
.LBB9_1: # %c3py
movq -32(%rsp), %rax
movq $ghczmprim_GHCziTypes_ZC_con_info, -16(%rax)
movq -16(%rsp), %rax
@ -148,145 +349,413 @@ c3j1_info$def:
movq %rbp, -24(%rsp)
movq 8(%rax), %rax
jmpq *%rax # TAILCALL
.Lfunc_end3:
.size c3j1_info$def, .Lfunc_end3-c3j1_info$def
.Lfunc_end9:
.size c3pq_info$def, .Lfunc_end9-c3pq_info$def
# -- End function
.globl Sum_hszusumzupure1_info$def # -- Begin function Sum_hszusumzupure1_info$def
.globl SumSimpleBasic_hszusumzupure1_info$def # -- Begin function SumSimpleBasic_hszusumzupure1_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure1_info$def,@function
.quad S3kT_srt-Sum_hszusumzupure1_info$def # @"Sum_hszusumzupure1_info$def"
.type SumSimpleBasic_hszusumzupure1_info$def,@function
.quad S3rl_srt-SumSimpleBasic_hszusumzupure1_info$def # @"SumSimpleBasic_hszusumzupure1_info$def"
.quad 4294967299 # 0x100000003
.quad 0 # 0x0
.quad 30064771086 # 0x70000000e
Sum_hszusumzupure1_info$def:
# BB#0: # %c3kQ
SumSimpleBasic_hszusumzupure1_info$def:
# BB#0: # %c3ri
movq $ghczmprim_GHCziTypes_True_closure+2, -8(%rsp)
movq $Sum_hszusumzupure2_closure$def, -16(%rsp)
movq $SumSimpleBasic_hszusumzupure2_closure$def, -16(%rsp)
movq $base_GHCziIOziHandleziFD_stdout_closure, -24(%rsp)
movl $base_GHCziIOziHandleziFD_stdout_closure, %r14d
movl $Sum_hszusumzupure2_closure$def, %esi
movl $SumSimpleBasic_hszusumzupure2_closure$def, %esi
movl $ghczmprim_GHCziTypes_True_closure+2, %edi
jmp base_GHCziIOziHandleziText_hPutStr2_info # TAILCALL
.Lfunc_end4:
.size Sum_hszusumzupure1_info$def, .Lfunc_end4-Sum_hszusumzupure1_info$def
.Lfunc_end10:
.size SumSimpleBasic_hszusumzupure1_info$def, .Lfunc_end10-SumSimpleBasic_hszusumzupure1_info$def
# -- End function
.globl Sum_hszusumzupure_info$def # -- Begin function Sum_hszusumzupure_info$def
.globl SumSimpleBasic_hszusumzupure_info$def # -- Begin function SumSimpleBasic_hszusumzupure_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure_info$def,@function
.quad (S3kT_srt-Sum_hszusumzupure_info$def)+24 # @"Sum_hszusumzupure_info$def"
.type SumSimpleBasic_hszusumzupure_info$def,@function
.quad (S3rl_srt-SumSimpleBasic_hszusumzupure_info$def)+24 # @"SumSimpleBasic_hszusumzupure_info$def"
.quad 4294967299 # 0x100000003
.quad 0 # 0x0
.quad 4294967310 # 0x10000000e
Sum_hszusumzupure_info$def:
# BB#0: # %c3l6
jmp Sum_hszusumzupure1_info$def # TAILCALL
.Lfunc_end5:
.size Sum_hszusumzupure_info$def, .Lfunc_end5-Sum_hszusumzupure_info$def
SumSimpleBasic_hszusumzupure_info$def:
# BB#0: # %c3ry
jmp SumSimpleBasic_hszusumzupure1_info$def # TAILCALL
.Lfunc_end11:
.size SumSimpleBasic_hszusumzupure_info$def, .Lfunc_end11-SumSimpleBasic_hszusumzupure_info$def
# -- End function
.type Sum_zdtrModule4_bytes$def,@object # @"Sum_zdtrModule4_bytes$def"
.section .rodata,"a",@progbits
Sum_zdtrModule4_bytes$def:
.asciz "main"
.size Sum_zdtrModule4_bytes$def, 5
.type Sum_zdtrModule3_closure$def,@object # @"Sum_zdtrModule3_closure$def"
.data
.p2align 3
Sum_zdtrModule3_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Sum_zdtrModule4_bytes$def
.size Sum_zdtrModule3_closure$def, 16
.type Sum_zdtrModule2_bytes$def,@object # @"Sum_zdtrModule2_bytes$def"
.section .rodata,"a",@progbits
Sum_zdtrModule2_bytes$def:
.asciz "Sum"
.size Sum_zdtrModule2_bytes$def, 4
.type Sum_zdtrModule1_closure$def,@object # @"Sum_zdtrModule1_closure$def"
.data
.p2align 3
Sum_zdtrModule1_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Sum_zdtrModule2_bytes$def
.size Sum_zdtrModule1_closure$def, 16
.type Sum_zdtrModule_closure$def,@object # @"Sum_zdtrModule_closure$def"
.p2align 4
Sum_zdtrModule_closure$def:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad Sum_zdtrModule3_closure$def+1
.quad Sum_zdtrModule1_closure$def+1
.p2align 4, 0x90 # -- Begin function SumSimpleBasic_Cons_info$def
.type SumSimpleBasic_Cons_info$def,@function
.quad 8589934607 # @"SumSimpleBasic_Cons_info$def"
# 0x20000000f
.quad 0 # 0x0
.quad 14 # 0xe
SumSimpleBasic_Cons_info$def:
# BB#0: # %c3rH
movq %rbx, -8(%rsp)
movq %rsi, -16(%rsp)
movq %r14, -24(%rsp)
addq $24, %r12
movq %r12, -32(%rsp)
cmpq 856(%r13), %r12
jbe .LBB12_1
# BB#2: # %c3rL
movq $24, 904(%r13)
movq -16(%rsp), %rsi
movq -24(%rsp), %r14
movq $SumSimpleBasic_Cons_closure$def, -8(%rsp)
movq -8(%r13), %rax
movq -32(%rsp), %r12
movl $SumSimpleBasic_Cons_closure$def, %ebx
jmpq *%rax # TAILCALL
.LBB12_1: # %c3rK
movq -32(%rsp), %rax
movq $SumSimpleBasic_Cons_con_info, -16(%rax)
movq -24(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, -8(%rcx)
movq -16(%rsp), %rax
movq -32(%rsp), %rcx
movq %rax, (%rcx)
movq -32(%rsp), %r12
leaq -14(%r12), %rbx
movq %rbx, -8(%rsp)
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end12:
.size SumSimpleBasic_Cons_info$def, .Lfunc_end12-SumSimpleBasic_Cons_info$def
# -- End function
.globl SumSimpleBasic_Nil_con_info$def # -- Begin function SumSimpleBasic_Nil_con_info$def
.p2align 4, 0x90
.type SumSimpleBasic_Nil_con_info$def,@function
.quad i3st_str$def-SumSimpleBasic_Nil_con_info$def # @"SumSimpleBasic_Nil_con_info$def"
.quad 4294967296 # 0x100000000
.quad 3 # 0x3
.size Sum_zdtrModule_closure$def, 32
.type Sum_zdwsum_closure$def,@object # @"Sum_zdwsum_closure$def"
.p2align 3
Sum_zdwsum_closure$def:
.quad Sum_zdwsum_info$def
.size Sum_zdwsum_closure$def, 8
.type Sum_hszusumzupure2_closure$def,@object # @"Sum_hszusumzupure2_closure$def"
.p2align 4
Sum_hszusumzupure2_closure$def:
.quad Sum_hszusumzupure2_info$def
.quad 0 # 0x0
.quad 0 # 0x0
.quad 0 # 0x0
.size Sum_hszusumzupure2_closure$def, 32
.type Sum_hszusumzupure1_closure$def,@object # @"Sum_hszusumzupure1_closure$def"
.p2align 3
Sum_hszusumzupure1_closure$def:
.quad Sum_hszusumzupure1_info$def
.quad 0 # 0x0
.size Sum_hszusumzupure1_closure$def, 16
.type Sum_hszusumzupure_closure$def,@object # @"Sum_hszusumzupure_closure$def"
.p2align 3
Sum_hszusumzupure_closure$def:
.quad Sum_hszusumzupure_info$def
.quad 0 # 0x0
.size Sum_hszusumzupure_closure$def, 16
.type S3kT_srt$def,@object # @"S3kT_srt$def"
SumSimpleBasic_Nil_con_info$def:
# BB#0: # %c3ss
incq %rbx
movq %rbx, -8(%rsp)
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end13:
.size SumSimpleBasic_Nil_con_info$def, .Lfunc_end13-SumSimpleBasic_Nil_con_info$def
# -- End function
.globl SumSimpleBasic_Cons_con_info$def # -- Begin function SumSimpleBasic_Cons_con_info$def
.p2align 4, 0x90
.type SumSimpleBasic_Cons_con_info$def,@function
.quad i3sD_str$def-SumSimpleBasic_Cons_con_info$def # @"SumSimpleBasic_Cons_con_info$def"
.quad 2 # 0x2
.quad 4294967300 # 0x100000004
SumSimpleBasic_Cons_con_info$def:
# BB#0: # %c3sC
addq $2, %rbx
movq %rbx, -8(%rsp)
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end14:
.size SumSimpleBasic_Cons_con_info$def, .Lfunc_end14-SumSimpleBasic_Cons_con_info$def
# -- End function
.type SumSimpleBasic_zdtrModule4_bytes$def,@object # @"SumSimpleBasic_zdtrModule4_bytes$def"
.section .rodata,"a",@progbits
SumSimpleBasic_zdtrModule4_bytes$def:
.asciz "main"
.size SumSimpleBasic_zdtrModule4_bytes$def, 5
.type SumSimpleBasic_zdtrModule3_closure$def,@object # @"SumSimpleBasic_zdtrModule3_closure$def"
.data
.p2align 3
SumSimpleBasic_zdtrModule3_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtrModule4_bytes$def
.size SumSimpleBasic_zdtrModule3_closure$def, 16
.type SumSimpleBasic_zdtrModule2_bytes$def,@object # @"SumSimpleBasic_zdtrModule2_bytes$def"
.section .rodata,"a",@progbits
SumSimpleBasic_zdtrModule2_bytes$def:
.asciz "SumSimpleBasic"
.size SumSimpleBasic_zdtrModule2_bytes$def, 15
.type SumSimpleBasic_zdtrModule1_closure$def,@object # @"SumSimpleBasic_zdtrModule1_closure$def"
.data
.p2align 3
SumSimpleBasic_zdtrModule1_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtrModule2_bytes$def
.size SumSimpleBasic_zdtrModule1_closure$def, 16
.type SumSimpleBasic_zdtrModule_closure$def,@object # @"SumSimpleBasic_zdtrModule_closure$def"
.p2align 4
S3kT_srt$def:
SumSimpleBasic_zdtrModule_closure$def:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad SumSimpleBasic_zdtrModule3_closure$def+1
.quad SumSimpleBasic_zdtrModule1_closure$def+1
.quad 3 # 0x3
.size SumSimpleBasic_zdtrModule_closure$def, 32
.type r3k9_closure$def,@object # @"r3k9_closure$def"
.p2align 3
r3k9_closure$def:
.quad ghczmprim_GHCziTypes_KindRepVar_con_info
.quad 0 # 0x0
.size r3k9_closure$def, 16
.type SumSimpleBasic_zdtcList2_bytes$def,@object # @"SumSimpleBasic_zdtcList2_bytes$def"
.section .rodata,"a",@progbits
SumSimpleBasic_zdtcList2_bytes$def:
.asciz "List"
.size SumSimpleBasic_zdtcList2_bytes$def, 5
.type SumSimpleBasic_zdtcList1_closure$def,@object # @"SumSimpleBasic_zdtcList1_closure$def"
.data
.p2align 3
SumSimpleBasic_zdtcList1_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtcList2_bytes$def
.size SumSimpleBasic_zdtcList1_closure$def, 16
.type SumSimpleBasic_zdtcList_closure$def,@object # @"SumSimpleBasic_zdtcList_closure$def"
.p2align 4
SumSimpleBasic_zdtcList_closure$def:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure$def+1
.quad SumSimpleBasic_zdtcList1_closure$def+1
.quad ghczmprim_GHCziTypes_krepzdztArrzt_closure
.quad 8125128733883036046 # 0x70c24188e16af18e
.quad 8522174167308563467 # 0x7644d840b46ff40b
.quad 0 # 0x0
.quad 3 # 0x3
.size SumSimpleBasic_zdtcList_closure$def, 64
.type r3ka_closure$def,@object # @"r3ka_closure$def"
.p2align 4
r3ka_closure$def:
.quad ghczmprim_GHCziTypes_ZC_con_info
.quad r3k9_closure$def+2
.quad ghczmprim_GHCziTypes_ZMZN_closure+1
.quad 3 # 0x3
.size r3ka_closure$def, 32
.type SumSimpleBasic_zdtczqNil1_closure$def,@object # @"SumSimpleBasic_zdtczqNil1_closure$def"
.p2align 4
SumSimpleBasic_zdtczqNil1_closure$def:
.quad ghczmprim_GHCziTypes_KindRepTyConApp_con_info
.quad SumSimpleBasic_zdtcList_closure$def+1
.quad r3ka_closure$def+2
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqNil1_closure$def, 32
.type SumSimpleBasic_zdtczqNil3_bytes$def,@object # @"SumSimpleBasic_zdtczqNil3_bytes$def"
.section .rodata,"a",@progbits
SumSimpleBasic_zdtczqNil3_bytes$def:
.asciz "'Nil"
.size SumSimpleBasic_zdtczqNil3_bytes$def, 5
.type SumSimpleBasic_zdtczqNil2_closure$def,@object # @"SumSimpleBasic_zdtczqNil2_closure$def"
.data
.p2align 3
SumSimpleBasic_zdtczqNil2_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtczqNil3_bytes$def
.size SumSimpleBasic_zdtczqNil2_closure$def, 16
.type SumSimpleBasic_zdtczqNil_closure$def,@object # @"SumSimpleBasic_zdtczqNil_closure$def"
.p2align 4
SumSimpleBasic_zdtczqNil_closure$def:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure$def+1
.quad SumSimpleBasic_zdtczqNil2_closure$def+1
.quad SumSimpleBasic_zdtczqNil1_closure$def+1
.quad 3225848470370281545 # 0x2cc48417afa86849
.quad 8987752080532592311 # 0x7cbae8e5e96c56b7
.quad 1 # 0x1
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqNil_closure$def, 64
.type r3kb_closure$def,@object # @"r3kb_closure$def"
.p2align 4
r3kb_closure$def:
.quad ghczmprim_GHCziTypes_KindRepFun_con_info
.quad SumSimpleBasic_zdtczqNil1_closure$def+1
.quad SumSimpleBasic_zdtczqNil1_closure$def+1
.quad 3 # 0x3
.size r3kb_closure$def, 32
.type SumSimpleBasic_zdtczqCons1_closure$def,@object # @"SumSimpleBasic_zdtczqCons1_closure$def"
.p2align 4
SumSimpleBasic_zdtczqCons1_closure$def:
.quad ghczmprim_GHCziTypes_KindRepFun_con_info
.quad r3k9_closure$def+2
.quad r3kb_closure$def+4
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqCons1_closure$def, 32
.type SumSimpleBasic_zdtczqCons3_bytes$def,@object # @"SumSimpleBasic_zdtczqCons3_bytes$def"
.section .rodata,"a",@progbits
SumSimpleBasic_zdtczqCons3_bytes$def:
.asciz "'Cons"
.size SumSimpleBasic_zdtczqCons3_bytes$def, 6
.type SumSimpleBasic_zdtczqCons2_closure$def,@object # @"SumSimpleBasic_zdtczqCons2_closure$def"
.data
.p2align 3
SumSimpleBasic_zdtczqCons2_closure$def:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtczqCons3_bytes$def
.size SumSimpleBasic_zdtczqCons2_closure$def, 16
.type SumSimpleBasic_zdtczqCons_closure$def,@object # @"SumSimpleBasic_zdtczqCons_closure$def"
.p2align 4
SumSimpleBasic_zdtczqCons_closure$def:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure$def+1
.quad SumSimpleBasic_zdtczqCons2_closure$def+1
.quad SumSimpleBasic_zdtczqCons1_closure$def+4
.quad -7205385302398664762 # 0x9c01543e44b4ffc6
.quad 6836440343659544598 # 0x5edfea4583fa0016
.quad 1 # 0x1
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqCons_closure$def, 64
.type SumSimpleBasic_zdwsum_closure$def,@object # @"SumSimpleBasic_zdwsum_closure$def"
.p2align 3
SumSimpleBasic_zdwsum_closure$def:
.quad SumSimpleBasic_zdwsum_info$def
.size SumSimpleBasic_zdwsum_closure$def, 8
.type SumSimpleBasic_zdwupto_closure$def,@object # @"SumSimpleBasic_zdwupto_closure$def"
.p2align 3
SumSimpleBasic_zdwupto_closure$def:
.quad SumSimpleBasic_zdwupto_info$def
.size SumSimpleBasic_zdwupto_closure$def, 8
.type SumSimpleBasic_hszusumzupure2_closure$def,@object # @"SumSimpleBasic_hszusumzupure2_closure$def"
.p2align 4
SumSimpleBasic_hszusumzupure2_closure$def:
.quad SumSimpleBasic_hszusumzupure2_info$def
.quad 0 # 0x0
.quad 0 # 0x0
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure2_closure$def, 32
.type SumSimpleBasic_hszusumzupure1_closure$def,@object # @"SumSimpleBasic_hszusumzupure1_closure$def"
.p2align 3
SumSimpleBasic_hszusumzupure1_closure$def:
.quad SumSimpleBasic_hszusumzupure1_info$def
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure1_closure$def, 16
.type SumSimpleBasic_hszusumzupure_closure$def,@object # @"SumSimpleBasic_hszusumzupure_closure$def"
.p2align 3
SumSimpleBasic_hszusumzupure_closure$def:
.quad SumSimpleBasic_hszusumzupure_info$def
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure_closure$def, 16
.type SumSimpleBasic_Nil_closure$def,@object # @"SumSimpleBasic_Nil_closure$def"
.p2align 3
SumSimpleBasic_Nil_closure$def:
.quad SumSimpleBasic_Nil_con_info
.size SumSimpleBasic_Nil_closure$def, 8
.type SumSimpleBasic_Cons_closure$def,@object # @"SumSimpleBasic_Cons_closure$def"
.p2align 3
SumSimpleBasic_Cons_closure$def:
.quad SumSimpleBasic_Cons_info$def
.size SumSimpleBasic_Cons_closure$def, 8
.type i3st_str$def,@object # @"i3st_str$def"
.section .rodata,"a",@progbits
i3st_str$def:
.asciz "main:SumSimpleBasic.Nil"
.size i3st_str$def, 24
.type i3sD_str$def,@object # @"i3sD_str$def"
i3sD_str$def:
.asciz "main:SumSimpleBasic.Cons"
.size i3sD_str$def, 25
.type S3rl_srt$def,@object # @"S3rl_srt$def"
.p2align 4
S3rl_srt$def:
.quad base_GHCziIOziHandleziFD_stdout_closure
.quad base_GHCziIOziHandleziText_hPutStr2_closure
.quad Sum_hszusumzupure2_closure$def
.quad Sum_hszusumzupure1_closure$def
.size S3kT_srt$def, 32
.quad SumSimpleBasic_hszusumzupure2_closure$def
.quad SumSimpleBasic_hszusumzupure1_closure$def
.size S3rl_srt$def, 32
.globl Sum_zdtrModule4_bytes
Sum_zdtrModule4_bytes = Sum_zdtrModule4_bytes$def
.globl Sum_zdtrModule3_closure
Sum_zdtrModule3_closure = Sum_zdtrModule3_closure$def
.globl Sum_zdtrModule2_bytes
Sum_zdtrModule2_bytes = Sum_zdtrModule2_bytes$def
.globl Sum_zdtrModule1_closure
Sum_zdtrModule1_closure = Sum_zdtrModule1_closure$def
.globl Sum_zdtrModule_closure
Sum_zdtrModule_closure = Sum_zdtrModule_closure$def
.globl Sum_zdwsum_closure
Sum_zdwsum_closure = Sum_zdwsum_closure$def
.globl Sum_zdwsum_info
Sum_zdwsum_info = Sum_zdwsum_info$def
.globl Sum_hszusumzupure2_closure
Sum_hszusumzupure2_closure = Sum_hszusumzupure2_closure$def
.globl Sum_hszusumzupure2_info
Sum_hszusumzupure2_info = Sum_hszusumzupure2_info$def
c3iW_info = c3iW_info$def
c3j1_info = c3j1_info$def
.globl Sum_hszusumzupure1_closure
Sum_hszusumzupure1_closure = Sum_hszusumzupure1_closure$def
.globl Sum_hszusumzupure1_info
Sum_hszusumzupure1_info = Sum_hszusumzupure1_info$def
.globl Sum_hszusumzupure_closure
Sum_hszusumzupure_closure = Sum_hszusumzupure_closure$def
.globl Sum_hszusumzupure_info
Sum_hszusumzupure_info = Sum_hszusumzupure_info$def
S3kT_srt = S3kT_srt$def
.globl SumSimpleBasic_zdtrModule4_bytes
SumSimpleBasic_zdtrModule4_bytes = SumSimpleBasic_zdtrModule4_bytes$def
.globl SumSimpleBasic_zdtrModule3_closure
SumSimpleBasic_zdtrModule3_closure = SumSimpleBasic_zdtrModule3_closure$def
.globl SumSimpleBasic_zdtrModule2_bytes
SumSimpleBasic_zdtrModule2_bytes = SumSimpleBasic_zdtrModule2_bytes$def
.globl SumSimpleBasic_zdtrModule1_closure
SumSimpleBasic_zdtrModule1_closure = SumSimpleBasic_zdtrModule1_closure$def
.globl SumSimpleBasic_zdtrModule_closure
SumSimpleBasic_zdtrModule_closure = SumSimpleBasic_zdtrModule_closure$def
r3k9_closure = r3k9_closure$def
.globl SumSimpleBasic_zdtcList2_bytes
SumSimpleBasic_zdtcList2_bytes = SumSimpleBasic_zdtcList2_bytes$def
.globl SumSimpleBasic_zdtcList1_closure
SumSimpleBasic_zdtcList1_closure = SumSimpleBasic_zdtcList1_closure$def
.globl SumSimpleBasic_zdtcList_closure
SumSimpleBasic_zdtcList_closure = SumSimpleBasic_zdtcList_closure$def
r3ka_closure = r3ka_closure$def
.globl SumSimpleBasic_zdtczqNil1_closure
SumSimpleBasic_zdtczqNil1_closure = SumSimpleBasic_zdtczqNil1_closure$def
.globl SumSimpleBasic_zdtczqNil3_bytes
SumSimpleBasic_zdtczqNil3_bytes = SumSimpleBasic_zdtczqNil3_bytes$def
.globl SumSimpleBasic_zdtczqNil2_closure
SumSimpleBasic_zdtczqNil2_closure = SumSimpleBasic_zdtczqNil2_closure$def
.globl SumSimpleBasic_zdtczqNil_closure
SumSimpleBasic_zdtczqNil_closure = SumSimpleBasic_zdtczqNil_closure$def
r3kb_closure = r3kb_closure$def
.globl SumSimpleBasic_zdtczqCons1_closure
SumSimpleBasic_zdtczqCons1_closure = SumSimpleBasic_zdtczqCons1_closure$def
.globl SumSimpleBasic_zdtczqCons3_bytes
SumSimpleBasic_zdtczqCons3_bytes = SumSimpleBasic_zdtczqCons3_bytes$def
.globl SumSimpleBasic_zdtczqCons2_closure
SumSimpleBasic_zdtczqCons2_closure = SumSimpleBasic_zdtczqCons2_closure$def
.globl SumSimpleBasic_zdtczqCons_closure
SumSimpleBasic_zdtczqCons_closure = SumSimpleBasic_zdtczqCons_closure$def
.globl SumSimpleBasic_zdwsum_closure
SumSimpleBasic_zdwsum_closure = SumSimpleBasic_zdwsum_closure$def
.globl SumSimpleBasic_zdwsum_info
SumSimpleBasic_zdwsum_info = SumSimpleBasic_zdwsum_info$def
c3kz_info = c3kz_info$def
c3kO_info = c3kO_info$def
c3kT_info = c3kT_info$def
.globl SumSimpleBasic_zdwupto_closure
SumSimpleBasic_zdwupto_closure = SumSimpleBasic_zdwupto_closure$def
s3kp_info = s3kp_info$def
.globl SumSimpleBasic_zdwupto_info
SumSimpleBasic_zdwupto_info = SumSimpleBasic_zdwupto_info$def
.globl SumSimpleBasic_hszusumzupure2_closure
SumSimpleBasic_hszusumzupure2_closure = SumSimpleBasic_hszusumzupure2_closure$def
.globl SumSimpleBasic_hszusumzupure2_info
SumSimpleBasic_hszusumzupure2_info = SumSimpleBasic_hszusumzupure2_info$def
c3ph_info = c3ph_info$def
c3pm_info = c3pm_info$def
c3pq_info = c3pq_info$def
.globl SumSimpleBasic_hszusumzupure1_closure
SumSimpleBasic_hszusumzupure1_closure = SumSimpleBasic_hszusumzupure1_closure$def
.globl SumSimpleBasic_hszusumzupure1_info
SumSimpleBasic_hszusumzupure1_info = SumSimpleBasic_hszusumzupure1_info$def
.globl SumSimpleBasic_hszusumzupure_closure
SumSimpleBasic_hszusumzupure_closure = SumSimpleBasic_hszusumzupure_closure$def
.globl SumSimpleBasic_hszusumzupure_info
SumSimpleBasic_hszusumzupure_info = SumSimpleBasic_hszusumzupure_info$def
.globl SumSimpleBasic_Nil_closure
SumSimpleBasic_Nil_closure = SumSimpleBasic_Nil_closure$def
.globl SumSimpleBasic_Cons_closure
SumSimpleBasic_Cons_closure = SumSimpleBasic_Cons_closure$def
SumSimpleBasic_Cons_info = SumSimpleBasic_Cons_info$def
i3st_str = i3st_str$def
.globl SumSimpleBasic_Nil_con_info
SumSimpleBasic_Nil_con_info = SumSimpleBasic_Nil_con_info$def
i3sD_str = i3sD_str$def
.globl SumSimpleBasic_Cons_con_info
SumSimpleBasic_Cons_con_info = SumSimpleBasic_Cons_con_info$def
S3rl_srt = S3rl_srt$def
.section ".note.GNU-stack","",@progbits

View File

@ -1,86 +1,347 @@
.text
.file "sum.ll"
.globl Sum_zdwsum_info$def # -- Begin function Sum_zdwsum_info$def
.file "SumSimpleBasic.ll"
.globl SumSimpleBasic_zdwsum_info$def # -- Begin function SumSimpleBasic_zdwsum_info$def
.p2align 4, 0x90
.type Sum_zdwsum_info$def,@function
.quad 12884901904 # @"Sum_zdwsum_info$def"
# 0x300000010
.type SumSimpleBasic_zdwsum_info$def,@function
.quad 4294967301 # @"SumSimpleBasic_zdwsum_info$def"
# 0x100000005
.quad 0 # 0x0
.quad 14 # 0xe
Sum_zdwsum_info$def:
# BB#0: # %c3is
cmpq %rdi, %rsi
jg .LBB0_3
SumSimpleBasic_zdwsum_info$def:
# BB#0: # %c3kG
movq %rbp, %rax
leaq -16(%rax), %rbp
cmpq %r15, %rbp
jb .LBB0_7
.p2align 4, 0x90
.LBB0_1: # %c3iq
.LBB0_1: # %c3kI
# =>This Inner Loop Header: Depth=1
addq %rsi, %r14
incq %rsi
cmpq %rdi, %rsi
jle .LBB0_1
.LBB0_3: # %c3ir
movq (%rbp), %rax
movq $c3kz_info$def, 8(%rbp)
movl %r14d, %eax
andb $7, %al
cmpb $2, %al
jne .LBB0_2
# BB#4: # %c3kE.i
# in Loop: Header=BB0_1 Depth=1
movq $c3kO_info$def, (%rbp)
movq 6(%r14), %rbx
movq 14(%r14), %r14
movq %r14, 8(%rbp)
testb $7, %bl
je .LBB0_9
# BB#5: # %u3l1.i
# in Loop: Header=BB0_1 Depth=1
movq $c3kT_info$def, (%rbp)
movq 7(%rbx), %rax
movq %rax, 8(%rbp)
addq $-16, %rbp
cmpq %r15, %rbp
jae .LBB0_1
# BB#6: # %c3kH.loopexit
addq $16, %rbp
movq %rbp, %rax
.LBB0_7: # %c3kH
movq -8(%r13), %rcx
movl $SumSimpleBasic_zdwsum_closure, %ebx
movq %rax, %rbp
jmpq *%rcx # TAILCALL
.LBB0_2: # %c3kI
testb %al, %al
jne .LBB0_3
# BB#8: # %c3kA
movq (%r14), %rax
addq $8, %rbp
movq %r14, %rbx
jmpq *%rax # TAILCALL
.LBB0_9: # %c3kP.i
movq (%rbx), %rax
jmpq *%rax # TAILCALL
.LBB0_3: # %c3kD.i
movq 16(%rbp), %rax
addq $16, %rbp
xorl %ebx, %ebx
jmpq *%rax # TAILCALL
.Lfunc_end0:
.size Sum_zdwsum_info$def, .Lfunc_end0-Sum_zdwsum_info$def
.size SumSimpleBasic_zdwsum_info$def, .Lfunc_end0-SumSimpleBasic_zdwsum_info$def
# -- End function
.globl Sum_hszusumzupure2_info$def # -- Begin function Sum_hszusumzupure2_info$def
.p2align 4, 0x90 # -- Begin function c3kz_info$def
.type c3kz_info$def,@function
.quad 0 # @"c3kz_info$def"
# 0x0
.quad 30 # 0x1e
c3kz_info$def:
# BB#0: # %c3kz
movl %ebx, %eax
andl $7, %eax
cmpq $2, %rax
jne .LBB1_3
# BB#1: # %c3kE
leaq -8(%rbp), %rax
movq $c3kO_info$def, -8(%rbp)
movq 6(%rbx), %rcx
movq 14(%rbx), %r14
movq %r14, (%rbp)
testb $7, %cl
je .LBB1_4
# BB#2: # %u3l1
movq $c3kT_info$def, -8(%rbp)
movq 7(%rcx), %rcx
movq %rcx, (%rbp)
movq %rax, %rbp
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.LBB1_3: # %c3kD
movq 8(%rbp), %rax
addq $8, %rbp
xorl %ebx, %ebx
jmpq *%rax # TAILCALL
.LBB1_4: # %c3kP
movq (%rcx), %rdx
movq %rax, %rbp
movq %rcx, %rbx
jmpq *%rdx # TAILCALL
.Lfunc_end1:
.size c3kz_info$def, .Lfunc_end1-c3kz_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3kO_info$def
.type c3kO_info$def,@function
.quad 1 # @"c3kO_info$def"
# 0x1
.quad 30 # 0x1e
c3kO_info$def:
# BB#0: # %c3kO
movq $c3kT_info$def, (%rbp)
movq 8(%rbp), %r14
movq 7(%rbx), %rax
movq %rax, 8(%rbp)
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.Lfunc_end2:
.size c3kO_info$def, .Lfunc_end2-c3kO_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3kT_info$def
.type c3kT_info$def,@function
.quad 65 # @"c3kT_info$def"
# 0x41
.quad 30 # 0x1e
c3kT_info$def:
# BB#0: # %c3kT
addq 8(%rbp), %rbx
movq 16(%rbp), %rax
addq $16, %rbp
jmpq *%rax # TAILCALL
.Lfunc_end3:
.size c3kT_info$def, .Lfunc_end3-c3kT_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function s3kp_info$def
.type s3kp_info$def,@function
.quad 8589934592 # @"s3kp_info$def"
# 0x200000000
.quad 20 # 0x14
s3kp_info$def:
# BB#0: # %c3n4
movq %rbp, %rax
leaq -16(%rax), %rbp
cmpq %r15, %rbp
jb .LBB4_5
# BB#1: # %c3n6
movq $stg_upd_frame_info, -16(%rax)
movq %rbx, -8(%rax)
movq 16(%rbx), %r14
movq 24(%rbx), %rsi
incq %r14
leaq 72(%r12), %rax
cmpq %rax, 856(%r13)
jb .LBB4_4
# BB#2: # %c3nd.i
cmpq %rsi, %r14
jle .LBB4_6
# BB#3: # %c3n9.i
movl $SumSimpleBasic_Nil_closure+1, %ebx
jmp stg_upd_frame_info # TAILCALL
.LBB4_6: # %c3n8.i
leaq 8(%r12), %rcx
movq $s3kp_info$def, 8(%r12)
movq %r14, 24(%r12)
movq %rsi, 32(%r12)
movq $ghczmprim_GHCziTypes_Izh_con_info, 40(%r12)
movq %r14, 48(%r12)
movq $SumSimpleBasic_Cons_con_info$def, 56(%r12)
leaq -31(%rax), %rdx
movq %rdx, 64(%r12)
movq %rcx, 72(%r12)
leaq -14(%rax), %rbx
movq %rax, %r12
jmp stg_upd_frame_info # TAILCALL
.LBB4_5: # %c3n5
movq -16(%r13), %rcx
movq %rax, %rbp
jmpq *%rcx # TAILCALL
.LBB4_4: # %c3ne.i
movq $72, 904(%r13)
movq -8(%r13), %rcx
movl $SumSimpleBasic_zdwupto_closure, %ebx
movq %rax, %r12
jmpq *%rcx # TAILCALL
.Lfunc_end4:
.size s3kp_info$def, .Lfunc_end4-s3kp_info$def
# -- End function
.globl SumSimpleBasic_zdwupto_info$def # -- Begin function SumSimpleBasic_zdwupto_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure2_info$def,@function
.quad 0 # @"Sum_hszusumzupure2_info$def"
.type SumSimpleBasic_zdwupto_info$def,@function
.quad 8589934604 # @"SumSimpleBasic_zdwupto_info$def"
# 0x20000000c
.quad 0 # 0x0
.quad 14 # 0xe
SumSimpleBasic_zdwupto_info$def:
# BB#0: # %c3na
movq %r12, %rax
leaq 72(%rax), %r12
cmpq %r12, 856(%r13)
jb .LBB5_3
# BB#1: # %c3nd
cmpq %rsi, %r14
jle .LBB5_4
# BB#2: # %c3n9
movq (%rbp), %rcx
movl $SumSimpleBasic_Nil_closure+1, %ebx
movq %rax, %r12
jmpq *%rcx # TAILCALL
.LBB5_4: # %c3n8
leaq 8(%rax), %rcx
movq $s3kp_info$def, 8(%rax)
movq %r14, 24(%rax)
movq %rsi, 32(%rax)
movq $ghczmprim_GHCziTypes_Izh_con_info, 40(%rax)
movq %r14, 48(%rax)
movq $SumSimpleBasic_Cons_con_info$def, 56(%rax)
leaq -31(%r12), %rdx
movq %rdx, 64(%rax)
movq %rcx, 72(%rax)
movq (%rbp), %rax
leaq -14(%r12), %rbx
jmpq *%rax # TAILCALL
.LBB5_3: # %c3ne
movq $72, 904(%r13)
movq -8(%r13), %rax
movl $SumSimpleBasic_zdwupto_closure, %ebx
jmpq *%rax # TAILCALL
.Lfunc_end5:
.size SumSimpleBasic_zdwupto_info$def, .Lfunc_end5-SumSimpleBasic_zdwupto_info$def
# -- End function
.section .rodata.cst16,"aM",@progbits,16
.p2align 4 # -- Begin function SumSimpleBasic_hszusumzupure2_info$def
.LCPI6_0:
.quad 1 # 0x1
.quad 100000 # 0x186a0
.text
.globl SumSimpleBasic_hszusumzupure2_info$def
.p2align 4, 0x90
.type SumSimpleBasic_hszusumzupure2_info$def,@function
.quad 0 # @"SumSimpleBasic_hszusumzupure2_info$def"
# 0x0
.quad 21 # 0x15
Sum_hszusumzupure2_info$def:
# BB#0: # %c3iY
SumSimpleBasic_hszusumzupure2_info$def:
# BB#0: # %c3pj
movq %rbp, %r14
leaq -24(%r14), %rbp
cmpq %r15, %rbp
jb .LBB1_3
# BB#1: # %c3j5
jb .LBB6_5
# BB#1: # %c3pu
pushq %rax
movq %r13, %rdi
movq %rbx, %rsi
callq newCAF
testq %rax, %rax
leaq 8(%rsp), %rsp
je .LBB1_2
# BB#4: # %c3iU
je .LBB6_4
# BB#2: # %c3pf
movq %rax, -8(%r14)
movl $stg_bh_upd_frame_info, %eax
movq %rax, %xmm0
movl $c3j1_info$def, %eax
movl $c3ph_info$def, %eax
movq %rax, %xmm1
punpcklqdq %xmm0, %xmm1 # xmm1 = xmm1[0],xmm0[0]
movdqu %xmm1, -24(%r14)
movabsq $5000050000, %rbx # imm = 0x12A06B550
leaq 72(%r12), %rax
cmpq %rax, 856(%r13)
jb .LBB6_3
# BB#6: # %c3nd.i
leaq 8(%r12), %rcx
movq $s3kp_info$def, 8(%r12)
movaps .LCPI6_0(%rip), %xmm0 # xmm0 = [1,100000]
movups %xmm0, 24(%r12)
movl $1, %edx
movq %rdx, %xmm0
movl $ghczmprim_GHCziTypes_Izh_con_info, %edx
movq %rdx, %xmm1
punpcklqdq %xmm0, %xmm1 # xmm1 = xmm1[0],xmm0[0]
movdqu %xmm1, 40(%r12)
movq $SumSimpleBasic_Cons_con_info$def, 56(%r12)
leaq -31(%rax), %rdx
movq %rdx, 64(%r12)
movq %rcx, 72(%r12)
movq $c3pm_info$def, (%rbp)
leaq -14(%rax), %r14
movq %rax, %r12
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.LBB6_4: # %c3pg
movq (%rbx), %rax
movq %r14, %rbp
jmpq *%rax # TAILCALL
.LBB6_5: # %c3pt
movq -16(%r13), %rax
movq %r14, %rbp
jmpq *%rax # TAILCALL
.LBB6_3: # %c3ne.i
movq $72, 904(%r13)
movq -8(%r13), %rcx
movl $SumSimpleBasic_zdwupto_closure, %ebx
movl $1, %r14d
movl $100000, %esi # imm = 0x186A0
movq %rax, %r12
jmpq *%rcx # TAILCALL
.Lfunc_end6:
.size SumSimpleBasic_hszusumzupure2_info$def, .Lfunc_end6-SumSimpleBasic_hszusumzupure2_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3ph_info$def
.type c3ph_info$def,@function
.quad 0 # @"c3ph_info$def"
# 0x0
.quad 30 # 0x1e
c3ph_info$def:
# BB#0: # %c3ph
movq $c3pm_info$def, (%rbp)
movq %rbx, %r14
jmp SumSimpleBasic_zdwsum_info$def # TAILCALL
.Lfunc_end7:
.size c3ph_info$def, .Lfunc_end7-c3ph_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3pm_info$def
.type c3pm_info$def,@function
.quad 0 # @"c3pm_info$def"
# 0x0
.quad 30 # 0x1e
c3pm_info$def:
# BB#0: # %c3pm
movq $c3pq_info$def, (%rbp)
xorl %r14d, %r14d
movl $ghczmprim_GHCziTypes_ZMZN_closure+1, %edi
movq %rbx, %rsi
jmp base_GHCziShow_zdwshowSignedInt_info # TAILCALL
.LBB1_2: # %c3iV
movq (%rbx), %rax
movq %r14, %rbp
jmpq *%rax # TAILCALL
.LBB1_3: # %c3j4
movq -16(%r13), %rax
movq %r14, %rbp
jmpq *%rax # TAILCALL
.Lfunc_end1:
.size Sum_hszusumzupure2_info$def, .Lfunc_end1-Sum_hszusumzupure2_info$def
.Lfunc_end8:
.size c3pm_info$def, .Lfunc_end8-c3pm_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c3j1_info$def
.type c3j1_info$def,@function
.quad 0 # @"c3j1_info$def"
.p2align 4, 0x90 # -- Begin function c3pq_info$def
.type c3pq_info$def,@function
.quad 0 # @"c3pq_info$def"
# 0x0
.quad 30 # 0x1e
c3j1_info$def:
# BB#0: # %c3j1
c3pq_info$def:
# BB#0: # %c3pq
movq %r12, %rax
leaq 24(%rax), %r12
cmpq %r12, 856(%r13)
jb .LBB2_2
# BB#1: # %c3j8
jb .LBB9_2
# BB#1: # %c3py
movq $ghczmprim_GHCziTypes_ZC_con_info, 8(%rax)
movq %rbx, 16(%rax)
movq %r14, 24(%rax)
@ -88,136 +349,363 @@ c3j1_info$def:
addq $8, %rbp
leaq -14(%r12), %rbx
jmpq *%rax # TAILCALL
.LBB2_2: # %c3j9
.LBB9_2: # %c3pz
movq $24, 904(%r13)
jmp stg_gc_pp # TAILCALL
.Lfunc_end2:
.size c3j1_info$def, .Lfunc_end2-c3j1_info$def
.Lfunc_end9:
.size c3pq_info$def, .Lfunc_end9-c3pq_info$def
# -- End function
.globl Sum_hszusumzupure1_info$def # -- Begin function Sum_hszusumzupure1_info$def
.globl SumSimpleBasic_hszusumzupure1_info$def # -- Begin function SumSimpleBasic_hszusumzupure1_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure1_info$def,@function
.quad S3kT_srt$def-Sum_hszusumzupure1_info$def # @"Sum_hszusumzupure1_info$def"
.type SumSimpleBasic_hszusumzupure1_info$def,@function
.quad S3rl_srt$def-SumSimpleBasic_hszusumzupure1_info$def # @"SumSimpleBasic_hszusumzupure1_info$def"
.quad 4294967299 # 0x100000003
.quad 0 # 0x0
.quad 30064771086 # 0x70000000e
Sum_hszusumzupure1_info$def:
# BB#0: # %c3kQ
SumSimpleBasic_hszusumzupure1_info$def:
# BB#0: # %c3ri
movl $base_GHCziIOziHandleziFD_stdout_closure, %r14d
movl $Sum_hszusumzupure2_closure, %esi
movl $SumSimpleBasic_hszusumzupure2_closure, %esi
movl $ghczmprim_GHCziTypes_True_closure+2, %edi
jmp base_GHCziIOziHandleziText_hPutStr2_info # TAILCALL
.Lfunc_end3:
.size Sum_hszusumzupure1_info$def, .Lfunc_end3-Sum_hszusumzupure1_info$def
.Lfunc_end10:
.size SumSimpleBasic_hszusumzupure1_info$def, .Lfunc_end10-SumSimpleBasic_hszusumzupure1_info$def
# -- End function
.globl Sum_hszusumzupure_info$def # -- Begin function Sum_hszusumzupure_info$def
.globl SumSimpleBasic_hszusumzupure_info$def # -- Begin function SumSimpleBasic_hszusumzupure_info$def
.p2align 4, 0x90
.type Sum_hszusumzupure_info$def,@function
.quad (S3kT_srt$def-Sum_hszusumzupure_info$def)+24 # @"Sum_hszusumzupure_info$def"
.type SumSimpleBasic_hszusumzupure_info$def,@function
.quad (S3rl_srt$def-SumSimpleBasic_hszusumzupure_info$def)+24 # @"SumSimpleBasic_hszusumzupure_info$def"
.quad 4294967299 # 0x100000003
.quad 0 # 0x0
.quad 4294967310 # 0x10000000e
Sum_hszusumzupure_info$def:
# BB#0: # %c3l6
SumSimpleBasic_hszusumzupure_info$def:
# BB#0: # %c3ry
movl $base_GHCziIOziHandleziFD_stdout_closure, %r14d
movl $Sum_hszusumzupure2_closure, %esi
movl $SumSimpleBasic_hszusumzupure2_closure, %esi
movl $ghczmprim_GHCziTypes_True_closure+2, %edi
jmp base_GHCziIOziHandleziText_hPutStr2_info # TAILCALL
.Lfunc_end4:
.size Sum_hszusumzupure_info$def, .Lfunc_end4-Sum_hszusumzupure_info$def
.Lfunc_end11:
.size SumSimpleBasic_hszusumzupure_info$def, .Lfunc_end11-SumSimpleBasic_hszusumzupure_info$def
# -- End function
.type Sum_zdtrModule4_bytes,@object # @Sum_zdtrModule4_bytes
.section .rodata,"a",@progbits
.globl Sum_zdtrModule4_bytes
Sum_zdtrModule4_bytes:
.asciz "main"
.size Sum_zdtrModule4_bytes, 5
.type Sum_zdtrModule3_closure,@object # @Sum_zdtrModule3_closure
.data
.globl Sum_zdtrModule3_closure
.p2align 3
Sum_zdtrModule3_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Sum_zdtrModule4_bytes
.size Sum_zdtrModule3_closure, 16
.type Sum_zdtrModule2_bytes,@object # @Sum_zdtrModule2_bytes
.section .rodata,"a",@progbits
.globl Sum_zdtrModule2_bytes
Sum_zdtrModule2_bytes:
.asciz "Sum"
.size Sum_zdtrModule2_bytes, 4
.type Sum_zdtrModule1_closure,@object # @Sum_zdtrModule1_closure
.data
.globl Sum_zdtrModule1_closure
.p2align 3
Sum_zdtrModule1_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Sum_zdtrModule2_bytes
.size Sum_zdtrModule1_closure, 16
.type Sum_zdtrModule_closure,@object # @Sum_zdtrModule_closure
.globl Sum_zdtrModule_closure
.p2align 4
Sum_zdtrModule_closure:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad Sum_zdtrModule3_closure+1
.quad Sum_zdtrModule1_closure+1
.p2align 4, 0x90 # -- Begin function SumSimpleBasic_Cons_info$def
.type SumSimpleBasic_Cons_info$def,@function
.quad 8589934607 # @"SumSimpleBasic_Cons_info$def"
# 0x20000000f
.quad 0 # 0x0
.quad 14 # 0xe
SumSimpleBasic_Cons_info$def:
# BB#0: # %c3rH
movq %r12, %rax
leaq 24(%rax), %r12
cmpq %r12, 856(%r13)
jb .LBB12_2
# BB#1: # %c3rK
movq $SumSimpleBasic_Cons_con_info$def, 8(%rax)
movq %r14, 16(%rax)
movq %rsi, 24(%rax)
movq (%rbp), %rax
leaq -14(%r12), %rbx
jmpq *%rax # TAILCALL
.LBB12_2: # %c3rL
movq $24, 904(%r13)
movq -8(%r13), %rax
movl $SumSimpleBasic_Cons_closure, %ebx
jmpq *%rax # TAILCALL
.Lfunc_end12:
.size SumSimpleBasic_Cons_info$def, .Lfunc_end12-SumSimpleBasic_Cons_info$def
# -- End function
.globl SumSimpleBasic_Nil_con_info$def # -- Begin function SumSimpleBasic_Nil_con_info$def
.p2align 4, 0x90
.type SumSimpleBasic_Nil_con_info$def,@function
.quad i3st_str$def-SumSimpleBasic_Nil_con_info$def # @"SumSimpleBasic_Nil_con_info$def"
.quad 4294967296 # 0x100000000
.quad 3 # 0x3
.size Sum_zdtrModule_closure, 32
.type Sum_zdwsum_closure,@object # @Sum_zdwsum_closure
.globl Sum_zdwsum_closure
.p2align 3
Sum_zdwsum_closure:
.quad Sum_zdwsum_info$def
.size Sum_zdwsum_closure, 8
.type Sum_hszusumzupure2_closure,@object # @Sum_hszusumzupure2_closure
.globl Sum_hszusumzupure2_closure
.p2align 4
Sum_hszusumzupure2_closure:
.quad Sum_hszusumzupure2_info$def
.quad 0 # 0x0
.quad 0 # 0x0
.quad 0 # 0x0
.size Sum_hszusumzupure2_closure, 32
.type Sum_hszusumzupure1_closure,@object # @Sum_hszusumzupure1_closure
.globl Sum_hszusumzupure1_closure
.p2align 3
Sum_hszusumzupure1_closure:
.quad Sum_hszusumzupure1_info$def
.quad 0 # 0x0
.size Sum_hszusumzupure1_closure, 16
.type Sum_hszusumzupure_closure,@object # @Sum_hszusumzupure_closure
.globl Sum_hszusumzupure_closure
.p2align 3
Sum_hszusumzupure_closure:
.quad Sum_hszusumzupure_info$def
.quad 0 # 0x0
.size Sum_hszusumzupure_closure, 16
.type S3kT_srt$def,@object # @"S3kT_srt$def"
SumSimpleBasic_Nil_con_info$def:
# BB#0: # %c3ss
incq %rbx
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end13:
.size SumSimpleBasic_Nil_con_info$def, .Lfunc_end13-SumSimpleBasic_Nil_con_info$def
# -- End function
.globl SumSimpleBasic_Cons_con_info$def # -- Begin function SumSimpleBasic_Cons_con_info$def
.p2align 4, 0x90
.type SumSimpleBasic_Cons_con_info$def,@function
.quad i3sD_str$def-SumSimpleBasic_Cons_con_info$def # @"SumSimpleBasic_Cons_con_info$def"
.quad 2 # 0x2
.quad 4294967300 # 0x100000004
SumSimpleBasic_Cons_con_info$def:
# BB#0: # %c3sC
addq $2, %rbx
movq (%rbp), %rax
jmpq *%rax # TAILCALL
.Lfunc_end14:
.size SumSimpleBasic_Cons_con_info$def, .Lfunc_end14-SumSimpleBasic_Cons_con_info$def
# -- End function
.type SumSimpleBasic_zdtrModule4_bytes,@object # @SumSimpleBasic_zdtrModule4_bytes
.section .rodata,"a",@progbits
.globl SumSimpleBasic_zdtrModule4_bytes
SumSimpleBasic_zdtrModule4_bytes:
.asciz "main"
.size SumSimpleBasic_zdtrModule4_bytes, 5
.type SumSimpleBasic_zdtrModule3_closure,@object # @SumSimpleBasic_zdtrModule3_closure
.data
.globl SumSimpleBasic_zdtrModule3_closure
.p2align 3
SumSimpleBasic_zdtrModule3_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtrModule4_bytes
.size SumSimpleBasic_zdtrModule3_closure, 16
.type SumSimpleBasic_zdtrModule2_bytes,@object # @SumSimpleBasic_zdtrModule2_bytes
.section .rodata,"a",@progbits
.globl SumSimpleBasic_zdtrModule2_bytes
SumSimpleBasic_zdtrModule2_bytes:
.asciz "SumSimpleBasic"
.size SumSimpleBasic_zdtrModule2_bytes, 15
.type SumSimpleBasic_zdtrModule1_closure,@object # @SumSimpleBasic_zdtrModule1_closure
.data
.globl SumSimpleBasic_zdtrModule1_closure
.p2align 3
SumSimpleBasic_zdtrModule1_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtrModule2_bytes
.size SumSimpleBasic_zdtrModule1_closure, 16
.type SumSimpleBasic_zdtrModule_closure,@object # @SumSimpleBasic_zdtrModule_closure
.globl SumSimpleBasic_zdtrModule_closure
.p2align 4
S3kT_srt$def:
SumSimpleBasic_zdtrModule_closure:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad SumSimpleBasic_zdtrModule3_closure+1
.quad SumSimpleBasic_zdtrModule1_closure+1
.quad 3 # 0x3
.size SumSimpleBasic_zdtrModule_closure, 32
.type r3k9_closure$def,@object # @"r3k9_closure$def"
.p2align 3
r3k9_closure$def:
.quad ghczmprim_GHCziTypes_KindRepVar_con_info
.quad 0 # 0x0
.size r3k9_closure$def, 16
.type SumSimpleBasic_zdtcList2_bytes,@object # @SumSimpleBasic_zdtcList2_bytes
.section .rodata,"a",@progbits
.globl SumSimpleBasic_zdtcList2_bytes
SumSimpleBasic_zdtcList2_bytes:
.asciz "List"
.size SumSimpleBasic_zdtcList2_bytes, 5
.type SumSimpleBasic_zdtcList1_closure,@object # @SumSimpleBasic_zdtcList1_closure
.data
.globl SumSimpleBasic_zdtcList1_closure
.p2align 3
SumSimpleBasic_zdtcList1_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtcList2_bytes
.size SumSimpleBasic_zdtcList1_closure, 16
.type SumSimpleBasic_zdtcList_closure,@object # @SumSimpleBasic_zdtcList_closure
.globl SumSimpleBasic_zdtcList_closure
.p2align 4
SumSimpleBasic_zdtcList_closure:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure+1
.quad SumSimpleBasic_zdtcList1_closure+1
.quad ghczmprim_GHCziTypes_krepzdztArrzt_closure
.quad 8125128733883036046 # 0x70c24188e16af18e
.quad 8522174167308563467 # 0x7644d840b46ff40b
.quad 0 # 0x0
.quad 3 # 0x3
.size SumSimpleBasic_zdtcList_closure, 64
.type r3ka_closure$def,@object # @"r3ka_closure$def"
.p2align 4
r3ka_closure$def:
.quad ghczmprim_GHCziTypes_ZC_con_info
.quad r3k9_closure$def+2
.quad ghczmprim_GHCziTypes_ZMZN_closure+1
.quad 3 # 0x3
.size r3ka_closure$def, 32
.type SumSimpleBasic_zdtczqNil1_closure,@object # @SumSimpleBasic_zdtczqNil1_closure
.globl SumSimpleBasic_zdtczqNil1_closure
.p2align 4
SumSimpleBasic_zdtczqNil1_closure:
.quad ghczmprim_GHCziTypes_KindRepTyConApp_con_info
.quad SumSimpleBasic_zdtcList_closure+1
.quad r3ka_closure$def+2
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqNil1_closure, 32
.type SumSimpleBasic_zdtczqNil3_bytes,@object # @SumSimpleBasic_zdtczqNil3_bytes
.section .rodata,"a",@progbits
.globl SumSimpleBasic_zdtczqNil3_bytes
SumSimpleBasic_zdtczqNil3_bytes:
.asciz "'Nil"
.size SumSimpleBasic_zdtczqNil3_bytes, 5
.type SumSimpleBasic_zdtczqNil2_closure,@object # @SumSimpleBasic_zdtczqNil2_closure
.data
.globl SumSimpleBasic_zdtczqNil2_closure
.p2align 3
SumSimpleBasic_zdtczqNil2_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtczqNil3_bytes
.size SumSimpleBasic_zdtczqNil2_closure, 16
.type SumSimpleBasic_zdtczqNil_closure,@object # @SumSimpleBasic_zdtczqNil_closure
.globl SumSimpleBasic_zdtczqNil_closure
.p2align 4
SumSimpleBasic_zdtczqNil_closure:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure+1
.quad SumSimpleBasic_zdtczqNil2_closure+1
.quad SumSimpleBasic_zdtczqNil1_closure+1
.quad 3225848470370281545 # 0x2cc48417afa86849
.quad 8987752080532592311 # 0x7cbae8e5e96c56b7
.quad 1 # 0x1
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqNil_closure, 64
.type r3kb_closure$def,@object # @"r3kb_closure$def"
.p2align 4
r3kb_closure$def:
.quad ghczmprim_GHCziTypes_KindRepFun_con_info
.quad SumSimpleBasic_zdtczqNil1_closure+1
.quad SumSimpleBasic_zdtczqNil1_closure+1
.quad 3 # 0x3
.size r3kb_closure$def, 32
.type SumSimpleBasic_zdtczqCons1_closure,@object # @SumSimpleBasic_zdtczqCons1_closure
.globl SumSimpleBasic_zdtczqCons1_closure
.p2align 4
SumSimpleBasic_zdtczqCons1_closure:
.quad ghczmprim_GHCziTypes_KindRepFun_con_info
.quad r3k9_closure$def+2
.quad r3kb_closure$def+4
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqCons1_closure, 32
.type SumSimpleBasic_zdtczqCons3_bytes,@object # @SumSimpleBasic_zdtczqCons3_bytes
.section .rodata,"a",@progbits
.globl SumSimpleBasic_zdtczqCons3_bytes
SumSimpleBasic_zdtczqCons3_bytes:
.asciz "'Cons"
.size SumSimpleBasic_zdtczqCons3_bytes, 6
.type SumSimpleBasic_zdtczqCons2_closure,@object # @SumSimpleBasic_zdtczqCons2_closure
.data
.globl SumSimpleBasic_zdtczqCons2_closure
.p2align 3
SumSimpleBasic_zdtczqCons2_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad SumSimpleBasic_zdtczqCons3_bytes
.size SumSimpleBasic_zdtczqCons2_closure, 16
.type SumSimpleBasic_zdtczqCons_closure,@object # @SumSimpleBasic_zdtczqCons_closure
.globl SumSimpleBasic_zdtczqCons_closure
.p2align 4
SumSimpleBasic_zdtczqCons_closure:
.quad ghczmprim_GHCziTypes_TyCon_con_info
.quad SumSimpleBasic_zdtrModule_closure+1
.quad SumSimpleBasic_zdtczqCons2_closure+1
.quad SumSimpleBasic_zdtczqCons1_closure+4
.quad -7205385302398664762 # 0x9c01543e44b4ffc6
.quad 6836440343659544598 # 0x5edfea4583fa0016
.quad 1 # 0x1
.quad 3 # 0x3
.size SumSimpleBasic_zdtczqCons_closure, 64
.type SumSimpleBasic_zdwsum_closure,@object # @SumSimpleBasic_zdwsum_closure
.globl SumSimpleBasic_zdwsum_closure
.p2align 3
SumSimpleBasic_zdwsum_closure:
.quad SumSimpleBasic_zdwsum_info$def
.size SumSimpleBasic_zdwsum_closure, 8
.type SumSimpleBasic_zdwupto_closure,@object # @SumSimpleBasic_zdwupto_closure
.globl SumSimpleBasic_zdwupto_closure
.p2align 3
SumSimpleBasic_zdwupto_closure:
.quad SumSimpleBasic_zdwupto_info$def
.size SumSimpleBasic_zdwupto_closure, 8
.type SumSimpleBasic_hszusumzupure2_closure,@object # @SumSimpleBasic_hszusumzupure2_closure
.globl SumSimpleBasic_hszusumzupure2_closure
.p2align 4
SumSimpleBasic_hszusumzupure2_closure:
.quad SumSimpleBasic_hszusumzupure2_info$def
.quad 0 # 0x0
.quad 0 # 0x0
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure2_closure, 32
.type SumSimpleBasic_hszusumzupure1_closure,@object # @SumSimpleBasic_hszusumzupure1_closure
.globl SumSimpleBasic_hszusumzupure1_closure
.p2align 3
SumSimpleBasic_hszusumzupure1_closure:
.quad SumSimpleBasic_hszusumzupure1_info$def
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure1_closure, 16
.type SumSimpleBasic_hszusumzupure_closure,@object # @SumSimpleBasic_hszusumzupure_closure
.globl SumSimpleBasic_hszusumzupure_closure
.p2align 3
SumSimpleBasic_hszusumzupure_closure:
.quad SumSimpleBasic_hszusumzupure_info$def
.quad 0 # 0x0
.size SumSimpleBasic_hszusumzupure_closure, 16
.type SumSimpleBasic_Nil_closure,@object # @SumSimpleBasic_Nil_closure
.globl SumSimpleBasic_Nil_closure
.p2align 3
SumSimpleBasic_Nil_closure:
.quad SumSimpleBasic_Nil_con_info$def
.size SumSimpleBasic_Nil_closure, 8
.type SumSimpleBasic_Cons_closure,@object # @SumSimpleBasic_Cons_closure
.globl SumSimpleBasic_Cons_closure
.p2align 3
SumSimpleBasic_Cons_closure:
.quad SumSimpleBasic_Cons_info$def
.size SumSimpleBasic_Cons_closure, 8
.type i3st_str$def,@object # @"i3st_str$def"
.section .rodata,"a",@progbits
i3st_str$def:
.asciz "main:SumSimpleBasic.Nil"
.size i3st_str$def, 24
.type i3sD_str$def,@object # @"i3sD_str$def"
i3sD_str$def:
.asciz "main:SumSimpleBasic.Cons"
.size i3sD_str$def, 25
.type S3rl_srt$def,@object # @"S3rl_srt$def"
.p2align 4
S3rl_srt$def:
.quad base_GHCziIOziHandleziFD_stdout_closure
.quad base_GHCziIOziHandleziText_hPutStr2_closure
.quad Sum_hszusumzupure2_closure
.quad Sum_hszusumzupure1_closure
.size S3kT_srt$def, 32
.quad SumSimpleBasic_hszusumzupure2_closure
.quad SumSimpleBasic_hszusumzupure1_closure
.size S3rl_srt$def, 32
.globl Sum_zdwsum_info
Sum_zdwsum_info = Sum_zdwsum_info$def
.globl Sum_hszusumzupure2_info
Sum_hszusumzupure2_info = Sum_hszusumzupure2_info$def
.globl Sum_hszusumzupure1_info
Sum_hszusumzupure1_info = Sum_hszusumzupure1_info$def
.globl Sum_hszusumzupure_info
Sum_hszusumzupure_info = Sum_hszusumzupure_info$def
.globl SumSimpleBasic_zdwsum_info
SumSimpleBasic_zdwsum_info = SumSimpleBasic_zdwsum_info$def
.globl SumSimpleBasic_zdwupto_info
SumSimpleBasic_zdwupto_info = SumSimpleBasic_zdwupto_info$def
.globl SumSimpleBasic_hszusumzupure2_info
SumSimpleBasic_hszusumzupure2_info = SumSimpleBasic_hszusumzupure2_info$def
.globl SumSimpleBasic_hszusumzupure1_info
SumSimpleBasic_hszusumzupure1_info = SumSimpleBasic_hszusumzupure1_info$def
.globl SumSimpleBasic_hszusumzupure_info
SumSimpleBasic_hszusumzupure_info = SumSimpleBasic_hszusumzupure_info$def
.globl SumSimpleBasic_Nil_con_info
SumSimpleBasic_Nil_con_info = SumSimpleBasic_Nil_con_info$def
.globl SumSimpleBasic_Cons_con_info
SumSimpleBasic_Cons_con_info = SumSimpleBasic_Cons_con_info$def
.section ".note.GNU-stack","",@progbits

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,672 @@
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl SumSimpleBasic.$trModule4_bytes
.type SumSimpleBasic.$trModule4_bytes, @object
SumSimpleBasic.$trModule4_bytes:
.asciz "main"
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$trModule3_closure
.type SumSimpleBasic.$trModule3_closure, @object
SumSimpleBasic.$trModule3_closure:
.quad GHC.Types.TrNameS_con_info
.quad SumSimpleBasic.$trModule4_bytes
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl SumSimpleBasic.$trModule2_bytes
.type SumSimpleBasic.$trModule2_bytes, @object
SumSimpleBasic.$trModule2_bytes:
.asciz "SumSimpleBasic"
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$trModule1_closure
.type SumSimpleBasic.$trModule1_closure, @object
SumSimpleBasic.$trModule1_closure:
.quad GHC.Types.TrNameS_con_info
.quad SumSimpleBasic.$trModule2_bytes
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$trModule_closure
.type SumSimpleBasic.$trModule_closure, @object
SumSimpleBasic.$trModule_closure:
.quad GHC.Types.Module_con_info
.quad SumSimpleBasic.$trModule3_closure+1
.quad SumSimpleBasic.$trModule1_closure+1
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
$krep_r3k9_closure:
.quad GHC.Types.KindRepVar_con_info
.quad 0
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl SumSimpleBasic.$tcList2_bytes
.type SumSimpleBasic.$tcList2_bytes, @object
SumSimpleBasic.$tcList2_bytes:
.asciz "List"
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tcList1_closure
.type SumSimpleBasic.$tcList1_closure, @object
SumSimpleBasic.$tcList1_closure:
.quad GHC.Types.TrNameS_con_info
.quad SumSimpleBasic.$tcList2_bytes
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tcList_closure
.type SumSimpleBasic.$tcList_closure, @object
SumSimpleBasic.$tcList_closure:
.quad GHC.Types.TyCon_con_info
.quad SumSimpleBasic.$trModule_closure+1
.quad SumSimpleBasic.$tcList1_closure+1
.quad GHC.Types.krep$*Arr*_closure
.quad 8125128733883036046
.quad 8522174167308563467
.quad 0
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
$krep1_r3ka_closure:
.quad :_con_info
.quad $krep_r3k9_closure+2
.quad GHC.Types.[]_closure+1
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Nil1_closure
.type SumSimpleBasic.$tc'Nil1_closure, @object
SumSimpleBasic.$tc'Nil1_closure:
.quad GHC.Types.KindRepTyConApp_con_info
.quad SumSimpleBasic.$tcList_closure+1
.quad $krep1_r3ka_closure+2
.quad 3
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl SumSimpleBasic.$tc'Nil3_bytes
.type SumSimpleBasic.$tc'Nil3_bytes, @object
SumSimpleBasic.$tc'Nil3_bytes:
.asciz "'Nil"
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Nil2_closure
.type SumSimpleBasic.$tc'Nil2_closure, @object
SumSimpleBasic.$tc'Nil2_closure:
.quad GHC.Types.TrNameS_con_info
.quad SumSimpleBasic.$tc'Nil3_bytes
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Nil_closure
.type SumSimpleBasic.$tc'Nil_closure, @object
SumSimpleBasic.$tc'Nil_closure:
.quad GHC.Types.TyCon_con_info
.quad SumSimpleBasic.$trModule_closure+1
.quad SumSimpleBasic.$tc'Nil2_closure+1
.quad SumSimpleBasic.$tc'Nil1_closure+1
.quad 3225848470370281545
.quad 8987752080532592311
.quad 1
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
$krep2_r3kb_closure:
.quad GHC.Types.KindRepFun_con_info
.quad SumSimpleBasic.$tc'Nil1_closure+1
.quad SumSimpleBasic.$tc'Nil1_closure+1
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Cons1_closure
.type SumSimpleBasic.$tc'Cons1_closure, @object
SumSimpleBasic.$tc'Cons1_closure:
.quad GHC.Types.KindRepFun_con_info
.quad $krep_r3k9_closure+2
.quad $krep2_r3kb_closure+4
.quad 3
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl SumSimpleBasic.$tc'Cons3_bytes
.type SumSimpleBasic.$tc'Cons3_bytes, @object
SumSimpleBasic.$tc'Cons3_bytes:
.asciz "'Cons"
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Cons2_closure
.type SumSimpleBasic.$tc'Cons2_closure, @object
SumSimpleBasic.$tc'Cons2_closure:
.quad GHC.Types.TrNameS_con_info
.quad SumSimpleBasic.$tc'Cons3_bytes
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$tc'Cons_closure
.type SumSimpleBasic.$tc'Cons_closure, @object
SumSimpleBasic.$tc'Cons_closure:
.quad GHC.Types.TyCon_con_info
.quad SumSimpleBasic.$trModule_closure+1
.quad SumSimpleBasic.$tc'Cons2_closure+1
.quad SumSimpleBasic.$tc'Cons1_closure+4
.quad -7205385302398664762
.quad 6836440343659544598
.quad 1
.quad 3
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$wsum_closure
.type SumSimpleBasic.$wsum_closure, @object
SumSimpleBasic.$wsum_closure:
.quad SumSimpleBasic.$wsum_info
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.quad 4294967301
.quad 0
.quad 14
.globl SumSimpleBasic.$wsum_info
.type SumSimpleBasic.$wsum_info, @object
SumSimpleBasic.$wsum_info:
_c3kZ:
leaq -16(%rbp),%rax
cmpq %r15,%rax
jb _c3l0
_c3l1:
movq $block_c3kS_info,-8(%rbp)
movq %r14,%rbx
addq $-8,%rbp
testb $7,%bl
jne _c3kS
_c3kT:
jmp *(%rbx)
.align 8
.quad 65
.quad 30
block_c3lc_info:
_c3lc:
movq %rbx,%rax
movq 8(%rbp),%rbx
addq %rax,%rbx
addq $16,%rbp
jmp *(%rbp)
.align 8
.quad 0
.quad 30
block_c3kS_info:
_c3kS:
movq %rbx,%rax
andl $7,%eax
cmpq $1,%rax
je _c3kW
_c3kX:
movq $block_c3l7_info,-8(%rbp)
movq 14(%rbx),%rax
movq 6(%rbx),%rbx
movq %rax,(%rbp)
addq $-8,%rbp
testb $7,%bl
jne _c3l7
_c3l8:
jmp *(%rbx)
.align 8
.quad 1
.quad 30
block_c3l7_info:
_c3l7:
movq $block_c3lc_info,(%rbp)
movq 8(%rbp),%r14
movq 7(%rbx),%rax
movq %rax,8(%rbp)
jmp SumSimpleBasic.$wsum_info
_c3l0:
movl $SumSimpleBasic.$wsum_closure,%ebx
jmp *-8(%r13)
_c3kW:
xorl %ebx,%ebx
addq $8,%rbp
jmp *(%rbp)
.size SumSimpleBasic.$wsum_info, .-SumSimpleBasic.$wsum_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.$wupto_closure
.type SumSimpleBasic.$wupto_closure, @object
SumSimpleBasic.$wupto_closure:
.quad SumSimpleBasic.$wupto_info
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.quad 8589934592
.quad 20
sat_s3kp_info:
_c3lF:
leaq -16(%rbp),%rax
cmpq %r15,%rax
jb _c3lG
_c3lH:
movq $stg_upd_frame_info,-16(%rbp)
movq %rbx,-8(%rbp)
movq 24(%rbx),%rsi
movq 16(%rbx),%rax
leaq 1(%rax),%r14
addq $-16,%rbp
jmp SumSimpleBasic.$wupto_info
_c3lG:
jmp *-16(%r13)
.size sat_s3kp_info, .-sat_s3kp_info
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.quad 8589934604
.quad 0
.quad 14
.globl SumSimpleBasic.$wupto_info
.type SumSimpleBasic.$wupto_info, @object
SumSimpleBasic.$wupto_info:
_c3lL:
addq $72,%r12
cmpq 856(%r13),%r12
ja _c3lP
_c3lO:
cmpq %rsi,%r14
jle _c3lJ
_c3lK:
addq $-72,%r12
movl $SumSimpleBasic.Nil_closure+1,%ebx
jmp *(%rbp)
_c3lP:
movq $72,904(%r13)
movl $SumSimpleBasic.$wupto_closure,%ebx
jmp *-8(%r13)
_c3lJ:
movq $sat_s3kp_info,-64(%r12)
movq %r14,-48(%r12)
movq %rsi,-40(%r12)
movq $GHC.Types.I#_con_info,-32(%r12)
movq %r14,-24(%r12)
movq $SumSimpleBasic.Cons_con_info,-16(%r12)
leaq -31(%r12),%rax
movq %rax,-8(%r12)
leaq -64(%r12),%rax
movq %rax,(%r12)
leaq -14(%r12),%rbx
jmp *(%rbp)
.size SumSimpleBasic.$wupto_info, .-SumSimpleBasic.$wupto_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.hs_sum_pure2_closure
.type SumSimpleBasic.hs_sum_pure2_closure, @object
SumSimpleBasic.hs_sum_pure2_closure:
.quad SumSimpleBasic.hs_sum_pure2_info
.quad 0
.quad 0
.quad 0
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.quad 0
.quad 21
.globl SumSimpleBasic.hs_sum_pure2_info
.type SumSimpleBasic.hs_sum_pure2_info, @object
SumSimpleBasic.hs_sum_pure2_info:
_c3m9:
leaq -24(%rbp),%rax
cmpq %r15,%rax
jb _c3mj
_c3mk:
subq $8,%rsp
movq %r13,%rax
movq %rbx,%rsi
movq %rax,%rdi
xorl %eax,%eax
call newCAF
addq $8,%rsp
testq %rax,%rax
je _c3m6
_c3m5:
movq $stg_bh_upd_frame_info,-16(%rbp)
movq %rax,-8(%rbp)
movq $block_c3m7_info,-24(%rbp)
movl $100000,%esi
movl $1,%r14d
addq $-24,%rbp
jmp SumSimpleBasic.$wupto_info
_c3mp:
movq $24,904(%r13)
jmp stg_gc_pp
.align 8
.quad 0
.quad 30
block_c3mg_info:
_c3mg:
addq $24,%r12
cmpq 856(%r13),%r12
ja _c3mp
_c3mo:
movq $:_con_info,-16(%r12)
movq %rbx,-8(%r12)
movq %r14,(%r12)
leaq -14(%r12),%rbx
addq $8,%rbp
jmp *(%rbp)
_c3mj:
jmp *-16(%r13)
.align 8
.quad 0
.quad 30
block_c3mc_info:
_c3mc:
movq $block_c3mg_info,(%rbp)
movl $GHC.Types.[]_closure+1,%edi
movq %rbx,%rsi
xorl %r14d,%r14d
jmp GHC.Show.$wshowSignedInt_info
.align 8
.quad 0
.quad 30
block_c3m7_info:
_c3m7:
movq $block_c3mc_info,(%rbp)
movq %rbx,%r14
jmp SumSimpleBasic.$wsum_info
_c3m6:
jmp *(%rbx)
.size SumSimpleBasic.hs_sum_pure2_info, .-SumSimpleBasic.hs_sum_pure2_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.hs_sum_pure1_closure
.type SumSimpleBasic.hs_sum_pure1_closure, @object
SumSimpleBasic.hs_sum_pure1_closure:
.quad SumSimpleBasic.hs_sum_pure1_info
.quad 0
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.long S3mC_srt-(SumSimpleBasic.hs_sum_pure1_info)+0
.long 0
.quad 4294967299
.quad 0
.quad 30064771086
.globl SumSimpleBasic.hs_sum_pure1_info
.type SumSimpleBasic.hs_sum_pure1_info, @object
SumSimpleBasic.hs_sum_pure1_info:
_c3mz:
movl $GHC.Types.True_closure+2,%edi
movl $SumSimpleBasic.hs_sum_pure2_closure,%esi
movl $GHC.IO.Handle.FD.stdout_closure,%r14d
jmp GHC.IO.Handle.Text.hPutStr2_info
.size SumSimpleBasic.hs_sum_pure1_info, .-SumSimpleBasic.hs_sum_pure1_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.hs_sum_pure_closure
.type SumSimpleBasic.hs_sum_pure_closure, @object
SumSimpleBasic.hs_sum_pure_closure:
.quad SumSimpleBasic.hs_sum_pure_info
.quad 0
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.long S3mC_srt-(SumSimpleBasic.hs_sum_pure_info)+24
.long 0
.quad 4294967299
.quad 0
.quad 4294967310
.globl SumSimpleBasic.hs_sum_pure_info
.type SumSimpleBasic.hs_sum_pure_info, @object
SumSimpleBasic.hs_sum_pure_info:
_c3mK:
jmp SumSimpleBasic.hs_sum_pure1_info
.size SumSimpleBasic.hs_sum_pure_info, .-SumSimpleBasic.hs_sum_pure_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.Nil_closure
.type SumSimpleBasic.Nil_closure, @object
SumSimpleBasic.Nil_closure:
.quad SumSimpleBasic.Nil_con_info
;;;; Asm code ;;;;
.section .data
.align 8
.align 1
.globl SumSimpleBasic.Cons_closure
.type SumSimpleBasic.Cons_closure, @object
SumSimpleBasic.Cons_closure:
.quad SumSimpleBasic.Cons_info
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.quad 8589934607
.quad 0
.quad 14
SumSimpleBasic.Cons_info:
_c3mW:
addq $24,%r12
cmpq 856(%r13),%r12
ja _c3n0
_c3mZ:
movq $SumSimpleBasic.Cons_con_info,-16(%r12)
movq %r14,-8(%r12)
movq %rsi,(%r12)
leaq -14(%r12),%rbx
jmp *(%rbp)
_c3n0:
movq $24,904(%r13)
movl $SumSimpleBasic.Cons_closure,%ebx
jmp *-8(%r13)
.size SumSimpleBasic.Cons_info, .-SumSimpleBasic.Cons_info
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
i3n5_str:
.asciz "main:SumSimpleBasic.Nil"
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.long i3n5_str-(SumSimpleBasic.Nil_con_info)+0
.long 0
.quad 4294967296
.quad 3
.globl SumSimpleBasic.Nil_con_info
.type SumSimpleBasic.Nil_con_info, @object
SumSimpleBasic.Nil_con_info:
_c3n4:
incq %rbx
jmp *(%rbp)
.size SumSimpleBasic.Nil_con_info, .-SumSimpleBasic.Nil_con_info
;;;; Asm code ;;;;
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
i3na_str:
.asciz "main:SumSimpleBasic.Cons"
;;;; Asm code ;;;;
.section .text
.align 8
.align 8
.long i3na_str-(SumSimpleBasic.Cons_con_info)+0
.long 0
.quad 2
.quad 4294967300
.globl SumSimpleBasic.Cons_con_info
.type SumSimpleBasic.Cons_con_info, @object
SumSimpleBasic.Cons_con_info:
_c3n9:
addq $2,%rbx
jmp *(%rbp)
.size SumSimpleBasic.Cons_con_info, .-SumSimpleBasic.Cons_con_info
;;;; Asm code ;;;;
.section .data.rel.ro
.align 8
.align 1
S3mC_srt:
.quad GHC.IO.Handle.FD.stdout_closure
.quad GHC.IO.Handle.Text.hPutStr2_closure
.quad SumSimpleBasic.hs_sum_pure2_closure
.quad SumSimpleBasic.hs_sum_pure1_closure

View File

@ -1,267 +0,0 @@
[1 of 1] Compiling Sum ( sum.hs, sum.o )
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl __stginit_main@main:Sum
.type __stginit_main@main:Sum, @object
__stginit_main@main:Sum:
==================== Asm code ====================
.section .rodata
.align 8
.align 1
c2qa_str:
.byte 109
.byte 97
.byte 105
.byte 110
.byte 0
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.$trModule2_closure
.type Sum.$trModule2_closure, @object
Sum.$trModule2_closure:
.quad GHC.Types.TrNameS_static_info
.quad c2qa_str
==================== Asm code ====================
.section .rodata
.align 8
.align 1
c2qe_str:
.byte 83
.byte 117
.byte 109
.byte 0
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.$trModule1_closure
.type Sum.$trModule1_closure, @object
Sum.$trModule1_closure:
.quad GHC.Types.TrNameS_static_info
.quad c2qe_str
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.$trModule_closure
.type Sum.$trModule_closure, @object
Sum.$trModule_closure:
.quad GHC.Types.Module_static_info
.quad Sum.$trModule2_closure+1
.quad Sum.$trModule1_closure+1
.quad 3
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.$wsum_closure
.type Sum.$wsum_closure, @object
Sum.$wsum_closure:
.quad Sum.$wsum_info
==================== Asm code ====================
.section .text
.align 8
.align 8
.quad 12884901904
.quad 0
.quad 15
.globl Sum.$wsum_info
.type Sum.$wsum_info, @object
Sum.$wsum_info:
_c2qE:
_c2qz:
cmpq %rdi,%rsi
jg _c2qL
_c2qK:
addq %rsi,%r14
incq %rsi
jmp _c2qz
_c2qL:
movq %r14,%rbx
jmp *(%rbp)
.size Sum.$wsum_info, .-Sum.$wsum_info
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.hs_sum_pure2_closure
.type Sum.hs_sum_pure2_closure, @object
Sum.hs_sum_pure2_closure:
.quad Sum.hs_sum_pure2_info
.quad 0
.quad 0
.quad 0
==================== Asm code ====================
.section .text
.align 8
.align 8
.quad 0
.quad 22
.globl Sum.hs_sum_pure2_info
.type Sum.hs_sum_pure2_info, @object
Sum.hs_sum_pure2_info:
_c2r7:
leaq -24(%rbp),%rax
cmpq %r15,%rax
jb _c2rd
_c2re:
subq $8,%rsp
movq %r13,%rax
movq %rbx,%rsi
movq %rax,%rdi
xorl %eax,%eax
call newCAF
addq $8,%rsp
testq %rax,%rax
je _c2r4
_c2r3:
movq $stg_bh_upd_frame_info,-16(%rbp)
movq %rax,-8(%rbp)
movq $block_c2r5_info,-24(%rbp)
movl $100000,%edi
movl $1,%esi
xorl %r14d,%r14d
addq $-24,%rbp
jmp Sum.$wsum_info
_c2ri:
movq $24,904(%r13)
jmp stg_gc_pp
.align 8
.quad 0
.quad 32
block_c2ra_info:
_c2ra:
addq $24,%r12
cmpq 856(%r13),%r12
ja _c2ri
_c2rh:
movq $:_con_info,-16(%r12)
movq %rbx,-8(%r12)
movq %r14,(%r12)
leaq -14(%r12),%rbx
addq $8,%rbp
jmp *(%rbp)
_c2rd:
jmp *-16(%r13)
.align 8
.quad 0
.quad 32
block_c2r5_info:
_c2r5:
movq $block_c2ra_info,(%rbp)
movl $GHC.Types.[]_closure+1,%edi
movq %rbx,%rsi
xorl %r14d,%r14d
jmp GHC.Show.$wshowSignedInt_info
_c2r4:
jmp *(%rbx)
.size Sum.hs_sum_pure2_info, .-Sum.hs_sum_pure2_info
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.hs_sum_pure1_closure
.type Sum.hs_sum_pure1_closure, @object
Sum.hs_sum_pure1_closure:
.quad Sum.hs_sum_pure1_info
.quad 0
==================== Asm code ====================
.section .text
.align 8
.align 8
.long S2rw_srt-(Sum.hs_sum_pure1_info)+0
.long 0
.quad 4294967299
.quad 0
.quad 30064771087
.globl Sum.hs_sum_pure1_info
.type Sum.hs_sum_pure1_info, @object
Sum.hs_sum_pure1_info:
_c2rt:
movl $GHC.Types.True_closure+2,%edi
movl $Sum.hs_sum_pure2_closure,%esi
movl $GHC.IO.Handle.FD.stdout_closure,%r14d
jmp GHC.IO.Handle.Text.hPutStr2_info
.size Sum.hs_sum_pure1_info, .-Sum.hs_sum_pure1_info
==================== Asm code ====================
.section .data
.align 8
.align 1
.globl Sum.hs_sum_pure_closure
.type Sum.hs_sum_pure_closure, @object
Sum.hs_sum_pure_closure:
.quad Sum.hs_sum_pure_info
.quad 0
==================== Asm code ====================
.section .text
.align 8
.align 8
.long S2rw_srt-(Sum.hs_sum_pure_info)+24
.long 0
.quad 4294967299
.quad 0
.quad 4294967311
.globl Sum.hs_sum_pure_info
.type Sum.hs_sum_pure_info, @object
Sum.hs_sum_pure_info:
_c2rF:
jmp Sum.hs_sum_pure1_info
.size Sum.hs_sum_pure_info, .-Sum.hs_sum_pure_info
==================== Asm code ====================
.section .data.rel.ro
.align 8
.align 1
S2rw_srt:
.quad GHC.IO.Handle.Text.hPutStr2_closure
.quad GHC.IO.Handle.FD.stdout_closure
.quad Sum.hs_sum_pure2_closure
.quad Sum.hs_sum_pure1_closure

View File

@ -1,9 +1,18 @@
module Sum where
module SumSimpleBasic where
data List a
= Nil
| Cons a (List a)
hs_sum_pure :: IO ()
hs_sum_pure = print $ sum 0 1 100000
hs_sum_pure = print $ sum $ upto 1 100000
where
sum :: Int -> Int -> Int -> Int
sum n29 n30 n31
| n30 > n31 = n29
| otherwise = sum (n29 + n30) (n30 + 1) n31
upto :: Int -> Int -> List Int
upto m n = if m > n
then Nil
else Cons m $ upto (m+1) n
sum :: List Int -> Int
sum l = case l of
Nil -> 0
Cons n ns -> n + sum ns