Skip to content

Instantly share code, notes, and snippets.

@Cogitri
Created April 13, 2020 18:46
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 Cogitri/db64c18c231c446e26417408908b961a to your computer and use it in GitHub Desktop.
Save Cogitri/db64c18c231c446e26417408908b961a to your computer and use it in GitHub Desktop.
.arch armv8-a
.file "print.d"
.text
.section .rodata
.align 3
.LC0:
.ascii "sqrt(%La) = %La\n"
.zero 1
.text
.align 2
.global main
.type main, %function
main:
.LFB0:
.cfi_startproc
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_offset 29, -16
.cfi_offset 30, -8
mov x29, sp
adrp x0, .LC1
add x0, x0, :lo12:.LC1
ldr q1, [x0]
adrp x0, .LC2
add x0, x0, :lo12:.LC2
ldr q0, [x0]
adrp x0, .LC0
add x0, x0, :lo12:.LC0
bl printf
mov w0, 0
ldp x29, x30, [sp], 16
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.cfi_endproc
.LFE0:
.size main, .-main
.global _D5print12__ModuleInfoZ
.data
.align 3
.type _D5print12__ModuleInfoZ, %object
.size _D5print12__ModuleInfoZ, 14
_D5print12__ModuleInfoZ:
.word 4100
.word 0
.string "print"
.global _D5print11__moduleRefZ
.section minfo,"aw"
.align 3
.type _D5print11__moduleRefZ, %object
.size _D5print11__moduleRefZ, 8
_D5print11__moduleRefZ:
.xword _D5print12__ModuleInfoZ
.hidden gdc.dso_slot
.weak gdc.dso_slot
.section .bss.gdc.dso_slot,"awG",@nobits,gdc.dso_slot,comdat
.align 3
.type gdc.dso_slot, %object
.size gdc.dso_slot, 8
gdc.dso_slot:
.zero 8
.hidden gdc.dso_initialized
.weak gdc.dso_initialized
.section .bss.gdc.dso_initialized,"awG",@nobits,gdc.dso_initialized,comdat
.type gdc.dso_initialized, %object
.size gdc.dso_initialized, 1
gdc.dso_initialized:
.zero 1
.section .text.gdc.dso_ctor,"axG",@progbits,gdc.dso_ctor,comdat
.align 2
.weak gdc.dso_ctor
.hidden gdc.dso_ctor
.type gdc.dso_ctor, %function
gdc.dso_ctor:
.LFB1:
.cfi_startproc
stp x29, x30, [sp, -80]!
.cfi_def_cfa_offset 80
.cfi_offset 29, -80
.cfi_offset 30, -72
mov x29, sp
adrp x0, :got:__stack_chk_guard
ldr x0, [x0, #:got_lo12:__stack_chk_guard]
ldr x1, [x0]
str x1, [sp, 72]
mov x1,0
adrp x0, gdc.dso_initialized
add x0, x0, :lo12:gdc.dso_initialized
ldrb w0, [x0]
eor w0, w0, 1
and w0, w0, 255
cmp w0, 0
beq .L6
adrp x0, gdc.dso_initialized
add x0, x0, :lo12:gdc.dso_initialized
mov w1, 1
strb w1, [x0]
stp xzr, xzr, [sp, 24]
stp xzr, xzr, [sp, 40]
stp xzr, xzr, [sp, 56]
mov x0, 1
str x0, [sp, 24]
adrp x0, gdc.dso_slot
add x0, x0, :lo12:gdc.dso_slot
str x0, [sp, 32]
adrp x0, __start_minfo
add x0, x0, :lo12:__start_minfo
str x0, [sp, 40]
adrp x0, __stop_minfo
add x0, x0, :lo12:__stop_minfo
str x0, [sp, 48]
add x0, sp, 24
bl _d_dso_registry
.L6:
nop
adrp x0, :got:__stack_chk_guard
ldr x0, [x0, #:got_lo12:__stack_chk_guard]
ldr x1, [sp, 72]
ldr x0, [x0]
eor x0, x1, x0
cmp x0, 0
beq .L5
bl __stack_chk_fail
.L5:
ldp x29, x30, [sp], 80
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.cfi_endproc
.LFE1:
.size gdc.dso_ctor, .-gdc.dso_ctor
.section .text.gdc.dso_dtor,"axG",@progbits,gdc.dso_dtor,comdat
.align 2
.weak gdc.dso_dtor
.hidden gdc.dso_dtor
.type gdc.dso_dtor, %function
gdc.dso_dtor:
.LFB2:
.cfi_startproc
stp x29, x30, [sp, -80]!
.cfi_def_cfa_offset 80
.cfi_offset 29, -80
.cfi_offset 30, -72
mov x29, sp
adrp x0, :got:__stack_chk_guard
ldr x0, [x0, #:got_lo12:__stack_chk_guard]
ldr x1, [x0]
str x1, [sp, 72]
mov x1,0
adrp x0, gdc.dso_initialized
add x0, x0, :lo12:gdc.dso_initialized
ldrb w0, [x0]
cmp w0, 0
beq .L10
adrp x0, gdc.dso_initialized
add x0, x0, :lo12:gdc.dso_initialized
strb wzr, [x0]
stp xzr, xzr, [sp, 24]
stp xzr, xzr, [sp, 40]
stp xzr, xzr, [sp, 56]
mov x0, 1
str x0, [sp, 24]
adrp x0, gdc.dso_slot
add x0, x0, :lo12:gdc.dso_slot
str x0, [sp, 32]
adrp x0, __start_minfo
add x0, x0, :lo12:__start_minfo
str x0, [sp, 40]
adrp x0, __stop_minfo
add x0, x0, :lo12:__stop_minfo
str x0, [sp, 48]
add x0, sp, 24
bl _d_dso_registry
.L10:
nop
adrp x0, :got:__stack_chk_guard
ldr x0, [x0, #:got_lo12:__stack_chk_guard]
ldr x1, [sp, 72]
ldr x0, [x0]
eor x0, x1, x0
cmp x0, 0
beq .L9
bl __stack_chk_fail
.L9:
ldp x29, x30, [sp], 80
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.cfi_endproc
.LFE2:
.size gdc.dso_dtor, .-gdc.dso_dtor
.text
.align 2
.type _GLOBAL__I_5print, %function
_GLOBAL__I_5print:
.LFB3:
.cfi_startproc
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_offset 29, -16
.cfi_offset 30, -8
mov x29, sp
bl gdc.dso_ctor
ldp x29, x30, [sp], 16
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.cfi_endproc
.LFE3:
.size _GLOBAL__I_5print, .-_GLOBAL__I_5print
.section .init_array,"aw",%init_array
.align 3
.xword _GLOBAL__I_5print
.text
.align 2
.type _GLOBAL__D_5print, %function
_GLOBAL__D_5print:
.LFB4:
.cfi_startproc
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_offset 29, -16
.cfi_offset 30, -8
mov x29, sp
bl gdc.dso_dtor
ldp x29, x30, [sp], 16
.cfi_restore 30
.cfi_restore 29
.cfi_def_cfa_offset 0
ret
.cfi_endproc
.LFE4:
.size _GLOBAL__D_5print, .-_GLOBAL__D_5print
.section .fini_array,"aw",%fini_array
.align 3
.xword _GLOBAL__D_5print
.section .rodata
.align 4
.LC1:
.word 0
.word 0
.word 0
.word 536870912
.align 4
.LC2:
.word 0
.word 0
.word 0
.word 65536
.hidden __stop_minfo
.hidden __start_minfo
.ident "GCC: (Alpine 9.3.0) 9.3.0"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment