Skip to content

Instantly share code, notes, and snippets.

@valexey
Created July 16, 2018 16:08
Show Gist options
  • Save valexey/eebb09584c29cc0905ba0fdc878b65d4 to your computer and use it in GitHub Desktop.
Save valexey/eebb09584c29cc0905ba0fdc878b65d4 to your computer and use it in GitHub Desktop.
.file "hello.adb"
# GNU Ada (Ubuntu 4.9.3-3ubuntu5) version 4.9.3 (x86_64-linux-gnu)
# compiled by GNU C version 4.9.3, GMP version 6.1.0, MPFR version 3.1.3-p5, MPC version 1.0.3
# warning: MPFR header version 3.1.3-p5 differs from library version 3.1.4.
# GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
# options passed: -fverbose-asm -gnatez -gnatea -gnatez -mtune=generic
# -march=x86-64 hello.adb
# options enabled: -faggressive-loop-optimizations
# -fasynchronous-unwind-tables -fauto-inc-dec -fcommon
# -fdelete-dead-exceptions -fdelete-null-pointer-checks -fdwarf2-cfi-asm
# -fearly-inlining -feliminate-unused-debug-types -ffunction-cse -fgcse-lm
# -fgnu-runtime -fgnu-unique -fident -finline-atomics -fira-hoist-pressure
# -fira-share-save-slots -fira-share-spill-slots -fivopts
# -fkeep-static-consts -fleading-underscore -flifetime-dse -fmath-errno
# -fmerge-debug-strings -fpeephole -fprefetch-loop-arrays
# -freg-struct-return -fsched-critical-path-heuristic
# -fsched-dep-count-heuristic -fsched-group-heuristic -fsched-interblock
# -fsched-last-insn-heuristic -fsched-rank-heuristic -fsched-spec
# -fsched-spec-insn-heuristic -fsched-stalled-insns-dep -fshow-column
# -fsigned-zeros -fsplit-ivs-in-unroller -fstrict-volatile-bitfields
# -fsync-libcalls -ftrapping-math -ftree-coalesce-vars -ftree-cselim
# -ftree-forwprop -ftree-loop-if-convert -ftree-loop-im -ftree-loop-ivcanon
# -ftree-loop-optimize -ftree-parallelize-loops= -ftree-phiprop
# -ftree-reassoc -ftree-scev-cprop -funit-at-a-time -funwind-tables
# -fverbose-asm -m128bit-long-double -m64 -m80387 -malign-stringops
# -mavx256-split-unaligned-load -mavx256-split-unaligned-store
# -mfancy-math-387 -mfp-ret-in-387 -mfxsr -mglibc -mieee-fp
# -mlong-double-80 -mmmx -mno-sse4 -mpush-args -mred-zone -msse -msse2
# -mtls-direct-seg-refs
.text
.type hello__f1.3030, @function
hello__f1.3030:
.LFB2:
.cfi_startproc
pushq %rbp #
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp #,
.cfi_def_cfa_register 6
movq %r10, %rax # CHAIN.3, CHAIN.3
movss (%rax), %xmm1 # CHAIN.3_1(D)->a, D.3090
pxor %xmm0, %xmm0 # tmp90
mulss %xmm1, %xmm0 # D.3090, D.3090
pxor %xmm1, %xmm1 # tmp91
mulss %xmm1, %xmm0 # tmp91, D.3090
pxor %xmm1, %xmm1 # tmp92
addss %xmm1, %xmm0 # tmp92, D.3090
pxor %xmm1, %xmm1 # tmp93
addss %xmm1, %xmm0 # tmp93, D.3090
popq %rbp #
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE2:
.size hello__f1.3030, .-hello__f1.3030
.section .rodata
.LC2:
.ascii "Hello"
.align 4
.LC0:
# LB0:
.long 1
# UB0:
.long 5
.text
.globl _ada_hello
.type _ada_hello, @function
_ada_hello:
.LFB1:
.cfi_startproc
pushq %rbp #
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp #,
.cfi_def_cfa_register 6
pushq %r13 #
pushq %r12 #
pushq %rbx #
subq $56, %rsp #,
.cfi_offset 13, -24
.cfi_offset 12, -32
.cfi_offset 3, -40
movl .LC1(%rip), %eax #, D.3091
movl %eax, -64(%rbp) # D.3091, FRAME.2.a
movl .LC1(%rip), %eax #, tmp88
movl %eax, -36(%rbp) # tmp88, y
movl .LC1(%rip), %eax #, tmp89
movl %eax, -40(%rbp) # tmp89, b
movl .LC1(%rip), %eax #, tmp90
movl %eax, -44(%rbp) # tmp90, c
movl .LC1(%rip), %eax #, tmp91
movl %eax, -48(%rbp) # tmp91, d
leaq -64(%rbp), %rax #, tmp92
movq %rax, %r10 # tmp92,
call hello__f1.3030 #
movss %xmm0, -68(%rbp) #, %sfp
leaq -64(%rbp), %rax #, tmp93
movq %rax, %r10 # tmp93,
call hello__f2.3032 #
movaps %xmm0, %xmm1 # D.3091, D.3091
addss -68(%rbp), %xmm1 # %sfp, D.3091
movd %xmm1, %eax # D.3091, D.3091
movl %eax, -64(%rbp) # D.3091, FRAME.2.a
movl $.LC2, %r12d #, D.3059
movl $.LC0, %r13d #, D.3059
movq %r12, %rcx # D.3059, tmp94
movq %r13, %rbx # D.3059,
movq %r12, %rax # D.3059, tmp95
movq %r13, %rdx # D.3059,
movq %rdx, %rax #, tmp97
movq %rcx, %rdi # tmp96,
movq %rax, %rsi # tmp97,
call ada__text_io__put_line__2 #
nop
addq $56, %rsp #,
popq %rbx #
popq %r12 #
popq %r13 #
popq %rbp #
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE1:
.size _ada_hello, .-_ada_hello
.type hello__f2.3032, @function
hello__f2.3032:
.LFB3:
.cfi_startproc
pushq %rbp #
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp #,
.cfi_def_cfa_register 6
movq %r10, %rax # CHAIN.4, CHAIN.4
movss (%rax), %xmm1 # CHAIN.4_1(D)->a, D.3094
pxor %xmm0, %xmm0 # tmp90
mulss %xmm1, %xmm0 # D.3094, D.3094
pxor %xmm1, %xmm1 # tmp91
addss %xmm1, %xmm0 # tmp91, D.3094
pxor %xmm1, %xmm1 # tmp92
mulss %xmm1, %xmm0 # tmp92, D.3094
pxor %xmm1, %xmm1 # tmp93
addss %xmm1, %xmm0 # tmp93, D.3094
popq %rbp #
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE3:
.size hello__f2.3032, .-hello__f2.3032
.section .rodata
.align 4
.LC1:
.long 0
.ident "GCC: (Ubuntu 4.9.3-3ubuntu5) 4.9.3"
.section .note.GNU-stack,"",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment