Skip to content

Instantly share code, notes, and snippets.

@0xd34df00d
Created October 2, 2020 23:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save 0xd34df00d/0365d481ef86c0b9e14f7e80606aa80d to your computer and use it in GitHub Desktop.
Save 0xd34df00d/0365d481ef86c0b9e14f7e80606aa80d to your computer and use it in GitHub Desktop.
.section .text
.align 8
.align 8
.quad 8589934607
.quad 0
.long 14
.long 0
.Lr2Ml_info:
.Lc2Vr:
leaq -16(%rbp),%rax
cmpq %r15,%rax
jae .Lc2Vd
.Lc2Vs:
movl $.Lr2Ml_closure,%ebx
jmp *-8(%r13)
.align 8
.quad 1
.long 30
.long 0
.Lc2Vg_info:
.Lc2Vg:
movq 8(%rbp),%rax
movq %rbx,%rcx
andl $7,%ecx
cmpq $1,%rcx
jne .Lc2Vp
.Lc2Vo:
movq %rax,%rbx
andq $-8,%rbx
addq $16,%rbp
jmp *(%rbx)
.Lc2Vp:
addq $24,%r12
cmpq 856(%r13),%r12
ja .Lc2Vy
.Lc2Vx:
movq 6(%rbx),%rcx
movq 14(%rbx),%rbx
movq $ghczmprim_GHCziTypes_ZC_con_info,-16(%r12)
movq %rcx,-8(%r12)
movq %rax,(%r12)
addq $16,%rbp
leaq -14(%r12),%rax
.Ln2VG:
movq %rbx,%rsi
movq %rax,%r14
.Lc2Vd:
movq $.Lc2Vg_info,-16(%rbp)
movq %rsi,%rbx
movq %r14,-8(%rbp)
addq $-16,%rbp
testb $7,%bl
jne .Lc2Vg
.Lc2Vh:
jmp *(%rbx)
.Lc2Vy:
movq $24,904(%r13)
jmp stg_gc_unpt_r1
.size .Lr2Ml_info, .-.Lr2Ml_info
.section .data
.align 8
.align 1
.Lr2Ml_closure:
.quad .Lr2Ml_info
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl Test_zdtrModule4_bytes
.type Test_zdtrModule4_bytes, @object
Test_zdtrModule4_bytes:
.asciz "main"
.section .data
.align 8
.align 1
.globl Test_zdtrModule3_closure
.type Test_zdtrModule3_closure, @object
Test_zdtrModule3_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Test_zdtrModule4_bytes
.section .rodata.str,"aMS",@progbits,1
.align 1
.align 1
.globl Test_zdtrModule2_bytes
.type Test_zdtrModule2_bytes, @object
Test_zdtrModule2_bytes:
.asciz "Test"
.section .data
.align 8
.align 1
.globl Test_zdtrModule1_closure
.type Test_zdtrModule1_closure, @object
Test_zdtrModule1_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Test_zdtrModule2_bytes
.section .data
.align 8
.align 1
.globl Test_zdtrModule_closure
.type Test_zdtrModule_closure, @object
Test_zdtrModule_closure:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad Test_zdtrModule3_closure+1
.quad Test_zdtrModule1_closure+1
.quad 3
.section .text
.align 8
.align 8
.quad 8589934606
.quad 0
.long 14
.long 0
.Lr2T2_info:
.Lc2VY:
leaq -24(%rbp),%rax
cmpq %r15,%rax
jae .Lc2VO
.Lc2VZ:
movl $.Lr2T2_closure,%ebx
jmp *-8(%r13)
.align 8
.quad 130
.long 30
.long 0
.Lc2W6_info:
.Lc2W6:
leaq 7(%rbx),%rax
movq 16(%rbp),%rbx
addq (%rax),%rbx
movq 8(%rbp),%rax
addq $24,%rbp
.Ln2Wm:
movq %rbx,%rsi
movq %rax,%r14
.Lc2VO:
movq $.Lc2VR_info,-16(%rbp)
movq %r14,%rbx
movq %rsi,-8(%rbp)
addq $-16,%rbp
testb $7,%bl
jne .Lc2VR
.Lc2VS:
jmp *(%rbx)
.align 8
.quad 65
.long 30
.long 0
.Lc2VR_info:
.Lc2VR:
movq %rbx,%rax
andl $7,%eax
cmpq $1,%rax
jne .Lc2VW
.Lc2VV:
movq 8(%rbp),%rbx
addq $16,%rbp
jmp *(%rbp)
.Lc2VW:
movq $.Lc2W6_info,-8(%rbp)
movq 14(%rbx),%rax
movq 6(%rbx),%rbx
movq %rax,(%rbp)
addq $-8,%rbp
testb $7,%bl
jne .Lc2W6
.Lc2W8:
jmp *(%rbx)
.size .Lr2T2_info, .-.Lr2T2_info
.section .data
.align 8
.align 1
.Lr2T2_closure:
.quad .Lr2T2_info
.section .text
.align 8
.align 8
.quad 4294967300
.quad 0
.long 14
.long 0
.globl Test_zdwpipeline_info
.type Test_zdwpipeline_info, @function
Test_zdwpipeline_info:
.Lc2Wu:
leaq -8(%rbp),%rax
cmpq %r15,%rax
jb .Lc2Wy
.Lc2Wz:
movq $.Lc2Ws_info,-8(%rbp)
movq %r14,%rsi
movl $1,%r14d
addq $-8,%rbp
jmp base_GHCziEnum_eftInt_info
.Lc2Wy:
movl $Test_zdwpipeline_closure,%ebx
jmp *-8(%r13)
.align 8
.quad 0
.long 30
.long 0
.Lc2Ws_info:
.Lc2Ws:
movq $.Lc2Wx_info,(%rbp)
movq %rbx,%rsi
movl $ghczmprim_GHCziTypes_ZMZN_closure+1,%r14d
jmp .Lr2Ml_info
.align 8
.quad 0
.long 30
.long 0
.Lc2Wx_info:
.Lc2Wx:
xorl %esi,%esi
movq %rbx,%r14
addq $8,%rbp
jmp .Lr2T2_info
.size Test_zdwpipeline_info, .-Test_zdwpipeline_info
.section .data
.align 8
.align 1
.globl Test_zdwpipeline_closure
.type Test_zdwpipeline_closure, @object
Test_zdwpipeline_closure:
.quad Test_zdwpipeline_info
.section .text
.align 8
.align 8
.quad 4294967301
.quad 0
.long 14
.long 0
.globl Test_pipeline_info
.type Test_pipeline_info, @function
Test_pipeline_info:
.Lc2WQ:
leaq -8(%rbp),%rax
cmpq %r15,%rax
jb .Lc2WY
.Lc2WZ:
movq $.Lc2WN_info,-8(%rbp)
movq %r14,%rbx
addq $-8,%rbp
testb $7,%bl
jne .Lc2WN
.Lc2WO:
jmp *(%rbx)
.align 8
.quad 0
.long 30
.long 0
.Lc2WN_info:
.Lc2WN:
movq $.Lc2WT_info,(%rbp)
movq 7(%rbx),%r14
jmp Test_zdwpipeline_info
.Lc2WY:
movl $Test_pipeline_closure,%ebx
jmp *-8(%r13)
.align 8
.quad 0
.long 30
.long 0
.Lc2WT_info:
.Lc2WT:
addq $16,%r12
cmpq 856(%r13),%r12
ja .Lc2X3
.Lc2X2:
movq $ghczmprim_GHCziTypes_Izh_con_info,-8(%r12)
movq %rbx,(%r12)
leaq -7(%r12),%rbx
addq $8,%rbp
jmp *(%rbp)
.Lc2X3:
movq $16,904(%r13)
jmp stg_gc_unbx_r1
.size Test_pipeline_info, .-Test_pipeline_info
.section .data
.align 8
.align 1
.globl Test_pipeline_closure
.type Test_pipeline_closure, @object
Test_pipeline_closure:
.quad Test_pipeline_info
.section .note.GNU-stack,"",@progbits
.ident "GHC 8.8.4"
.text
.file "ghc_1.ll"
.p2align 4, 0x90 # -- Begin function r2Ml_info$def
.type r2Ml_info$def,@object
.quad 8589934607 # @"r2Ml_info$def"
# 0x20000000f
.quad 0 # 0x0
.long 14 # 0xe
.long 0 # 0x0
r2Ml_info$def:
# %bb.0: # %c2Vr
leaq -24(%rbp), %rax
cmpq %r15, %rax
jb .LBB0_2
# %bb.1: # %u2Vz
movq %r14, -16(%rbp)
movq %rsi, -8(%rbp)
addq $-16, %rbp
movq %r15, %rbx
jmp _c2Vd$def # TAILCALL
.LBB0_2: # %c2Vs
movq -8(%r13), %rax
movl $r2Ml_closure$def, %ebx
jmpq *%rax # TAILCALL
.Lfunc_end0:
.size r2Ml_info$def, .Lfunc_end0-r2Ml_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function _c2Vd$def
.type _c2Vd$def,@object
_c2Vd$def: # @"_c2Vd$def"
# %bb.0: # %c2Vd
movq %rbx, %r15
movq $c2Vg_info$def, -8(%rbp)
movq 8(%rbp), %rbx
addq $-8, %rbp
testb $7, %bl
je .LBB1_1
# %bb.2: # %u2VB
jmp c2Vg_info$def # TAILCALL
.LBB1_1: # %c2Vh
movq (%rbx), %rax
jmpq *%rax # TAILCALL
.Lfunc_end1:
.size _c2Vd$def, .Lfunc_end1-_c2Vd$def
# -- End function
.p2align 4, 0x90 # -- Begin function c2Vg_info$def
.type c2Vg_info$def,@object
.quad 130 # @"c2Vg_info$def"
# 0x82
.long 30 # 0x1e
.long 0 # 0x0
c2Vg_info$def:
# %bb.0: # %c2Vg
movq %rbx, %rax
movq 8(%rbp), %rbx
movl %eax, %ecx
andl $7, %ecx
cmpl $2, %ecx
jne .LBB2_3
# %bb.1: # %c2Vp
leaq 24(%r12), %rcx
cmpq %rcx, 856(%r13)
jb .LBB2_2
# %bb.4: # %c2Vx
movq 6(%rax), %rdx
movq 14(%rax), %rax
movq $ghczmprim_GHCziTypes_ZC_con_info, 8(%r12)
movq %rdx, 16(%r12)
movq %rbx, 24(%r12)
leaq -14(%rcx), %rdx
movq %rdx, 8(%rbp)
movq %rax, 16(%rbp)
addq $8, %rbp
movq %rcx, %r12
movq %r15, %rbx
jmp _c2Vd$def # TAILCALL
.LBB2_3: # %c2Vo
andq $-8, %rbx
addq $24, %rbp
movq (%rbx), %rax
jmpq *%rax # TAILCALL
.LBB2_2: # %c2Vy
movq $24, 904(%r13)
movq %rcx, %r12
movq %rax, %rbx
jmp stg_gc_unpt_r1 # TAILCALL
.Lfunc_end2:
.size c2Vg_info$def, .Lfunc_end2-c2Vg_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function r2T2_info$def
.type r2T2_info$def,@object
.quad 8589934606 # @"r2T2_info$def"
# 0x20000000e
.quad 0 # 0x0
.long 14 # 0xe
.long 0 # 0x0
r2T2_info$def:
# %bb.0: # %c2XU
leaq -24(%rbp), %rax
cmpq %r15, %rax
jb .LBB3_2
# %bb.1: # %u2Ya
movq %r14, -16(%rbp)
movq %rsi, -8(%rbp)
addq $-16, %rbp
movq %r15, %rbx
jmp _c2XK$def # TAILCALL
.LBB3_2: # %c2XV
movq -8(%r13), %rax
movl $r2T2_closure$def, %ebx
jmpq *%rax # TAILCALL
.Lfunc_end3:
.size r2T2_info$def, .Lfunc_end3-r2T2_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function _c2XK$def
.type _c2XK$def,@object
_c2XK$def: # @"_c2XK$def"
# %bb.0: # %c2XK
movq %rbx, %r15
movq (%rbp), %rbx
movq $c2XN_info$def, (%rbp)
testb $7, %bl
je .LBB4_1
# %bb.2: # %u2Yc
jmp c2XN_info$def # TAILCALL
.LBB4_1: # %c2XO
movq (%rbx), %rax
jmpq *%rax # TAILCALL
.Lfunc_end4:
.size _c2XK$def, .Lfunc_end4-_c2XK$def
# -- End function
.p2align 4, 0x90 # -- Begin function c2XN_info$def
.type c2XN_info$def,@object
.quad 65 # @"c2XN_info$def"
# 0x41
.long 30 # 0x1e
.long 0 # 0x0
c2XN_info$def:
# %bb.0: # %c2XN
movq %rbx, %rax
movl %eax, %ecx
andl $7, %ecx
cmpl $2, %ecx
jne .LBB5_3
# %bb.1: # %c2XS
movq $c2Y2_info$def, -8(%rbp)
movq 6(%rax), %rbx
movq 14(%rax), %rax
movq %rax, (%rbp)
addq $-8, %rbp
testb $7, %bl
je .LBB5_4
# %bb.2: # %u2Yd
jmp c2Y2_info$def # TAILCALL
.LBB5_3: # %c2XR
movq 8(%rbp), %rbx
movq 16(%rbp), %rax
addq $16, %rbp
jmpq *%rax # TAILCALL
.LBB5_4: # %c2Y4
movq (%rbx), %rax
jmpq *%rax # TAILCALL
.Lfunc_end5:
.size c2XN_info$def, .Lfunc_end5-c2XN_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c2Y2_info$def
.type c2Y2_info$def,@object
.quad 130 # @"c2Y2_info$def"
# 0x82
.long 30 # 0x1e
.long 0 # 0x0
c2Y2_info$def:
# %bb.0: # %c2Y2
movq 7(%rbx), %rax
addq %rax, 16(%rbp)
addq $8, %rbp
movq %r15, %rbx
jmp _c2XK$def # TAILCALL
.Lfunc_end6:
.size c2Y2_info$def, .Lfunc_end6-c2Y2_info$def
# -- End function
.globl Test_zdwpipeline_info$def # -- Begin function Test_zdwpipeline_info$def
.p2align 4, 0x90
.type Test_zdwpipeline_info$def,@object
.quad 4294967300 # @"Test_zdwpipeline_info$def"
# 0x100000004
.quad 0 # 0x0
.long 14 # 0xe
.long 0 # 0x0
Test_zdwpipeline_info$def:
# %bb.0: # %c30j
movq %r14, %rsi
leaq -8(%rbp), %rax
cmpq %r15, %rax
jb .LBB7_2
# %bb.1: # %c30o
movq $c30h_info$def, (%rax)
movl $1, %r14d
movq %rax, %rbp
jmp base_GHCziEnum_eftInt_info # TAILCALL
.LBB7_2: # %c30n
movq -8(%r13), %rax
movl $Test_zdwpipeline_closure, %ebx
movq %rsi, %r14
jmpq *%rax # TAILCALL
.Lfunc_end7:
.size Test_zdwpipeline_info$def, .Lfunc_end7-Test_zdwpipeline_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c30h_info$def
.type c30h_info$def,@object
.quad 0 # @"c30h_info$def"
# 0x0
.long 30 # 0x1e
.long 0 # 0x0
c30h_info$def:
# %bb.0: # %c30h
movq $c30m_info$def, (%rbp)
movl $ghczmprim_GHCziTypes_ZMZN_closure+1, %r14d
movq %rbx, %rsi
jmp r2Ml_info$def # TAILCALL
.Lfunc_end8:
.size c30h_info$def, .Lfunc_end8-c30h_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c30m_info$def
.type c30m_info$def,@object
.quad 0 # @"c30m_info$def"
# 0x0
.long 30 # 0x1e
.long 0 # 0x0
c30m_info$def:
# %bb.0: # %c30m
addq $8, %rbp
movq %rbx, %r14
xorl %esi, %esi
jmp r2T2_info$def # TAILCALL
.Lfunc_end9:
.size c30m_info$def, .Lfunc_end9-c30m_info$def
# -- End function
.globl Test_pipeline_info$def # -- Begin function Test_pipeline_info$def
.p2align 4, 0x90
.type Test_pipeline_info$def,@object
.quad 4294967301 # @"Test_pipeline_info$def"
# 0x100000005
.quad 0 # 0x0
.long 14 # 0xe
.long 0 # 0x0
Test_pipeline_info$def:
# %bb.0: # %c31h
movq %rbp, %rax
addq $-8, %rbp
cmpq %r15, %rbp
jb .LBB10_3
# %bb.1: # %c31q
movq $c31e_info$def, (%rbp)
testb $7, %r14b
je .LBB10_4
# %bb.2: # %u31v
movq %r14, %rbx
jmp c31e_info$def # TAILCALL
.LBB10_4: # %c31f
movq (%r14), %rax
movq %r14, %rbx
jmpq *%rax # TAILCALL
.LBB10_3: # %c31p
movq -8(%r13), %rcx
movl $Test_pipeline_closure, %ebx
movq %rax, %rbp
jmpq *%rcx # TAILCALL
.Lfunc_end10:
.size Test_pipeline_info$def, .Lfunc_end10-Test_pipeline_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c31e_info$def
.type c31e_info$def,@object
.quad 0 # @"c31e_info$def"
# 0x0
.long 30 # 0x1e
.long 0 # 0x0
c31e_info$def:
# %bb.0: # %c31e
movq $c31k_info$def, (%rbp)
movq 7(%rbx), %r14
jmp Test_zdwpipeline_info$def # TAILCALL
.Lfunc_end11:
.size c31e_info$def, .Lfunc_end11-c31e_info$def
# -- End function
.p2align 4, 0x90 # -- Begin function c31k_info$def
.type c31k_info$def,@object
.quad 0 # @"c31k_info$def"
# 0x0
.long 30 # 0x1e
.long 0 # 0x0
c31k_info$def:
# %bb.0: # %c31k
movq %r12, %rax
addq $16, %r12
cmpq %r12, 856(%r13)
jb .LBB12_2
# %bb.1: # %c31t
movq $ghczmprim_GHCziTypes_Izh_con_info, 8(%rax)
movq %rbx, 16(%rax)
movq 8(%rbp), %rax
addq $8, %rbp
leaq -7(%r12), %rbx
jmpq *%rax # TAILCALL
.LBB12_2: # %c31u
movq $16, 904(%r13)
jmp stg_gc_unbx_r1 # TAILCALL
.Lfunc_end12:
.size c31k_info$def, .Lfunc_end12-c31k_info$def
# -- End function
.type r2Ml_closure$def,@object # @"r2Ml_closure$def"
.data
.p2align 3
r2Ml_closure$def:
.quad r2Ml_info$def
.size r2Ml_closure$def, 8
.type Test_zdtrModule4_bytes,@object # @Test_zdtrModule4_bytes
.section .rodata,"a",@progbits
.globl Test_zdtrModule4_bytes
Test_zdtrModule4_bytes:
.asciz "main"
.size Test_zdtrModule4_bytes, 5
.type Test_zdtrModule3_closure,@object # @Test_zdtrModule3_closure
.data
.globl Test_zdtrModule3_closure
.p2align 3
Test_zdtrModule3_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Test_zdtrModule4_bytes
.size Test_zdtrModule3_closure, 16
.type Test_zdtrModule2_bytes,@object # @Test_zdtrModule2_bytes
.section .rodata,"a",@progbits
.globl Test_zdtrModule2_bytes
Test_zdtrModule2_bytes:
.asciz "Test"
.size Test_zdtrModule2_bytes, 5
.type Test_zdtrModule1_closure,@object # @Test_zdtrModule1_closure
.data
.globl Test_zdtrModule1_closure
.p2align 3
Test_zdtrModule1_closure:
.quad ghczmprim_GHCziTypes_TrNameS_con_info
.quad Test_zdtrModule2_bytes
.size Test_zdtrModule1_closure, 16
.type Test_zdtrModule_closure,@object # @Test_zdtrModule_closure
.globl Test_zdtrModule_closure
.p2align 4
Test_zdtrModule_closure:
.quad ghczmprim_GHCziTypes_Module_con_info
.quad Test_zdtrModule3_closure+1
.quad Test_zdtrModule1_closure+1
.quad 3 # 0x3
.size Test_zdtrModule_closure, 32
.type r2T2_closure$def,@object # @"r2T2_closure$def"
.p2align 3
r2T2_closure$def:
.quad r2T2_info$def
.size r2T2_closure$def, 8
.type Test_zdwpipeline_closure,@object # @Test_zdwpipeline_closure
.globl Test_zdwpipeline_closure
.p2align 3
Test_zdwpipeline_closure:
.quad Test_zdwpipeline_info$def
.size Test_zdwpipeline_closure, 8
.type Test_pipeline_closure,@object # @Test_pipeline_closure
.globl Test_pipeline_closure
.p2align 3
Test_pipeline_closure:
.quad Test_pipeline_info$def
.size Test_pipeline_closure, 8
.globl Test_zdwpipeline_info
.type Test_zdwpipeline_info,@object
.set Test_zdwpipeline_info, Test_zdwpipeline_info$def
.globl Test_pipeline_info
.type Test_pipeline_info,@object
.set Test_pipeline_info, Test_pipeline_info$def
.section ".note.GNU-stack","",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment