Advertisement
Guest User

gcc -O3 dummyhash.s

a guest
Nov 4th, 2013
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. .file "dummyhash.c"
  2. .text
  3. .p2align 4,,15
  4. .globl dummyhash
  5. .type dummyhash, @function
  6. dummyhash:
  7. .LFB12:
  8. .cfi_startproc
  9. pushq %r13
  10. .cfi_def_cfa_offset 16
  11. .cfi_offset 13, -16
  12. cmpl $3, %esi
  13. movq %rdi, %rax
  14. pushq %r12
  15. .cfi_def_cfa_offset 24
  16. .cfi_offset 12, -24
  17. pushq %rbp
  18. .cfi_def_cfa_offset 32
  19. .cfi_offset 6, -32
  20. pushq %rbx
  21. .cfi_def_cfa_offset 40
  22. .cfi_offset 3, -40
  23. jle .L2
  24. leal -4(%rsi), %ebx
  25. movq %rdi, %r11
  26. movq %rdi, %r8
  27. andl $15, %r11d
  28. movl %esi, %eax
  29. shrl $2, %ebx
  30. shrq $2, %r11
  31. leal 1(%rbx), %ebp
  32. negq %r11
  33. andl $3, %r11d
  34. cmpl %ebp, %r11d
  35. cmova %ebp, %r11d
  36. testl %r11d, %r11d
  37. movl %r11d, %r13d
  38. je .L3
  39. xorl %r9d, %r9d
  40. .p2align 4,,10
  41. .p2align 3
  42. .L4:
  43. movl (%r8), %r10d
  44. addl $1, %r9d
  45. addq $4, %r8
  46. addl %eax, %r10d
  47. subl $4, %eax
  48. xorl %r10d, %edx
  49. cmpl %r9d, %r11d
  50. ja .L4
  51. cmpl %r11d, %ebp
  52. je .L5
  53. .L3:
  54. movl %ebp, %r12d
  55. subl %r11d, %r12d
  56. movl %r12d, %r11d
  57. shrl $2, %r11d
  58. leal 0(,%r11,4), %ebp
  59. testl %ebp, %ebp
  60. je .L19
  61. leal -4(%rax), %r9d
  62. movl %eax, -24(%rsp)
  63. leaq (%rdi,%r13,4), %r10
  64. movdqa .LC0(%rip), %xmm3
  65. movl %r9d, -20(%rsp)
  66. leal -8(%rax), %r9d
  67. movd -20(%rsp), %xmm2
  68. movl %r9d, -16(%rsp)
  69. leal -12(%rax), %r9d
  70. movd -16(%rsp), %xmm1
  71. movl %r9d, -12(%rsp)
  72. xorl %r9d, %r9d
  73. movd -12(%rsp), %xmm0
  74. punpckldq %xmm0, %xmm1
  75. movd -24(%rsp), %xmm0
  76. punpckldq %xmm2, %xmm0
  77. punpcklqdq %xmm1, %xmm0
  78. pxor %xmm1, %xmm1
  79. jmp .L7
  80. .p2align 4,,10
  81. .p2align 3
  82. .L16:
  83. movdqa %xmm2, %xmm0
  84. .L7:
  85. movdqa %xmm0, %xmm2
  86. addl $1, %r9d
  87. paddd (%r10), %xmm0
  88. addq $16, %r10
  89. cmpl %r11d, %r9d
  90. paddd %xmm3, %xmm2
  91. pxor %xmm0, %xmm1
  92. jb .L16
  93. movdqa %xmm1, %xmm0
  94. movl %ebp, %r9d
  95. negl %r9d
  96. psrldq $8, %xmm0
  97. pxor %xmm0, %xmm1
  98. leal (%rax,%r9,4), %eax
  99. movl %ebp, %r9d
  100. leaq (%r8,%r9,4), %r8
  101. movdqa %xmm1, %xmm0
  102. psrldq $4, %xmm0
  103. pxor %xmm0, %xmm1
  104. movd %xmm1, -20(%rsp)
  105. xorl -20(%rsp), %edx
  106. cmpl %ebp, %r12d
  107. je .L5
  108. .p2align 4,,10
  109. .p2align 3
  110. .L19:
  111. movl (%r8), %r9d
  112. addq $4, %r8
  113. addl %eax, %r9d
  114. subl $4, %eax
  115. xorl %r9d, %edx
  116. cmpl $3, %eax
  117. jg .L19
  118. .L5:
  119. movl %ebx, %eax
  120. negl %eax
  121. leal -4(%rsi,%rax,4), %esi
  122. leaq 4(%rdi,%rbx,4), %rax
  123. .L2:
  124. cmpl $2, %esi
  125. je .L12
  126. cmpl $3, %esi
  127. je .L13
  128. cmpl $1, %esi
  129. je .L11
  130. popq %rbx
  131. .cfi_remember_state
  132. .cfi_def_cfa_offset 32
  133. popq %rbp
  134. .cfi_def_cfa_offset 24
  135. popq %r12
  136. .cfi_def_cfa_offset 16
  137. movl %edx, (%rcx)
  138. popq %r13
  139. .cfi_def_cfa_offset 8
  140. ret
  141. .p2align 4,,10
  142. .p2align 3
  143. .L13:
  144. .cfi_restore_state
  145. movzbl (%rax), %esi
  146. addq $1, %rax
  147. addl $3, %esi
  148. sall $24, %esi
  149. xorl %esi, %edx
  150. .L12:
  151. movzbl (%rax), %esi
  152. addq $1, %rax
  153. addl $2, %esi
  154. sall $16, %esi
  155. xorl %esi, %edx
  156. .L11:
  157. movzbl (%rax), %eax
  158. popq %rbx
  159. .cfi_def_cfa_offset 32
  160. popq %rbp
  161. .cfi_def_cfa_offset 24
  162. popq %r12
  163. .cfi_def_cfa_offset 16
  164. addl $1, %eax
  165. xorl %eax, %edx
  166. movl %edx, (%rcx)
  167. popq %r13
  168. .cfi_def_cfa_offset 8
  169. ret
  170. .cfi_endproc
  171. .LFE12:
  172. .size dummyhash, .-dummyhash
  173. .section .rodata.cst16,"aM",@progbits,16
  174. .align 16
  175. .LC0:
  176. .long -16
  177. .long -16
  178. .long -16
  179. .long -16
  180. .ident "GCC: (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3"
  181. .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement