Created
July 16, 2018 16:08
-
-
Save valexey/eebb09584c29cc0905ba0fdc878b65d4 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.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