Skip to content

Instantly share code, notes, and snippets.

@y-tag
Created March 12, 2013 21:51
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 y-tag/5147413 to your computer and use it in GitHub Desktop.
Save y-tag/5147413 to your computer and use it in GitHub Desktop.
$ clang++ -o mixed_entropy.clang.64.s -S mixed_entropy.cc -Wall
.file "mixed_entropy.cc"
.text
.globl _Z13mixed_entropydd
.align 16, 0x90
.type _Z13mixed_entropydd,@function
_Z13mixed_entropydd: # @_Z13mixed_entropydd
.Ltmp2:
.cfi_startproc
# BB#0:
pushq %rbp
.Ltmp3:
.cfi_def_cfa_offset 16
.Ltmp4:
.cfi_offset %rbp, -16
movq %rsp, %rbp
.Ltmp5:
.cfi_def_cfa_register %rbp
subq $32, %rsp
pxor %xmm2, %xmm2
movsd %xmm0, -16(%rbp)
movsd %xmm1, -24(%rbp)
movsd -24(%rbp), %xmm0
ucomisd %xmm2, %xmm0
jne .LBB0_2
jp .LBB0_2
# BB#1:
pxor %xmm0, %xmm0
movsd %xmm0, -8(%rbp)
jmp .LBB0_3
.LBB0_2:
movsd -24(%rbp), %xmm0
callq log
movsd -16(%rbp), %xmm1
divsd -24(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -8(%rbp)
.LBB0_3:
movsd -8(%rbp), %xmm0
addq $32, %rsp
popq %rbp
ret
.Ltmp6:
.size _Z13mixed_entropydd, .Ltmp6-_Z13mixed_entropydd
.Ltmp7:
.cfi_endproc
.Leh_func_end0:
.globl main
.align 16, 0x90
.type main,@function
main: # @main
.Ltmp10:
.cfi_startproc
# BB#0:
pushq %rbp
.Ltmp11:
.cfi_def_cfa_offset 16
.Ltmp12:
.cfi_offset %rbp, -16
movq %rsp, %rbp
.Ltmp13:
.cfi_def_cfa_register %rbp
subq $80, %rsp
movl $3, %eax
movabsq $3, %rcx
cvtsi2sdq %rcx, %xmm0
movl $0, -4(%rbp)
movl %edi, -8(%rbp)
movq %rsi, -16(%rbp)
movsd %xmm0, -24(%rbp)
movl %eax, %edi
callq _ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
movl $3, %edi
movabsq $3, %rcx
cvtsi2sdq %rcx, %xmm1
movaps %xmm1, %xmm2
mulsd %xmm0, %xmm2
movsd %xmm2, -32(%rbp)
movsd -32(%rbp), %xmm0
movd %xmm0, %rcx
movabsq $-9223372036854775808, %rsi # imm = 0x8000000000000000
xorq %rcx, %rsi
movd %rsi, %xmm0
divsd %xmm1, %xmm0
movsd %xmm0, -56(%rbp) # 8-byte Spill
callq _ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
leaq .L.str, %rsi
pxor %xmm1, %xmm1
movsd -56(%rbp), %xmm2 # 8-byte Reload
addsd %xmm2, %xmm0
movsd %xmm0, -40(%rbp)
movsd %xmm1, -48(%rbp)
movsd -40(%rbp), %xmm0
movsd %xmm0, -48(%rbp)
movq stdout, %rdi
movsd -48(%rbp), %xmm0
movb $1, %al
callq fprintf
pxor %xmm0, %xmm0
movsd -24(%rbp), %xmm1
ucomisd %xmm0, %xmm1
movl %eax, -60(%rbp) # 4-byte Spill
jne .LBB1_2
jp .LBB1_2
# BB#1:
pxor %xmm0, %xmm0
movsd %xmm0, -72(%rbp) # 8-byte Spill
jmp .LBB1_3
.LBB1_2:
movsd -24(%rbp), %xmm0
callq log
movsd -32(%rbp), %xmm1
divsd -24(%rbp), %xmm1
subsd %xmm1, %xmm0
movsd %xmm0, -72(%rbp) # 8-byte Spill
.LBB1_3:
movsd -72(%rbp), %xmm0 # 8-byte Reload
leaq .L.str, %rsi
movsd %xmm0, -48(%rbp)
movq stdout, %rdi
movsd -48(%rbp), %xmm0
movb $1, %al
callq fprintf
movsd -32(%rbp), %xmm0
movsd -24(%rbp), %xmm1
movl %eax, -76(%rbp) # 4-byte Spill
callq _Z13mixed_entropydd
leaq .L.str, %rsi
movsd %xmm0, -48(%rbp)
movq stdout, %rdi
movsd -48(%rbp), %xmm0
movb $1, %al
callq fprintf
movl $0, %ecx
movl %eax, -80(%rbp) # 4-byte Spill
movl %ecx, %eax
addq $80, %rsp
popq %rbp
ret
.Ltmp14:
.size main, .Ltmp14-main
.Ltmp15:
.cfi_endproc
.Leh_func_end1:
.section .text._ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,"axG",@progbits,_ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,comdat
.weak _ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.align 16, 0x90
.type _ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_,@function
_ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_: # @_ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.Ltmp18:
.cfi_startproc
# BB#0:
pushq %rbp
.Ltmp19:
.cfi_def_cfa_offset 16
.Ltmp20:
.cfi_offset %rbp, -16
movq %rsp, %rbp
.Ltmp21:
.cfi_def_cfa_register %rbp
subq $16, %rsp
movl %edi, -4(%rbp)
cvtsi2sd -4(%rbp), %xmm0
callq log
addq $16, %rsp
popq %rbp
ret
.Ltmp22:
.size _ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_, .Ltmp22-_ZSt3logIiEN9__gnu_cxx11__enable_ifIXsr12__is_integerIT_EE7__valueEdE6__typeES2_
.Ltmp23:
.cfi_endproc
.Leh_func_end2:
.type .L.str,@object # @.str
.section .rodata.str1.1,"aMS",@progbits,1
.L.str:
.asciz "d = %g\n"
.size .L.str, 8
.section ".note.GNU-stack","",@progbits
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment