ruby_nacl 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (499) hide show
  1. data/Changelog +0 -0
  2. data/README.md +49 -0
  3. data/ext/ruby_nacl/NaCl/MACROS +56 -0
  4. data/ext/ruby_nacl/NaCl/OPERATIONS +11 -0
  5. data/ext/ruby_nacl/NaCl/PROTOTYPES.c +26 -0
  6. data/ext/ruby_nacl/NaCl/PROTOTYPES.cpp +17 -0
  7. data/ext/ruby_nacl/NaCl/README +1 -0
  8. data/ext/ruby_nacl/NaCl/commandline/nacl-sha256.c +64 -0
  9. data/ext/ruby_nacl/NaCl/commandline/nacl-sha512.c +64 -0
  10. data/ext/ruby_nacl/NaCl/cpucycles/alpha.c +80 -0
  11. data/ext/ruby_nacl/NaCl/cpucycles/alpha.h +27 -0
  12. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.c +16 -0
  13. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuinfo.h +27 -0
  14. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.c +25 -0
  15. data/ext/ruby_nacl/NaCl/cpucycles/amd64cpuspeed.h +27 -0
  16. data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.c +18 -0
  17. data/ext/ruby_nacl/NaCl/cpucycles/amd64tscfreq.h +27 -0
  18. data/ext/ruby_nacl/NaCl/cpucycles/celllinux.c +83 -0
  19. data/ext/ruby_nacl/NaCl/cpucycles/celllinux.h +27 -0
  20. data/ext/ruby_nacl/NaCl/cpucycles/cortex.c +73 -0
  21. data/ext/ruby_nacl/NaCl/cpucycles/cortex.h +27 -0
  22. data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.c +62 -0
  23. data/ext/ruby_nacl/NaCl/cpucycles/dev4ns.h +27 -0
  24. data/ext/ruby_nacl/NaCl/cpucycles/do +105 -0
  25. data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.c +32 -0
  26. data/ext/ruby_nacl/NaCl/cpucycles/gettimeofday.h +27 -0
  27. data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.c +26 -0
  28. data/ext/ruby_nacl/NaCl/cpucycles/hppapstat.h +27 -0
  29. data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.c +15 -0
  30. data/ext/ruby_nacl/NaCl/cpucycles/ia64cpuinfo.h +27 -0
  31. data/ext/ruby_nacl/NaCl/cpucycles/mips.c +65 -0
  32. data/ext/ruby_nacl/NaCl/cpucycles/mips.h +27 -0
  33. data/ext/ruby_nacl/NaCl/cpucycles/monotonic.c +34 -0
  34. data/ext/ruby_nacl/NaCl/cpucycles/monotonic.h +27 -0
  35. data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.c +33 -0
  36. data/ext/ruby_nacl/NaCl/cpucycles/monotoniccpuinfo.h +27 -0
  37. data/ext/ruby_nacl/NaCl/cpucycles/osfreq.c +65 -0
  38. data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.c +95 -0
  39. data/ext/ruby_nacl/NaCl/cpucycles/powerpccpuinfo.h +27 -0
  40. data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.c +42 -0
  41. data/ext/ruby_nacl/NaCl/cpucycles/powerpcmacos.h +27 -0
  42. data/ext/ruby_nacl/NaCl/cpucycles/sgi.c +38 -0
  43. data/ext/ruby_nacl/NaCl/cpucycles/sgi.h +27 -0
  44. data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.c +16 -0
  45. data/ext/ruby_nacl/NaCl/cpucycles/sparc32cpuinfo.h +27 -0
  46. data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.c +15 -0
  47. data/ext/ruby_nacl/NaCl/cpucycles/sparccpuinfo.h +27 -0
  48. data/ext/ruby_nacl/NaCl/cpucycles/test.c +77 -0
  49. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.c +15 -0
  50. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuinfo.h +27 -0
  51. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.c +24 -0
  52. data/ext/ruby_nacl/NaCl/cpucycles/x86cpuspeed.h +27 -0
  53. data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.c +59 -0
  54. data/ext/ruby_nacl/NaCl/cpucycles/x86estimate.h +27 -0
  55. data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.c +17 -0
  56. data/ext/ruby_nacl/NaCl/cpucycles/x86tscfreq.h +27 -0
  57. data/ext/ruby_nacl/NaCl/cpuid/cbytes.c +16 -0
  58. data/ext/ruby_nacl/NaCl/cpuid/cpuid.c +41 -0
  59. data/ext/ruby_nacl/NaCl/cpuid/do +37 -0
  60. data/ext/ruby_nacl/NaCl/cpuid/unknown.c +7 -0
  61. data/ext/ruby_nacl/NaCl/cpuid/x86.c +41 -0
  62. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/checksum +1 -0
  63. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/api.h +2 -0
  64. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/hmac.c +83 -0
  65. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/ref/verify.c +9 -0
  66. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha256/used +0 -0
  67. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/checksum +1 -0
  68. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/api.h +2 -0
  69. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/hmac.c +86 -0
  70. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/ref/verify.c +9 -0
  71. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/selected +0 -0
  72. data/ext/ruby_nacl/NaCl/crypto_auth/hmacsha512256/used +0 -0
  73. data/ext/ruby_nacl/NaCl/crypto_auth/measure.c +69 -0
  74. data/ext/ruby_nacl/NaCl/crypto_auth/try.c +119 -0
  75. data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-auth.cpp +11 -0
  76. data/ext/ruby_nacl/NaCl/crypto_auth/wrapper-verify.cpp +14 -0
  77. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/checksum +1 -0
  78. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/after.c +22 -0
  79. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/api.h +6 -0
  80. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/before.c +17 -0
  81. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/box.c +27 -0
  82. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/ref/keypair.c +12 -0
  83. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/selected +0 -0
  84. data/ext/ruby_nacl/NaCl/crypto_box/curve25519xsalsa20poly1305/used +0 -0
  85. data/ext/ruby_nacl/NaCl/crypto_box/measure.c +137 -0
  86. data/ext/ruby_nacl/NaCl/crypto_box/try.c +195 -0
  87. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-box.cpp +24 -0
  88. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-keypair.cpp +12 -0
  89. data/ext/ruby_nacl/NaCl/crypto_box/wrapper-open.cpp +27 -0
  90. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/checksum +1 -0
  91. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/api.h +4 -0
  92. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/core.c +135 -0
  93. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref/implementors +1 -0
  94. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/api.h +4 -0
  95. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/core.c +108 -0
  96. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/ref2/implementors +1 -0
  97. data/ext/ruby_nacl/NaCl/crypto_core/hsalsa20/used +0 -0
  98. data/ext/ruby_nacl/NaCl/crypto_core/measure.c +18 -0
  99. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/checksum +1 -0
  100. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/api.h +4 -0
  101. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/core.c +134 -0
  102. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/ref/implementors +1 -0
  103. data/ext/ruby_nacl/NaCl/crypto_core/salsa20/used +0 -0
  104. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/checksum +1 -0
  105. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/api.h +4 -0
  106. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/core.c +134 -0
  107. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/ref/implementors +1 -0
  108. data/ext/ruby_nacl/NaCl/crypto_core/salsa2012/used +0 -0
  109. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/checksum +1 -0
  110. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/api.h +4 -0
  111. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/core.c +134 -0
  112. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/ref/implementors +1 -0
  113. data/ext/ruby_nacl/NaCl/crypto_core/salsa208/used +0 -0
  114. data/ext/ruby_nacl/NaCl/crypto_core/try.c +116 -0
  115. data/ext/ruby_nacl/NaCl/crypto_core/wrapper-empty.cpp +0 -0
  116. data/ext/ruby_nacl/NaCl/crypto_hash/measure.c +66 -0
  117. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/checksum +1 -0
  118. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/api.h +1 -0
  119. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/hash.c +69 -0
  120. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/ref/implementors +1 -0
  121. data/ext/ruby_nacl/NaCl/crypto_hash/sha256/used +0 -0
  122. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/checksum +1 -0
  123. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/api.h +1 -0
  124. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/hash.c +71 -0
  125. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/ref/implementors +1 -0
  126. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/selected +0 -0
  127. data/ext/ruby_nacl/NaCl/crypto_hash/sha512/used +0 -0
  128. data/ext/ruby_nacl/NaCl/crypto_hash/try.c +77 -0
  129. data/ext/ruby_nacl/NaCl/crypto_hash/wrapper-hash.cpp +10 -0
  130. data/ext/ruby_nacl/NaCl/crypto_hashblocks/measure.c +18 -0
  131. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/checksum +1 -0
  132. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/api.h +2 -0
  133. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/blocks.c +228 -0
  134. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/inplace/implementors +1 -0
  135. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/api.h +2 -0
  136. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/blocks.c +212 -0
  137. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/ref/implementors +1 -0
  138. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha256/used +0 -0
  139. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/checksum +1 -0
  140. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/api.h +2 -0
  141. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/blocks.c +256 -0
  142. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/inplace/implementors +1 -0
  143. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/api.h +2 -0
  144. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/blocks.c +239 -0
  145. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/ref/implementors +1 -0
  146. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/selected +0 -0
  147. data/ext/ruby_nacl/NaCl/crypto_hashblocks/sha512/used +0 -0
  148. data/ext/ruby_nacl/NaCl/crypto_hashblocks/try.c +79 -0
  149. data/ext/ruby_nacl/NaCl/crypto_hashblocks/wrapper-empty.cpp +0 -0
  150. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/measure.c +69 -0
  151. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/api.h +2 -0
  152. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/auth.c +1616 -0
  153. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/53/verify.c +9 -0
  154. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/api.h +2 -0
  155. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/auth.s +2787 -0
  156. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/constants.s +85 -0
  157. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/amd64/verify.c +9 -0
  158. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/checksum +1 -0
  159. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/api.h +2 -0
  160. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/auth.c +104 -0
  161. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/ref/verify.c +9 -0
  162. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/selected +0 -0
  163. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/used +0 -0
  164. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/api.h +2 -0
  165. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/auth.s +2779 -0
  166. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/constants.s +85 -0
  167. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/poly1305/x86/verify.c +9 -0
  168. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/try.c +119 -0
  169. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-auth.cpp +11 -0
  170. data/ext/ruby_nacl/NaCl/crypto_onetimeauth/wrapper-verify.cpp +14 -0
  171. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/api.h +2 -0
  172. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/base.c +8 -0
  173. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/const.s +114 -0
  174. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/fromdouble.s +195 -0
  175. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/implementors +1 -0
  176. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/init.s +13 -0
  177. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mainloop.s +3990 -0
  178. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/mult.s +410 -0
  179. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/smult.c +91 -0
  180. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/square.s +298 -0
  181. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/athlon/todouble.s +144 -0
  182. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/checksum +1 -0
  183. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/api.h +2 -0
  184. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/base.c +8 -0
  185. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/implementors +1 -0
  186. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/donna_c64/smult.c +477 -0
  187. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/api.h +2 -0
  188. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/base.c +16 -0
  189. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/implementors +1 -0
  190. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/ref/smult.c +265 -0
  191. data/ext/ruby_nacl/NaCl/crypto_scalarmult/curve25519/used +0 -0
  192. data/ext/ruby_nacl/NaCl/crypto_scalarmult/measure.c +61 -0
  193. data/ext/ruby_nacl/NaCl/crypto_scalarmult/try.c +126 -0
  194. data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-base.cpp +11 -0
  195. data/ext/ruby_nacl/NaCl/crypto_scalarmult/wrapper-mult.cpp +12 -0
  196. data/ext/ruby_nacl/NaCl/crypto_secretbox/measure.c +75 -0
  197. data/ext/ruby_nacl/NaCl/crypto_secretbox/try.c +129 -0
  198. data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-box.cpp +19 -0
  199. data/ext/ruby_nacl/NaCl/crypto_secretbox/wrapper-open.cpp +22 -0
  200. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/checksum +1 -0
  201. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/api.h +4 -0
  202. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/ref/box.c +35 -0
  203. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/selected +0 -0
  204. data/ext/ruby_nacl/NaCl/crypto_secretbox/xsalsa20poly1305/used +0 -0
  205. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/api.h +3 -0
  206. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.c +345 -0
  207. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/fe25519.h +54 -0
  208. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.c +227 -0
  209. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/ge25519.h +34 -0
  210. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.c +146 -0
  211. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sc25519.h +51 -0
  212. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/ref/sign.c +103 -0
  213. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/selected +0 -0
  214. data/ext/ruby_nacl/NaCl/crypto_sign/edwards25519sha512batch/used +0 -0
  215. data/ext/ruby_nacl/NaCl/crypto_sign/measure.c +83 -0
  216. data/ext/ruby_nacl/NaCl/crypto_sign/try.c +86 -0
  217. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-keypair.cpp +12 -0
  218. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign-open.cpp +24 -0
  219. data/ext/ruby_nacl/NaCl/crypto_sign/wrapper-sign.cpp +23 -0
  220. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/checksum +1 -0
  221. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/afternm.s +12308 -0
  222. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/api.h +3 -0
  223. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/beforenm.s +13694 -0
  224. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/stream.c +14 -0
  225. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor.c +15 -0
  226. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/core2/xor_afternm.s +12407 -0
  227. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/afternm.c +158 -0
  228. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/api.h +3 -0
  229. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/beforenm.c +59 -0
  230. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.c +64 -0
  231. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/common.h +788 -0
  232. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.c +14 -0
  233. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/consts.h +28 -0
  234. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.c +128 -0
  235. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/int128.h +47 -0
  236. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/stream.c +28 -0
  237. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/types.h +10 -0
  238. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/portable/xor_afternm.c +180 -0
  239. data/ext/ruby_nacl/NaCl/crypto_stream/aes128ctr/used +0 -0
  240. data/ext/ruby_nacl/NaCl/crypto_stream/measure.c +73 -0
  241. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/api.h +2 -0
  242. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/implementors +1 -0
  243. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/amd64_xmm6/stream.s +4823 -0
  244. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/checksum +1 -0
  245. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/api.h +2 -0
  246. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/implementors +1 -0
  247. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/stream.c +49 -0
  248. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/ref/xor.c +52 -0
  249. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/used +0 -0
  250. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/api.h +2 -0
  251. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/implementors +1 -0
  252. data/ext/ruby_nacl/NaCl/crypto_stream/salsa20/x86_xmm5/stream.s +5078 -0
  253. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/api.h +2 -0
  254. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/implementors +1 -0
  255. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/amd64_xmm6/stream.s +4823 -0
  256. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/checksum +1 -0
  257. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/api.h +2 -0
  258. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/implementors +1 -0
  259. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/stream.c +49 -0
  260. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/ref/xor.c +52 -0
  261. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/used +0 -0
  262. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/api.h +2 -0
  263. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/implementors +1 -0
  264. data/ext/ruby_nacl/NaCl/crypto_stream/salsa2012/x86_xmm5/stream.s +5078 -0
  265. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/api.h +2 -0
  266. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/implementors +1 -0
  267. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/amd64_xmm6/stream.s +4823 -0
  268. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/checksum +1 -0
  269. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/api.h +2 -0
  270. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/implementors +1 -0
  271. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/stream.c +49 -0
  272. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/ref/xor.c +52 -0
  273. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/used +0 -0
  274. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/api.h +2 -0
  275. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/implementors +1 -0
  276. data/ext/ruby_nacl/NaCl/crypto_stream/salsa208/x86_xmm5/stream.s +5078 -0
  277. data/ext/ruby_nacl/NaCl/crypto_stream/try.c +124 -0
  278. data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-stream.cpp +12 -0
  279. data/ext/ruby_nacl/NaCl/crypto_stream/wrapper-xor.cpp +17 -0
  280. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/checksum +1 -0
  281. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/api.h +2 -0
  282. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/implementors +1 -0
  283. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/stream.c +22 -0
  284. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/ref/xor.c +23 -0
  285. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/selected +0 -0
  286. data/ext/ruby_nacl/NaCl/crypto_stream/xsalsa20/used +0 -0
  287. data/ext/ruby_nacl/NaCl/crypto_stream.h +18 -0
  288. data/ext/ruby_nacl/NaCl/crypto_stream_aes128ctr.h +33 -0
  289. data/ext/ruby_nacl/NaCl/crypto_verify/16/checksum +1 -0
  290. data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/api.h +1 -0
  291. data/ext/ruby_nacl/NaCl/crypto_verify/16/ref/verify.c +24 -0
  292. data/ext/ruby_nacl/NaCl/crypto_verify/16/used +0 -0
  293. data/ext/ruby_nacl/NaCl/crypto_verify/32/checksum +1 -0
  294. data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/api.h +1 -0
  295. data/ext/ruby_nacl/NaCl/crypto_verify/32/ref/verify.c +40 -0
  296. data/ext/ruby_nacl/NaCl/crypto_verify/32/used +0 -0
  297. data/ext/ruby_nacl/NaCl/crypto_verify/measure.c +18 -0
  298. data/ext/ruby_nacl/NaCl/crypto_verify/try.c +75 -0
  299. data/ext/ruby_nacl/NaCl/crypto_verify/wrapper-empty.cpp +0 -0
  300. data/ext/ruby_nacl/NaCl/curvecp/LIBS +31 -0
  301. data/ext/ruby_nacl/NaCl/curvecp/README +10 -0
  302. data/ext/ruby_nacl/NaCl/curvecp/SOURCES +36 -0
  303. data/ext/ruby_nacl/NaCl/curvecp/TARGETS +5 -0
  304. data/ext/ruby_nacl/NaCl/curvecp/blocking.c +12 -0
  305. data/ext/ruby_nacl/NaCl/curvecp/blocking.h +7 -0
  306. data/ext/ruby_nacl/NaCl/curvecp/byte.h +8 -0
  307. data/ext/ruby_nacl/NaCl/curvecp/byte_copy.c +8 -0
  308. data/ext/ruby_nacl/NaCl/curvecp/byte_isequal.c +10 -0
  309. data/ext/ruby_nacl/NaCl/curvecp/byte_zero.c +7 -0
  310. data/ext/ruby_nacl/NaCl/curvecp/crypto_block.c +35 -0
  311. data/ext/ruby_nacl/NaCl/curvecp/crypto_block.h +4 -0
  312. data/ext/ruby_nacl/NaCl/curvecp/curvecpclient.c +476 -0
  313. data/ext/ruby_nacl/NaCl/curvecp/curvecpmakekey.c +57 -0
  314. data/ext/ruby_nacl/NaCl/curvecp/curvecpmessage.c +654 -0
  315. data/ext/ruby_nacl/NaCl/curvecp/curvecpprintkey.c +46 -0
  316. data/ext/ruby_nacl/NaCl/curvecp/curvecpserver.c +497 -0
  317. data/ext/ruby_nacl/NaCl/curvecp/die.c +42 -0
  318. data/ext/ruby_nacl/NaCl/curvecp/die.h +16 -0
  319. data/ext/ruby_nacl/NaCl/curvecp/e.c +106 -0
  320. data/ext/ruby_nacl/NaCl/curvecp/e.h +438 -0
  321. data/ext/ruby_nacl/NaCl/curvecp/hexparse.c +25 -0
  322. data/ext/ruby_nacl/NaCl/curvecp/hexparse.h +6 -0
  323. data/ext/ruby_nacl/NaCl/curvecp/load.c +33 -0
  324. data/ext/ruby_nacl/NaCl/curvecp/load.h +6 -0
  325. data/ext/ruby_nacl/NaCl/curvecp/nameparse.c +19 -0
  326. data/ext/ruby_nacl/NaCl/curvecp/nameparse.h +6 -0
  327. data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.c +27 -0
  328. data/ext/ruby_nacl/NaCl/curvecp/nanoseconds.h +6 -0
  329. data/ext/ruby_nacl/NaCl/curvecp/open.h +10 -0
  330. data/ext/ruby_nacl/NaCl/curvecp/open_cwd.c +6 -0
  331. data/ext/ruby_nacl/NaCl/curvecp/open_lock.c +19 -0
  332. data/ext/ruby_nacl/NaCl/curvecp/open_pipe.c +15 -0
  333. data/ext/ruby_nacl/NaCl/curvecp/open_read.c +17 -0
  334. data/ext/ruby_nacl/NaCl/curvecp/open_write.c +17 -0
  335. data/ext/ruby_nacl/NaCl/curvecp/portparse.c +14 -0
  336. data/ext/ruby_nacl/NaCl/curvecp/portparse.h +6 -0
  337. data/ext/ruby_nacl/NaCl/curvecp/randommod.c +14 -0
  338. data/ext/ruby_nacl/NaCl/curvecp/randommod.h +6 -0
  339. data/ext/ruby_nacl/NaCl/curvecp/safenonce.c +74 -0
  340. data/ext/ruby_nacl/NaCl/curvecp/safenonce.h +6 -0
  341. data/ext/ruby_nacl/NaCl/curvecp/savesync.c +24 -0
  342. data/ext/ruby_nacl/NaCl/curvecp/savesync.h +6 -0
  343. data/ext/ruby_nacl/NaCl/curvecp/socket.h +9 -0
  344. data/ext/ruby_nacl/NaCl/curvecp/socket_bind.c +15 -0
  345. data/ext/ruby_nacl/NaCl/curvecp/socket_recv.c +23 -0
  346. data/ext/ruby_nacl/NaCl/curvecp/socket_send.c +19 -0
  347. data/ext/ruby_nacl/NaCl/curvecp/socket_udp.c +36 -0
  348. data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.c +7 -0
  349. data/ext/ruby_nacl/NaCl/curvecp/uint16_pack.h +8 -0
  350. data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.c +9 -0
  351. data/ext/ruby_nacl/NaCl/curvecp/uint16_unpack.h +8 -0
  352. data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.c +9 -0
  353. data/ext/ruby_nacl/NaCl/curvecp/uint32_pack.h +8 -0
  354. data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.c +11 -0
  355. data/ext/ruby_nacl/NaCl/curvecp/uint32_unpack.h +8 -0
  356. data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.c +13 -0
  357. data/ext/ruby_nacl/NaCl/curvecp/uint64_pack.h +8 -0
  358. data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.c +15 -0
  359. data/ext/ruby_nacl/NaCl/curvecp/uint64_unpack.h +8 -0
  360. data/ext/ruby_nacl/NaCl/curvecp/writeall.c +27 -0
  361. data/ext/ruby_nacl/NaCl/curvecp/writeall.h +6 -0
  362. data/ext/ruby_nacl/NaCl/do +468 -0
  363. data/ext/ruby_nacl/NaCl/inttypes/crypto_int16.c +3 -0
  364. data/ext/ruby_nacl/NaCl/inttypes/crypto_int32.c +3 -0
  365. data/ext/ruby_nacl/NaCl/inttypes/crypto_int64.c +3 -0
  366. data/ext/ruby_nacl/NaCl/inttypes/crypto_int8.c +3 -0
  367. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint16.c +3 -0
  368. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint32.c +3 -0
  369. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint64.c +3 -0
  370. data/ext/ruby_nacl/NaCl/inttypes/crypto_uint8.c +3 -0
  371. data/ext/ruby_nacl/NaCl/inttypes/do +47 -0
  372. data/ext/ruby_nacl/NaCl/inttypes/signed.h +17 -0
  373. data/ext/ruby_nacl/NaCl/inttypes/unsigned.h +17 -0
  374. data/ext/ruby_nacl/NaCl/measure-anything.c +225 -0
  375. data/ext/ruby_nacl/NaCl/okcompilers/abiname.c +45 -0
  376. data/ext/ruby_nacl/NaCl/okcompilers/archivers +2 -0
  377. data/ext/ruby_nacl/NaCl/okcompilers/c +8 -0
  378. data/ext/ruby_nacl/NaCl/okcompilers/cpp +8 -0
  379. data/ext/ruby_nacl/NaCl/okcompilers/do +196 -0
  380. data/ext/ruby_nacl/NaCl/okcompilers/lib.c +29 -0
  381. data/ext/ruby_nacl/NaCl/okcompilers/lib.cpp +19 -0
  382. data/ext/ruby_nacl/NaCl/okcompilers/main.c +25 -0
  383. data/ext/ruby_nacl/NaCl/okcompilers/main.cpp +22 -0
  384. data/ext/ruby_nacl/NaCl/randombytes/devurandom.c +34 -0
  385. data/ext/ruby_nacl/NaCl/randombytes/devurandom.h +24 -0
  386. data/ext/ruby_nacl/NaCl/randombytes/do +43 -0
  387. data/ext/ruby_nacl/NaCl/randombytes/test.c +15 -0
  388. data/ext/ruby_nacl/NaCl/tests/auth.c +19 -0
  389. data/ext/ruby_nacl/NaCl/tests/auth.out +4 -0
  390. data/ext/ruby_nacl/NaCl/tests/auth2.c +34 -0
  391. data/ext/ruby_nacl/NaCl/tests/auth2.out +4 -0
  392. data/ext/ruby_nacl/NaCl/tests/auth3.c +34 -0
  393. data/ext/ruby_nacl/NaCl/tests/auth3.out +1 -0
  394. data/ext/ruby_nacl/NaCl/tests/auth4.cpp +44 -0
  395. data/ext/ruby_nacl/NaCl/tests/auth4.out +1 -0
  396. data/ext/ruby_nacl/NaCl/tests/auth5.c +36 -0
  397. data/ext/ruby_nacl/NaCl/tests/auth5.out +0 -0
  398. data/ext/ruby_nacl/NaCl/tests/auth6.cpp +46 -0
  399. data/ext/ruby_nacl/NaCl/tests/auth6.out +0 -0
  400. data/ext/ruby_nacl/NaCl/tests/box.c +63 -0
  401. data/ext/ruby_nacl/NaCl/tests/box.out +19 -0
  402. data/ext/ruby_nacl/NaCl/tests/box2.c +64 -0
  403. data/ext/ruby_nacl/NaCl/tests/box2.out +17 -0
  404. data/ext/ruby_nacl/NaCl/tests/box3.cpp +60 -0
  405. data/ext/ruby_nacl/NaCl/tests/box3.out +19 -0
  406. data/ext/ruby_nacl/NaCl/tests/box4.cpp +66 -0
  407. data/ext/ruby_nacl/NaCl/tests/box4.out +17 -0
  408. data/ext/ruby_nacl/NaCl/tests/box5.cpp +30 -0
  409. data/ext/ruby_nacl/NaCl/tests/box5.out +0 -0
  410. data/ext/ruby_nacl/NaCl/tests/box6.cpp +43 -0
  411. data/ext/ruby_nacl/NaCl/tests/box6.out +0 -0
  412. data/ext/ruby_nacl/NaCl/tests/box7.c +36 -0
  413. data/ext/ruby_nacl/NaCl/tests/box7.out +0 -0
  414. data/ext/ruby_nacl/NaCl/tests/box8.c +41 -0
  415. data/ext/ruby_nacl/NaCl/tests/box8.out +0 -0
  416. data/ext/ruby_nacl/NaCl/tests/core1.c +30 -0
  417. data/ext/ruby_nacl/NaCl/tests/core1.out +4 -0
  418. data/ext/ruby_nacl/NaCl/tests/core2.c +33 -0
  419. data/ext/ruby_nacl/NaCl/tests/core2.out +4 -0
  420. data/ext/ruby_nacl/NaCl/tests/core3.c +41 -0
  421. data/ext/ruby_nacl/NaCl/tests/core3.out +1 -0
  422. data/ext/ruby_nacl/NaCl/tests/core4.c +33 -0
  423. data/ext/ruby_nacl/NaCl/tests/core4.out +8 -0
  424. data/ext/ruby_nacl/NaCl/tests/core5.c +32 -0
  425. data/ext/ruby_nacl/NaCl/tests/core5.out +4 -0
  426. data/ext/ruby_nacl/NaCl/tests/core6.c +47 -0
  427. data/ext/ruby_nacl/NaCl/tests/core6.out +4 -0
  428. data/ext/ruby_nacl/NaCl/tests/hash.c +14 -0
  429. data/ext/ruby_nacl/NaCl/tests/hash.out +1 -0
  430. data/ext/ruby_nacl/NaCl/tests/hash2.cpp +18 -0
  431. data/ext/ruby_nacl/NaCl/tests/hash2.out +1 -0
  432. data/ext/ruby_nacl/NaCl/tests/hash3.c +14 -0
  433. data/ext/ruby_nacl/NaCl/tests/hash3.out +1 -0
  434. data/ext/ruby_nacl/NaCl/tests/hash4.cpp +18 -0
  435. data/ext/ruby_nacl/NaCl/tests/hash4.out +1 -0
  436. data/ext/ruby_nacl/NaCl/tests/onetimeauth.c +42 -0
  437. data/ext/ruby_nacl/NaCl/tests/onetimeauth.out +2 -0
  438. data/ext/ruby_nacl/NaCl/tests/onetimeauth2.c +40 -0
  439. data/ext/ruby_nacl/NaCl/tests/onetimeauth2.out +1 -0
  440. data/ext/ruby_nacl/NaCl/tests/onetimeauth5.cpp +46 -0
  441. data/ext/ruby_nacl/NaCl/tests/onetimeauth5.out +2 -0
  442. data/ext/ruby_nacl/NaCl/tests/onetimeauth6.cpp +50 -0
  443. data/ext/ruby_nacl/NaCl/tests/onetimeauth6.out +1 -0
  444. data/ext/ruby_nacl/NaCl/tests/onetimeauth7.c +36 -0
  445. data/ext/ruby_nacl/NaCl/tests/onetimeauth7.out +0 -0
  446. data/ext/ruby_nacl/NaCl/tests/onetimeauth8.cpp +46 -0
  447. data/ext/ruby_nacl/NaCl/tests/onetimeauth8.out +0 -0
  448. data/ext/ruby_nacl/NaCl/tests/scalarmult.c +23 -0
  449. data/ext/ruby_nacl/NaCl/tests/scalarmult.out +4 -0
  450. data/ext/ruby_nacl/NaCl/tests/scalarmult2.c +23 -0
  451. data/ext/ruby_nacl/NaCl/tests/scalarmult2.out +4 -0
  452. data/ext/ruby_nacl/NaCl/tests/scalarmult3.cpp +31 -0
  453. data/ext/ruby_nacl/NaCl/tests/scalarmult3.out +4 -0
  454. data/ext/ruby_nacl/NaCl/tests/scalarmult4.cpp +31 -0
  455. data/ext/ruby_nacl/NaCl/tests/scalarmult4.out +4 -0
  456. data/ext/ruby_nacl/NaCl/tests/scalarmult5.c +30 -0
  457. data/ext/ruby_nacl/NaCl/tests/scalarmult5.out +4 -0
  458. data/ext/ruby_nacl/NaCl/tests/scalarmult6.c +30 -0
  459. data/ext/ruby_nacl/NaCl/tests/scalarmult6.out +4 -0
  460. data/ext/ruby_nacl/NaCl/tests/scalarmult7.cpp +32 -0
  461. data/ext/ruby_nacl/NaCl/tests/scalarmult7.out +4 -0
  462. data/ext/ruby_nacl/NaCl/tests/secretbox.c +56 -0
  463. data/ext/ruby_nacl/NaCl/tests/secretbox.out +19 -0
  464. data/ext/ruby_nacl/NaCl/tests/secretbox2.c +57 -0
  465. data/ext/ruby_nacl/NaCl/tests/secretbox2.out +17 -0
  466. data/ext/ruby_nacl/NaCl/tests/secretbox3.cpp +52 -0
  467. data/ext/ruby_nacl/NaCl/tests/secretbox3.out +19 -0
  468. data/ext/ruby_nacl/NaCl/tests/secretbox4.cpp +54 -0
  469. data/ext/ruby_nacl/NaCl/tests/secretbox4.out +17 -0
  470. data/ext/ruby_nacl/NaCl/tests/secretbox5.cpp +29 -0
  471. data/ext/ruby_nacl/NaCl/tests/secretbox5.out +0 -0
  472. data/ext/ruby_nacl/NaCl/tests/secretbox6.cpp +42 -0
  473. data/ext/ruby_nacl/NaCl/tests/secretbox6.out +0 -0
  474. data/ext/ruby_nacl/NaCl/tests/secretbox7.c +32 -0
  475. data/ext/ruby_nacl/NaCl/tests/secretbox7.out +0 -0
  476. data/ext/ruby_nacl/NaCl/tests/secretbox8.c +37 -0
  477. data/ext/ruby_nacl/NaCl/tests/secretbox8.out +0 -0
  478. data/ext/ruby_nacl/NaCl/tests/stream.c +29 -0
  479. data/ext/ruby_nacl/NaCl/tests/stream.out +1 -0
  480. data/ext/ruby_nacl/NaCl/tests/stream2.c +27 -0
  481. data/ext/ruby_nacl/NaCl/tests/stream2.out +1 -0
  482. data/ext/ruby_nacl/NaCl/tests/stream3.c +28 -0
  483. data/ext/ruby_nacl/NaCl/tests/stream3.out +4 -0
  484. data/ext/ruby_nacl/NaCl/tests/stream4.c +53 -0
  485. data/ext/ruby_nacl/NaCl/tests/stream4.out +17 -0
  486. data/ext/ruby_nacl/NaCl/tests/stream5.cpp +29 -0
  487. data/ext/ruby_nacl/NaCl/tests/stream5.out +1 -0
  488. data/ext/ruby_nacl/NaCl/tests/stream6.cpp +27 -0
  489. data/ext/ruby_nacl/NaCl/tests/stream6.out +1 -0
  490. data/ext/ruby_nacl/NaCl/tests/stream7.cpp +30 -0
  491. data/ext/ruby_nacl/NaCl/tests/stream7.out +4 -0
  492. data/ext/ruby_nacl/NaCl/tests/stream8.cpp +56 -0
  493. data/ext/ruby_nacl/NaCl/tests/stream8.out +17 -0
  494. data/ext/ruby_nacl/NaCl/try-anything.c +173 -0
  495. data/ext/ruby_nacl/NaCl/version +1 -0
  496. data/ext/ruby_nacl/extconf.rb +18 -0
  497. data/ext/ruby_nacl/ruby_nacl.cpp +147 -0
  498. data/ext/ruby_nacl/ruby_nacl.h +49 -0
  499. metadata +554 -0
@@ -0,0 +1,2787 @@
1
+
2
+ # qhasm: int64 r11_caller
3
+
4
+ # qhasm: int64 r12_caller
5
+
6
+ # qhasm: int64 r13_caller
7
+
8
+ # qhasm: int64 r14_caller
9
+
10
+ # qhasm: int64 r15_caller
11
+
12
+ # qhasm: int64 rbx_caller
13
+
14
+ # qhasm: int64 rbp_caller
15
+
16
+ # qhasm: caller r11_caller
17
+
18
+ # qhasm: caller r12_caller
19
+
20
+ # qhasm: caller r13_caller
21
+
22
+ # qhasm: caller r14_caller
23
+
24
+ # qhasm: caller r15_caller
25
+
26
+ # qhasm: caller rbx_caller
27
+
28
+ # qhasm: caller rbp_caller
29
+
30
+ # qhasm: stack64 r11_stack
31
+
32
+ # qhasm: stack64 r12_stack
33
+
34
+ # qhasm: stack64 r13_stack
35
+
36
+ # qhasm: stack64 r14_stack
37
+
38
+ # qhasm: stack64 r15_stack
39
+
40
+ # qhasm: stack64 rbx_stack
41
+
42
+ # qhasm: stack64 rbp_stack
43
+
44
+ # qhasm: int64 out
45
+
46
+ # qhasm: stack64 out_stack
47
+
48
+ # qhasm: int64 m
49
+
50
+ # qhasm: int64 l
51
+
52
+ # qhasm: int64 k
53
+
54
+ # qhasm: stack64 k_stack
55
+
56
+ # qhasm: int64 m0
57
+
58
+ # qhasm: int64 m1
59
+
60
+ # qhasm: int64 m2
61
+
62
+ # qhasm: int64 m3
63
+
64
+ # qhasm: float80 a0
65
+
66
+ # qhasm: float80 a1
67
+
68
+ # qhasm: float80 a2
69
+
70
+ # qhasm: float80 a3
71
+
72
+ # qhasm: float80 h0
73
+
74
+ # qhasm: float80 h1
75
+
76
+ # qhasm: float80 h2
77
+
78
+ # qhasm: float80 h3
79
+
80
+ # qhasm: float80 x0
81
+
82
+ # qhasm: float80 x1
83
+
84
+ # qhasm: float80 x2
85
+
86
+ # qhasm: float80 x3
87
+
88
+ # qhasm: float80 y0
89
+
90
+ # qhasm: float80 y1
91
+
92
+ # qhasm: float80 y2
93
+
94
+ # qhasm: float80 y3
95
+
96
+ # qhasm: float80 r0x0
97
+
98
+ # qhasm: float80 r1x0
99
+
100
+ # qhasm: float80 r2x0
101
+
102
+ # qhasm: float80 r3x0
103
+
104
+ # qhasm: float80 r0x1
105
+
106
+ # qhasm: float80 r1x1
107
+
108
+ # qhasm: float80 r2x1
109
+
110
+ # qhasm: float80 sr3x1
111
+
112
+ # qhasm: float80 r0x2
113
+
114
+ # qhasm: float80 r1x2
115
+
116
+ # qhasm: float80 sr2x2
117
+
118
+ # qhasm: float80 sr3x2
119
+
120
+ # qhasm: float80 r0x3
121
+
122
+ # qhasm: float80 sr1x3
123
+
124
+ # qhasm: float80 sr2x3
125
+
126
+ # qhasm: float80 sr3x3
127
+
128
+ # qhasm: stack64 d0
129
+
130
+ # qhasm: stack64 d1
131
+
132
+ # qhasm: stack64 d2
133
+
134
+ # qhasm: stack64 d3
135
+
136
+ # qhasm: stack64 r0
137
+
138
+ # qhasm: stack64 r1
139
+
140
+ # qhasm: stack64 r2
141
+
142
+ # qhasm: stack64 r3
143
+
144
+ # qhasm: stack64 sr1
145
+
146
+ # qhasm: stack64 sr2
147
+
148
+ # qhasm: stack64 sr3
149
+
150
+ # qhasm: enter crypto_onetimeauth_poly1305_amd64
151
+ .text
152
+ .p2align 5
153
+ .globl _crypto_onetimeauth_poly1305_amd64
154
+ .globl crypto_onetimeauth_poly1305_amd64
155
+ _crypto_onetimeauth_poly1305_amd64:
156
+ crypto_onetimeauth_poly1305_amd64:
157
+ mov %rsp,%r11
158
+ and $31,%r11
159
+ add $192,%r11
160
+ sub %r11,%rsp
161
+
162
+ # qhasm: input out
163
+
164
+ # qhasm: input m
165
+
166
+ # qhasm: input l
167
+
168
+ # qhasm: input k
169
+
170
+ # qhasm: r11_stack = r11_caller
171
+ # asm 1: movq <r11_caller=int64#9,>r11_stack=stack64#1
172
+ # asm 2: movq <r11_caller=%r11,>r11_stack=32(%rsp)
173
+ movq %r11,32(%rsp)
174
+
175
+ # qhasm: r12_stack = r12_caller
176
+ # asm 1: movq <r12_caller=int64#10,>r12_stack=stack64#2
177
+ # asm 2: movq <r12_caller=%r12,>r12_stack=40(%rsp)
178
+ movq %r12,40(%rsp)
179
+
180
+ # qhasm: r13_stack = r13_caller
181
+ # asm 1: movq <r13_caller=int64#11,>r13_stack=stack64#3
182
+ # asm 2: movq <r13_caller=%r13,>r13_stack=48(%rsp)
183
+ movq %r13,48(%rsp)
184
+
185
+ # qhasm: r14_stack = r14_caller
186
+ # asm 1: movq <r14_caller=int64#12,>r14_stack=stack64#4
187
+ # asm 2: movq <r14_caller=%r14,>r14_stack=56(%rsp)
188
+ movq %r14,56(%rsp)
189
+
190
+ # qhasm: r15_stack = r15_caller
191
+ # asm 1: movq <r15_caller=int64#13,>r15_stack=stack64#5
192
+ # asm 2: movq <r15_caller=%r15,>r15_stack=64(%rsp)
193
+ movq %r15,64(%rsp)
194
+
195
+ # qhasm: rbx_stack = rbx_caller
196
+ # asm 1: movq <rbx_caller=int64#14,>rbx_stack=stack64#6
197
+ # asm 2: movq <rbx_caller=%rbx,>rbx_stack=72(%rsp)
198
+ movq %rbx,72(%rsp)
199
+
200
+ # qhasm: rbp_stack = rbp_caller
201
+ # asm 1: movq <rbp_caller=int64#15,>rbp_stack=stack64#7
202
+ # asm 2: movq <rbp_caller=%rbp,>rbp_stack=80(%rsp)
203
+ movq %rbp,80(%rsp)
204
+
205
+ # qhasm: round *(uint16 *) &crypto_onetimeauth_poly1305_amd64_rounding
206
+ fldcw crypto_onetimeauth_poly1305_amd64_rounding(%rip)
207
+
208
+ # qhasm: m0 = *(uint32 *) (k + 0)
209
+ # asm 1: movl 0(<k=int64#4),>m0=int64#5d
210
+ # asm 2: movl 0(<k=%rcx),>m0=%r8d
211
+ movl 0(%rcx),%r8d
212
+
213
+ # qhasm: m1 = *(uint32 *) (k + 4)
214
+ # asm 1: movl 4(<k=int64#4),>m1=int64#6d
215
+ # asm 2: movl 4(<k=%rcx),>m1=%r9d
216
+ movl 4(%rcx),%r9d
217
+
218
+ # qhasm: m2 = *(uint32 *) (k + 8)
219
+ # asm 1: movl 8(<k=int64#4),>m2=int64#7d
220
+ # asm 2: movl 8(<k=%rcx),>m2=%eax
221
+ movl 8(%rcx),%eax
222
+
223
+ # qhasm: m3 = *(uint32 *) (k + 12)
224
+ # asm 1: movl 12(<k=int64#4),>m3=int64#8d
225
+ # asm 2: movl 12(<k=%rcx),>m3=%r10d
226
+ movl 12(%rcx),%r10d
227
+
228
+ # qhasm: out_stack = out
229
+ # asm 1: movq <out=int64#1,>out_stack=stack64#8
230
+ # asm 2: movq <out=%rdi,>out_stack=88(%rsp)
231
+ movq %rdi,88(%rsp)
232
+
233
+ # qhasm: k_stack = k
234
+ # asm 1: movq <k=int64#4,>k_stack=stack64#9
235
+ # asm 2: movq <k=%rcx,>k_stack=96(%rsp)
236
+ movq %rcx,96(%rsp)
237
+
238
+ # qhasm: d0 top = 0x43300000
239
+ # asm 1: movl $0x43300000,>d0=stack64#10
240
+ # asm 2: movl $0x43300000,>d0=108(%rsp)
241
+ movl $0x43300000,108(%rsp)
242
+
243
+ # qhasm: d1 top = 0x45300000
244
+ # asm 1: movl $0x45300000,>d1=stack64#11
245
+ # asm 2: movl $0x45300000,>d1=116(%rsp)
246
+ movl $0x45300000,116(%rsp)
247
+
248
+ # qhasm: d2 top = 0x47300000
249
+ # asm 1: movl $0x47300000,>d2=stack64#12
250
+ # asm 2: movl $0x47300000,>d2=124(%rsp)
251
+ movl $0x47300000,124(%rsp)
252
+
253
+ # qhasm: d3 top = 0x49300000
254
+ # asm 1: movl $0x49300000,>d3=stack64#13
255
+ # asm 2: movl $0x49300000,>d3=132(%rsp)
256
+ movl $0x49300000,132(%rsp)
257
+
258
+ # qhasm: (uint32) m0 &= 0x0fffffff
259
+ # asm 1: and $0x0fffffff,<m0=int64#5d
260
+ # asm 2: and $0x0fffffff,<m0=%r8d
261
+ and $0x0fffffff,%r8d
262
+
263
+ # qhasm: (uint32) m1 &= 0x0ffffffc
264
+ # asm 1: and $0x0ffffffc,<m1=int64#6d
265
+ # asm 2: and $0x0ffffffc,<m1=%r9d
266
+ and $0x0ffffffc,%r9d
267
+
268
+ # qhasm: (uint32) m2 &= 0x0ffffffc
269
+ # asm 1: and $0x0ffffffc,<m2=int64#7d
270
+ # asm 2: and $0x0ffffffc,<m2=%eax
271
+ and $0x0ffffffc,%eax
272
+
273
+ # qhasm: (uint32) m3 &= 0x0ffffffc
274
+ # asm 1: and $0x0ffffffc,<m3=int64#8d
275
+ # asm 2: and $0x0ffffffc,<m3=%r10d
276
+ and $0x0ffffffc,%r10d
277
+
278
+ # qhasm: inplace d0 bottom = m0
279
+ # asm 1: movl <m0=int64#5d,<d0=stack64#10
280
+ # asm 2: movl <m0=%r8d,<d0=104(%rsp)
281
+ movl %r8d,104(%rsp)
282
+
283
+ # qhasm: inplace d1 bottom = m1
284
+ # asm 1: movl <m1=int64#6d,<d1=stack64#11
285
+ # asm 2: movl <m1=%r9d,<d1=112(%rsp)
286
+ movl %r9d,112(%rsp)
287
+
288
+ # qhasm: inplace d2 bottom = m2
289
+ # asm 1: movl <m2=int64#7d,<d2=stack64#12
290
+ # asm 2: movl <m2=%eax,<d2=120(%rsp)
291
+ movl %eax,120(%rsp)
292
+
293
+ # qhasm: inplace d3 bottom = m3
294
+ # asm 1: movl <m3=int64#8d,<d3=stack64#13
295
+ # asm 2: movl <m3=%r10d,<d3=128(%rsp)
296
+ movl %r10d,128(%rsp)
297
+
298
+ # qhasm: a0 = *(float64 *) &d0
299
+ # asm 1: fldl <d0=stack64#10
300
+ # asm 2: fldl <d0=104(%rsp)
301
+ fldl 104(%rsp)
302
+ # comment:fpstackfrombottom:<a0#28:
303
+
304
+ # qhasm: a0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset0
305
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset0(%rip)
306
+ # comment:fpstackfrombottom:<a0#28:
307
+
308
+ # qhasm: a1 = *(float64 *) &d1
309
+ # asm 1: fldl <d1=stack64#11
310
+ # asm 2: fldl <d1=112(%rsp)
311
+ fldl 112(%rsp)
312
+ # comment:fpstackfrombottom:<a0#28:<a1#29:
313
+
314
+ # qhasm: a1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset1
315
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset1(%rip)
316
+ # comment:fpstackfrombottom:<a0#28:<a1#29:
317
+
318
+ # qhasm: a2 = *(float64 *) &d2
319
+ # asm 1: fldl <d2=stack64#12
320
+ # asm 2: fldl <d2=120(%rsp)
321
+ fldl 120(%rsp)
322
+ # comment:fpstackfrombottom:<a0#28:<a1#29:<a2#30:
323
+
324
+ # qhasm: a2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset2
325
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset2(%rip)
326
+ # comment:fpstackfrombottom:<a0#28:<a1#29:<a2#30:
327
+
328
+ # qhasm: a3 = *(float64 *) &d3
329
+ # asm 1: fldl <d3=stack64#13
330
+ # asm 2: fldl <d3=128(%rsp)
331
+ fldl 128(%rsp)
332
+ # comment:fpstackfrombottom:<a0#28:<a1#29:<a2#30:<a3#31:
333
+
334
+ # qhasm: a3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset3
335
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset3(%rip)
336
+ # comment:fpstackfrombottom:<a0#28:<a1#29:<a2#30:<a3#31:
337
+
338
+ # qhasm: internal stacktop a0
339
+ # asm 1: fxch <a0=float80#4
340
+ # asm 2: fxch <a0=%st(3)
341
+ fxch %st(3)
342
+
343
+ # qhasm: *(float64 *) &r0 = a0
344
+ # asm 1: fstpl >r0=stack64#14
345
+ # asm 2: fstpl >r0=136(%rsp)
346
+ fstpl 136(%rsp)
347
+ # comment:fpstackfrombottom:<a3#31:<a1#29:<a2#30:
348
+
349
+ # qhasm: internal stacktop a1
350
+ # asm 1: fxch <a1=float80#2
351
+ # asm 2: fxch <a1=%st(1)
352
+ fxch %st(1)
353
+
354
+ # qhasm: *(float64 *) &r1 = a1
355
+ # asm 1: fstl >r1=stack64#15
356
+ # asm 2: fstl >r1=144(%rsp)
357
+ fstl 144(%rsp)
358
+ # comment:fpstackfrombottom:<a3#31:<a2#30:<a1#29:
359
+
360
+ # qhasm: a1 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
361
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
362
+ # comment:fpstackfrombottom:<a3#31:<a2#30:<a1#29:
363
+
364
+ # qhasm: *(float64 *) &sr1 = a1
365
+ # asm 1: fstpl >sr1=stack64#16
366
+ # asm 2: fstpl >sr1=152(%rsp)
367
+ fstpl 152(%rsp)
368
+ # comment:fpstackfrombottom:<a3#31:<a2#30:
369
+
370
+ # qhasm: *(float64 *) &r2 = a2
371
+ # asm 1: fstl >r2=stack64#17
372
+ # asm 2: fstl >r2=160(%rsp)
373
+ fstl 160(%rsp)
374
+ # comment:fpstackfrombottom:<a3#31:<a2#30:
375
+
376
+ # qhasm: a2 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
377
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
378
+ # comment:fpstackfrombottom:<a3#31:<a2#30:
379
+
380
+ # qhasm: *(float64 *) &sr2 = a2
381
+ # asm 1: fstpl >sr2=stack64#18
382
+ # asm 2: fstpl >sr2=168(%rsp)
383
+ fstpl 168(%rsp)
384
+ # comment:fpstackfrombottom:<a3#31:
385
+
386
+ # qhasm: *(float64 *) &r3 = a3
387
+ # asm 1: fstl >r3=stack64#19
388
+ # asm 2: fstl >r3=176(%rsp)
389
+ fstl 176(%rsp)
390
+ # comment:fpstackfrombottom:<a3#31:
391
+
392
+ # qhasm: a3 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
393
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
394
+ # comment:fpstackfrombottom:<a3#31:
395
+
396
+ # qhasm: *(float64 *) &sr3 = a3
397
+ # asm 1: fstpl >sr3=stack64#20
398
+ # asm 2: fstpl >sr3=184(%rsp)
399
+ fstpl 184(%rsp)
400
+ # comment:fpstackfrombottom:
401
+
402
+ # qhasm: h3 = 0
403
+ fldz
404
+ # comment:fpstackfrombottom:<h3#39:
405
+
406
+ # qhasm: h2 = 0
407
+ fldz
408
+ # comment:fpstackfrombottom:<h3#39:<h2#40:
409
+
410
+ # qhasm: h1 = 0
411
+ fldz
412
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:
413
+
414
+ # qhasm: h0 = 0
415
+ fldz
416
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
417
+
418
+ # qhasm: unsigned<? l - 16
419
+ # asm 1: cmp $16,<l=int64#3
420
+ # asm 2: cmp $16,<l=%rdx
421
+ cmp $16,%rdx
422
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
423
+ # comment:fp stack unchanged by jump
424
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
425
+
426
+ # qhasm: goto addatmost15bytes if unsigned<
427
+ jb ._addatmost15bytes
428
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
429
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
430
+
431
+ # qhasm: initialatleast16bytes:
432
+ ._initialatleast16bytes:
433
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
434
+
435
+ # qhasm: m3 = *(uint32 *) (m + 12)
436
+ # asm 1: movl 12(<m=int64#2),>m3=int64#1d
437
+ # asm 2: movl 12(<m=%rsi),>m3=%edi
438
+ movl 12(%rsi),%edi
439
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
440
+
441
+ # qhasm: m2 = *(uint32 *) (m + 8)
442
+ # asm 1: movl 8(<m=int64#2),>m2=int64#4d
443
+ # asm 2: movl 8(<m=%rsi),>m2=%ecx
444
+ movl 8(%rsi),%ecx
445
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
446
+
447
+ # qhasm: m1 = *(uint32 *) (m + 4)
448
+ # asm 1: movl 4(<m=int64#2),>m1=int64#5d
449
+ # asm 2: movl 4(<m=%rsi),>m1=%r8d
450
+ movl 4(%rsi),%r8d
451
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
452
+
453
+ # qhasm: m0 = *(uint32 *) (m + 0)
454
+ # asm 1: movl 0(<m=int64#2),>m0=int64#6d
455
+ # asm 2: movl 0(<m=%rsi),>m0=%r9d
456
+ movl 0(%rsi),%r9d
457
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
458
+
459
+ # qhasm: inplace d3 bottom = m3
460
+ # asm 1: movl <m3=int64#1d,<d3=stack64#13
461
+ # asm 2: movl <m3=%edi,<d3=128(%rsp)
462
+ movl %edi,128(%rsp)
463
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
464
+
465
+ # qhasm: inplace d2 bottom = m2
466
+ # asm 1: movl <m2=int64#4d,<d2=stack64#12
467
+ # asm 2: movl <m2=%ecx,<d2=120(%rsp)
468
+ movl %ecx,120(%rsp)
469
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
470
+
471
+ # qhasm: inplace d1 bottom = m1
472
+ # asm 1: movl <m1=int64#5d,<d1=stack64#11
473
+ # asm 2: movl <m1=%r8d,<d1=112(%rsp)
474
+ movl %r8d,112(%rsp)
475
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
476
+
477
+ # qhasm: inplace d0 bottom = m0
478
+ # asm 1: movl <m0=int64#6d,<d0=stack64#10
479
+ # asm 2: movl <m0=%r9d,<d0=104(%rsp)
480
+ movl %r9d,104(%rsp)
481
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
482
+
483
+ # qhasm: m += 16
484
+ # asm 1: add $16,<m=int64#2
485
+ # asm 2: add $16,<m=%rsi
486
+ add $16,%rsi
487
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
488
+
489
+ # qhasm: l -= 16
490
+ # asm 1: sub $16,<l=int64#3
491
+ # asm 2: sub $16,<l=%rdx
492
+ sub $16,%rdx
493
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
494
+
495
+ # qhasm: internal stacktop h3
496
+ # asm 1: fxch <h3=float80#4
497
+ # asm 2: fxch <h3=%st(3)
498
+ fxch %st(3)
499
+
500
+ # qhasm: h3 += *(float64 *) &d3
501
+ # asm 1: faddl <d3=stack64#13
502
+ # asm 2: faddl <d3=128(%rsp)
503
+ faddl 128(%rsp)
504
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h1#41:<h3#39:
505
+
506
+ # qhasm: h3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset3minustwo128
507
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset3minustwo128(%rip)
508
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h1#41:<h3#39:
509
+
510
+ # qhasm: internal stacktop h1
511
+ # asm 1: fxch <h1=float80#2
512
+ # asm 2: fxch <h1=%st(1)
513
+ fxch %st(1)
514
+
515
+ # qhasm: h1 += *(float64 *) &d1
516
+ # asm 1: faddl <d1=stack64#11
517
+ # asm 2: faddl <d1=112(%rsp)
518
+ faddl 112(%rsp)
519
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h3#39:<h1#41:
520
+
521
+ # qhasm: h1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset1
522
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset1(%rip)
523
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h3#39:<h1#41:
524
+
525
+ # qhasm: internal stacktop h2
526
+ # asm 1: fxch <h2=float80#3
527
+ # asm 2: fxch <h2=%st(2)
528
+ fxch %st(2)
529
+
530
+ # qhasm: h2 += *(float64 *) &d2
531
+ # asm 1: faddl <d2=stack64#12
532
+ # asm 2: faddl <d2=120(%rsp)
533
+ faddl 120(%rsp)
534
+ # comment:fpstackfrombottom:<h0#42:<h1#41:<h3#39:<h2#40:
535
+
536
+ # qhasm: h2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset2
537
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset2(%rip)
538
+ # comment:fpstackfrombottom:<h0#42:<h1#41:<h3#39:<h2#40:
539
+
540
+ # qhasm: internal stacktop h0
541
+ # asm 1: fxch <h0=float80#4
542
+ # asm 2: fxch <h0=%st(3)
543
+ fxch %st(3)
544
+
545
+ # qhasm: h0 += *(float64 *) &d0
546
+ # asm 1: faddl <d0=stack64#10
547
+ # asm 2: faddl <d0=104(%rsp)
548
+ faddl 104(%rsp)
549
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
550
+
551
+ # qhasm: h0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset0
552
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset0(%rip)
553
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
554
+
555
+ # qhasm: unsigned<? l - 16
556
+ # asm 1: cmp $16,<l=int64#3
557
+ # asm 2: cmp $16,<l=%rdx
558
+ cmp $16,%rdx
559
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
560
+ # comment:fp stack unchanged by jump
561
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
562
+
563
+ # qhasm: goto multiplyaddatmost15bytes if unsigned<
564
+ jb ._multiplyaddatmost15bytes
565
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
566
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
567
+
568
+ # qhasm: multiplyaddatleast16bytes:
569
+ ._multiplyaddatleast16bytes:
570
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
571
+
572
+ # qhasm: m3 = *(uint32 *) (m + 12)
573
+ # asm 1: movl 12(<m=int64#2),>m3=int64#1d
574
+ # asm 2: movl 12(<m=%rsi),>m3=%edi
575
+ movl 12(%rsi),%edi
576
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
577
+
578
+ # qhasm: m2 = *(uint32 *) (m + 8)
579
+ # asm 1: movl 8(<m=int64#2),>m2=int64#4d
580
+ # asm 2: movl 8(<m=%rsi),>m2=%ecx
581
+ movl 8(%rsi),%ecx
582
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
583
+
584
+ # qhasm: m1 = *(uint32 *) (m + 4)
585
+ # asm 1: movl 4(<m=int64#2),>m1=int64#5d
586
+ # asm 2: movl 4(<m=%rsi),>m1=%r8d
587
+ movl 4(%rsi),%r8d
588
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
589
+
590
+ # qhasm: m0 = *(uint32 *) (m + 0)
591
+ # asm 1: movl 0(<m=int64#2),>m0=int64#6d
592
+ # asm 2: movl 0(<m=%rsi),>m0=%r9d
593
+ movl 0(%rsi),%r9d
594
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
595
+
596
+ # qhasm: inplace d3 bottom = m3
597
+ # asm 1: movl <m3=int64#1d,<d3=stack64#13
598
+ # asm 2: movl <m3=%edi,<d3=128(%rsp)
599
+ movl %edi,128(%rsp)
600
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
601
+
602
+ # qhasm: inplace d2 bottom = m2
603
+ # asm 1: movl <m2=int64#4d,<d2=stack64#12
604
+ # asm 2: movl <m2=%ecx,<d2=120(%rsp)
605
+ movl %ecx,120(%rsp)
606
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
607
+
608
+ # qhasm: inplace d1 bottom = m1
609
+ # asm 1: movl <m1=int64#5d,<d1=stack64#11
610
+ # asm 2: movl <m1=%r8d,<d1=112(%rsp)
611
+ movl %r8d,112(%rsp)
612
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
613
+
614
+ # qhasm: inplace d0 bottom = m0
615
+ # asm 1: movl <m0=int64#6d,<d0=stack64#10
616
+ # asm 2: movl <m0=%r9d,<d0=104(%rsp)
617
+ movl %r9d,104(%rsp)
618
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
619
+
620
+ # qhasm: m += 16
621
+ # asm 1: add $16,<m=int64#2
622
+ # asm 2: add $16,<m=%rsi
623
+ add $16,%rsi
624
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
625
+
626
+ # qhasm: l -= 16
627
+ # asm 1: sub $16,<l=int64#3
628
+ # asm 2: sub $16,<l=%rdx
629
+ sub $16,%rdx
630
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
631
+
632
+ # qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
633
+ fldl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
634
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:
635
+
636
+ # qhasm: x0 += h3
637
+ # asm 1: fadd <h3=float80#3,<x0=float80#1
638
+ # asm 2: fadd <h3=%st(2),<x0=%st(0)
639
+ fadd %st(2),%st(0)
640
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:
641
+
642
+ # qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
643
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
644
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:
645
+
646
+ # qhasm: h3 -= x0
647
+ # asm 1: fsubr <x0=float80#1,<h3=float80#3
648
+ # asm 2: fsubr <x0=%st(0),<h3=%st(2)
649
+ fsubr %st(0),%st(2)
650
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:
651
+
652
+ # qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
653
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
654
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:
655
+
656
+ # qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
657
+ fldl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
658
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:<x1#54:
659
+
660
+ # qhasm: x1 += h0
661
+ # asm 1: fadd <h0=float80#3,<x1=float80#1
662
+ # asm 2: fadd <h0=%st(2),<x1=%st(0)
663
+ fadd %st(2),%st(0)
664
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:<x1#54:
665
+
666
+ # qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
667
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
668
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:<x1#54:
669
+
670
+ # qhasm: h0 -= x1
671
+ # asm 1: fsubr <x1=float80#1,<h0=float80#3
672
+ # asm 2: fsubr <x1=%st(0),<h0=%st(2)
673
+ fsubr %st(0),%st(2)
674
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#53:<x1#54:
675
+
676
+ # qhasm: internal stacktop h0
677
+ # asm 1: fxch <h0=float80#3
678
+ # asm 2: fxch <h0=%st(2)
679
+ fxch %st(2)
680
+
681
+ # qhasm: x0 += h0
682
+ # asm 1: faddp <h0=float80#1,<x0=float80#2
683
+ # asm 2: faddp <h0=%st(0),<x0=%st(1)
684
+ faddp %st(0),%st(1)
685
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:
686
+
687
+ # qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
688
+ fldl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
689
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:
690
+
691
+ # qhasm: x2 += h1
692
+ # asm 1: fadd <h1=float80#5,<x2=float80#1
693
+ # asm 2: fadd <h1=%st(4),<x2=%st(0)
694
+ fadd %st(4),%st(0)
695
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:
696
+
697
+ # qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
698
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
699
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:
700
+
701
+ # qhasm: h1 -= x2
702
+ # asm 1: fsubr <x2=float80#1,<h1=float80#5
703
+ # asm 2: fsubr <x2=%st(0),<h1=%st(4)
704
+ fsubr %st(0),%st(4)
705
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:
706
+
707
+ # qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
708
+ fldl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
709
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:<x3#56:
710
+
711
+ # qhasm: x3 += h2
712
+ # asm 1: fadd <h2=float80#7,<x3=float80#1
713
+ # asm 2: fadd <h2=%st(6),<x3=%st(0)
714
+ fadd %st(6),%st(0)
715
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:<x3#56:
716
+
717
+ # qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
718
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
719
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:<x3#56:
720
+
721
+ # qhasm: h2 -= x3
722
+ # asm 1: fsubr <x3=float80#1,<h2=float80#7
723
+ # asm 2: fsubr <x3=%st(0),<h2=%st(6)
724
+ fsubr %st(0),%st(6)
725
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:<x3#56:
726
+
727
+ # qhasm: internal stacktop h2
728
+ # asm 1: fxch <h2=float80#7
729
+ # asm 2: fxch <h2=%st(6)
730
+ fxch %st(6)
731
+
732
+ # qhasm: x2 += h2
733
+ # asm 1: faddp <h2=float80#1,<x2=float80#2
734
+ # asm 2: faddp <h2=%st(0),<x2=%st(1)
735
+ faddp %st(0),%st(1)
736
+ # comment:fpstackfrombottom:<x3#56:<h1#41:<h3#39:<x1#54:<x0#53:<x2#55:
737
+
738
+ # qhasm: internal stacktop h3
739
+ # asm 1: fxch <h3=float80#4
740
+ # asm 2: fxch <h3=%st(3)
741
+ fxch %st(3)
742
+
743
+ # qhasm: x3 += h3
744
+ # asm 1: faddp <h3=float80#1,<x3=float80#6
745
+ # asm 2: faddp <h3=%st(0),<x3=%st(5)
746
+ faddp %st(0),%st(5)
747
+ # comment:fpstackfrombottom:<x3#56:<h1#41:<x2#55:<x1#54:<x0#53:
748
+
749
+ # qhasm: internal stacktop h1
750
+ # asm 1: fxch <h1=float80#4
751
+ # asm 2: fxch <h1=%st(3)
752
+ fxch %st(3)
753
+
754
+ # qhasm: x1 += h1
755
+ # asm 1: faddp <h1=float80#1,<x1=float80#2
756
+ # asm 2: faddp <h1=%st(0),<x1=%st(1)
757
+ faddp %st(0),%st(1)
758
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:
759
+
760
+ # qhasm: h3 = *(float64 *) &r3
761
+ # asm 1: fldl <r3=stack64#19
762
+ # asm 2: fldl <r3=176(%rsp)
763
+ fldl 176(%rsp)
764
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:
765
+
766
+ # qhasm: h3 *= x0
767
+ # asm 1: fmul <x0=float80#4,<h3=float80#1
768
+ # asm 2: fmul <x0=%st(3),<h3=%st(0)
769
+ fmul %st(3),%st(0)
770
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:
771
+
772
+ # qhasm: h2 = *(float64 *) &r2
773
+ # asm 1: fldl <r2=stack64#17
774
+ # asm 2: fldl <r2=160(%rsp)
775
+ fldl 160(%rsp)
776
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:<h2#40:
777
+
778
+ # qhasm: h2 *= x0
779
+ # asm 1: fmul <x0=float80#5,<h2=float80#1
780
+ # asm 2: fmul <x0=%st(4),<h2=%st(0)
781
+ fmul %st(4),%st(0)
782
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:<h2#40:
783
+
784
+ # qhasm: h1 = *(float64 *) &r1
785
+ # asm 1: fldl <r1=stack64#15
786
+ # asm 2: fldl <r1=144(%rsp)
787
+ fldl 144(%rsp)
788
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
789
+
790
+ # qhasm: h1 *= x0
791
+ # asm 1: fmul <x0=float80#6,<h1=float80#1
792
+ # asm 2: fmul <x0=%st(5),<h1=%st(0)
793
+ fmul %st(5),%st(0)
794
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
795
+
796
+ # qhasm: h0 = *(float64 *) &r0
797
+ # asm 1: fldl <r0=stack64#14
798
+ # asm 2: fldl <r0=136(%rsp)
799
+ fldl 136(%rsp)
800
+ # comment:fpstackfrombottom:<x3#56:<x0#53:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<h0#42:
801
+
802
+ # qhasm: h0 *= x0
803
+ # asm 1: fmulp <x0=float80#1,<h0=float80#7
804
+ # asm 2: fmulp <x0=%st(0),<h0=%st(6)
805
+ fmulp %st(0),%st(6)
806
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
807
+
808
+ # qhasm: r2x1 = *(float64 *) &r2
809
+ # asm 1: fldl <r2=stack64#17
810
+ # asm 2: fldl <r2=160(%rsp)
811
+ fldl 160(%rsp)
812
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r2x1#57:
813
+
814
+ # qhasm: r2x1 *= x1
815
+ # asm 1: fmul <x1=float80#5,<r2x1=float80#1
816
+ # asm 2: fmul <x1=%st(4),<r2x1=%st(0)
817
+ fmul %st(4),%st(0)
818
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r2x1#57:
819
+
820
+ # qhasm: h3 += r2x1
821
+ # asm 1: faddp <r2x1=float80#1,<h3=float80#4
822
+ # asm 2: faddp <r2x1=%st(0),<h3=%st(3)
823
+ faddp %st(0),%st(3)
824
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
825
+
826
+ # qhasm: r1x1 = *(float64 *) &r1
827
+ # asm 1: fldl <r1=stack64#15
828
+ # asm 2: fldl <r1=144(%rsp)
829
+ fldl 144(%rsp)
830
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r1x1#58:
831
+
832
+ # qhasm: r1x1 *= x1
833
+ # asm 1: fmul <x1=float80#5,<r1x1=float80#1
834
+ # asm 2: fmul <x1=%st(4),<r1x1=%st(0)
835
+ fmul %st(4),%st(0)
836
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r1x1#58:
837
+
838
+ # qhasm: h2 += r1x1
839
+ # asm 1: faddp <r1x1=float80#1,<h2=float80#3
840
+ # asm 2: faddp <r1x1=%st(0),<h2=%st(2)
841
+ faddp %st(0),%st(2)
842
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
843
+
844
+ # qhasm: r0x1 = *(float64 *) &r0
845
+ # asm 1: fldl <r0=stack64#14
846
+ # asm 2: fldl <r0=136(%rsp)
847
+ fldl 136(%rsp)
848
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r0x1#59:
849
+
850
+ # qhasm: r0x1 *= x1
851
+ # asm 1: fmul <x1=float80#5,<r0x1=float80#1
852
+ # asm 2: fmul <x1=%st(4),<r0x1=%st(0)
853
+ fmul %st(4),%st(0)
854
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<r0x1#59:
855
+
856
+ # qhasm: h1 += r0x1
857
+ # asm 1: faddp <r0x1=float80#1,<h1=float80#2
858
+ # asm 2: faddp <r0x1=%st(0),<h1=%st(1)
859
+ faddp %st(0),%st(1)
860
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:
861
+
862
+ # qhasm: sr3x1 = *(float64 *) &sr3
863
+ # asm 1: fldl <sr3=stack64#20
864
+ # asm 2: fldl <sr3=184(%rsp)
865
+ fldl 184(%rsp)
866
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<x1#54:<h3#39:<h2#40:<h1#41:<sr3x1#60:
867
+
868
+ # qhasm: sr3x1 *= x1
869
+ # asm 1: fmulp <x1=float80#1,<sr3x1=float80#5
870
+ # asm 2: fmulp <x1=%st(0),<sr3x1=%st(4)
871
+ fmulp %st(0),%st(4)
872
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<sr3x1#60:<h3#39:<h2#40:<h1#41:
873
+
874
+ # qhasm: internal stacktop sr3x1
875
+ # asm 1: fxch <sr3x1=float80#4
876
+ # asm 2: fxch <sr3x1=%st(3)
877
+ fxch %st(3)
878
+
879
+ # qhasm: h0 += sr3x1
880
+ # asm 1: faddp <sr3x1=float80#1,<h0=float80#6
881
+ # asm 2: faddp <sr3x1=%st(0),<h0=%st(5)
882
+ faddp %st(0),%st(5)
883
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:
884
+
885
+ # qhasm: r1x2 = *(float64 *) &r1
886
+ # asm 1: fldl <r1=stack64#15
887
+ # asm 2: fldl <r1=144(%rsp)
888
+ fldl 144(%rsp)
889
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<r1x2#61:
890
+
891
+ # qhasm: r1x2 *= x2
892
+ # asm 1: fmul <x2=float80#5,<r1x2=float80#1
893
+ # asm 2: fmul <x2=%st(4),<r1x2=%st(0)
894
+ fmul %st(4),%st(0)
895
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<r1x2#61:
896
+
897
+ # qhasm: h3 += r1x2
898
+ # asm 1: faddp <r1x2=float80#1,<h3=float80#3
899
+ # asm 2: faddp <r1x2=%st(0),<h3=%st(2)
900
+ faddp %st(0),%st(2)
901
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:
902
+
903
+ # qhasm: r0x2 = *(float64 *) &r0
904
+ # asm 1: fldl <r0=stack64#14
905
+ # asm 2: fldl <r0=136(%rsp)
906
+ fldl 136(%rsp)
907
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<r0x2#62:
908
+
909
+ # qhasm: r0x2 *= x2
910
+ # asm 1: fmul <x2=float80#5,<r0x2=float80#1
911
+ # asm 2: fmul <x2=%st(4),<r0x2=%st(0)
912
+ fmul %st(4),%st(0)
913
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<r0x2#62:
914
+
915
+ # qhasm: h2 += r0x2
916
+ # asm 1: faddp <r0x2=float80#1,<h2=float80#2
917
+ # asm 2: faddp <r0x2=%st(0),<h2=%st(1)
918
+ faddp %st(0),%st(1)
919
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:
920
+
921
+ # qhasm: sr3x2 = *(float64 *) &sr3
922
+ # asm 1: fldl <sr3=stack64#20
923
+ # asm 2: fldl <sr3=184(%rsp)
924
+ fldl 184(%rsp)
925
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<sr3x2#63:
926
+
927
+ # qhasm: sr3x2 *= x2
928
+ # asm 1: fmul <x2=float80#5,<sr3x2=float80#1
929
+ # asm 2: fmul <x2=%st(4),<sr3x2=%st(0)
930
+ fmul %st(4),%st(0)
931
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<sr3x2#63:
932
+
933
+ # qhasm: h1 += sr3x2
934
+ # asm 1: faddp <sr3x2=float80#1,<h1=float80#4
935
+ # asm 2: faddp <sr3x2=%st(0),<h1=%st(3)
936
+ faddp %st(0),%st(3)
937
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:
938
+
939
+ # qhasm: sr2x2 = *(float64 *) &sr2
940
+ # asm 1: fldl <sr2=stack64#18
941
+ # asm 2: fldl <sr2=168(%rsp)
942
+ fldl 168(%rsp)
943
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<x2#55:<h1#41:<h3#39:<h2#40:<sr2x2#64:
944
+
945
+ # qhasm: sr2x2 *= x2
946
+ # asm 1: fmulp <x2=float80#1,<sr2x2=float80#5
947
+ # asm 2: fmulp <x2=%st(0),<sr2x2=%st(4)
948
+ fmulp %st(0),%st(4)
949
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<sr2x2#64:<h1#41:<h3#39:<h2#40:
950
+
951
+ # qhasm: internal stacktop sr2x2
952
+ # asm 1: fxch <sr2x2=float80#4
953
+ # asm 2: fxch <sr2x2=%st(3)
954
+ fxch %st(3)
955
+
956
+ # qhasm: h0 += sr2x2
957
+ # asm 1: faddp <sr2x2=float80#1,<h0=float80#5
958
+ # asm 2: faddp <sr2x2=%st(0),<h0=%st(4)
959
+ faddp %st(0),%st(4)
960
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<h2#40:<h1#41:<h3#39:
961
+
962
+ # qhasm: r0x3 = *(float64 *) &r0
963
+ # asm 1: fldl <r0=stack64#14
964
+ # asm 2: fldl <r0=136(%rsp)
965
+ fldl 136(%rsp)
966
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<h2#40:<h1#41:<h3#39:<r0x3#65:
967
+
968
+ # qhasm: r0x3 *= x3
969
+ # asm 1: fmul <x3=float80#6,<r0x3=float80#1
970
+ # asm 2: fmul <x3=%st(5),<r0x3=%st(0)
971
+ fmul %st(5),%st(0)
972
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<h2#40:<h1#41:<h3#39:<r0x3#65:
973
+
974
+ # qhasm: h3 += r0x3
975
+ # asm 1: faddp <r0x3=float80#1,<h3=float80#2
976
+ # asm 2: faddp <r0x3=%st(0),<h3=%st(1)
977
+ faddp %st(0),%st(1)
978
+ # comment:fpstackfrombottom:<x3#56:<h0#42:<h2#40:<h1#41:<h3#39:
979
+
980
+ # qhasm: stacktop h0
981
+ # asm 1: fxch <h0=float80#4
982
+ # asm 2: fxch <h0=%st(3)
983
+ fxch %st(3)
984
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h1#41:<h0#42:
985
+
986
+ # qhasm: sr3x3 = *(float64 *) &sr3
987
+ # asm 1: fldl <sr3=stack64#20
988
+ # asm 2: fldl <sr3=184(%rsp)
989
+ fldl 184(%rsp)
990
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h1#41:<h0#42:<sr3x3#66:
991
+
992
+ # qhasm: sr3x3 *= x3
993
+ # asm 1: fmul <x3=float80#6,<sr3x3=float80#1
994
+ # asm 2: fmul <x3=%st(5),<sr3x3=%st(0)
995
+ fmul %st(5),%st(0)
996
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h1#41:<h0#42:<sr3x3#66:
997
+
998
+ # qhasm: h2 += sr3x3
999
+ # asm 1: faddp <sr3x3=float80#1,<h2=float80#4
1000
+ # asm 2: faddp <sr3x3=%st(0),<h2=%st(3)
1001
+ faddp %st(0),%st(3)
1002
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h1#41:<h0#42:
1003
+
1004
+ # qhasm: stacktop h1
1005
+ # asm 1: fxch <h1=float80#2
1006
+ # asm 2: fxch <h1=%st(1)
1007
+ fxch %st(1)
1008
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h0#42:<h1#41:
1009
+
1010
+ # qhasm: sr2x3 = *(float64 *) &sr2
1011
+ # asm 1: fldl <sr2=stack64#18
1012
+ # asm 2: fldl <sr2=168(%rsp)
1013
+ fldl 168(%rsp)
1014
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h0#42:<h1#41:<sr2x3#67:
1015
+
1016
+ # qhasm: sr2x3 *= x3
1017
+ # asm 1: fmul <x3=float80#6,<sr2x3=float80#1
1018
+ # asm 2: fmul <x3=%st(5),<sr2x3=%st(0)
1019
+ fmul %st(5),%st(0)
1020
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h0#42:<h1#41:<sr2x3#67:
1021
+
1022
+ # qhasm: h1 += sr2x3
1023
+ # asm 1: faddp <sr2x3=float80#1,<h1=float80#2
1024
+ # asm 2: faddp <sr2x3=%st(0),<h1=%st(1)
1025
+ faddp %st(0),%st(1)
1026
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h0#42:<h1#41:
1027
+
1028
+ # qhasm: sr1x3 = *(float64 *) &sr1
1029
+ # asm 1: fldl <sr1=stack64#16
1030
+ # asm 2: fldl <sr1=152(%rsp)
1031
+ fldl 152(%rsp)
1032
+ # comment:fpstackfrombottom:<x3#56:<h3#39:<h2#40:<h0#42:<h1#41:<sr1x3#68:
1033
+
1034
+ # qhasm: sr1x3 *= x3
1035
+ # asm 1: fmulp <x3=float80#1,<sr1x3=float80#6
1036
+ # asm 2: fmulp <x3=%st(0),<sr1x3=%st(5)
1037
+ fmulp %st(0),%st(5)
1038
+ # comment:fpstackfrombottom:<sr1x3#68:<h3#39:<h2#40:<h0#42:<h1#41:
1039
+
1040
+ # qhasm: internal stacktop sr1x3
1041
+ # asm 1: fxch <sr1x3=float80#5
1042
+ # asm 2: fxch <sr1x3=%st(4)
1043
+ fxch %st(4)
1044
+
1045
+ # qhasm: h0 += sr1x3
1046
+ # asm 1: faddp <sr1x3=float80#1,<h0=float80#2
1047
+ # asm 2: faddp <sr1x3=%st(0),<h0=%st(1)
1048
+ faddp %st(0),%st(1)
1049
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:
1050
+
1051
+ # qhasm: unsigned<? l - 16
1052
+ # asm 1: cmp $16,<l=int64#3
1053
+ # asm 2: cmp $16,<l=%rdx
1054
+ cmp $16,%rdx
1055
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:
1056
+
1057
+ # qhasm: stacktop h3
1058
+ # asm 1: fxch <h3=float80#3
1059
+ # asm 2: fxch <h3=%st(2)
1060
+ fxch %st(2)
1061
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h2#40:<h3#39:
1062
+
1063
+ # qhasm: y3 = *(float64 *) &d3
1064
+ # asm 1: fldl <d3=stack64#13
1065
+ # asm 2: fldl <d3=128(%rsp)
1066
+ fldl 128(%rsp)
1067
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h2#40:<h3#39:<y3#70:
1068
+
1069
+ # qhasm: y3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset3minustwo128
1070
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset3minustwo128(%rip)
1071
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h2#40:<h3#39:<y3#70:
1072
+
1073
+ # qhasm: h3 += y3
1074
+ # asm 1: faddp <y3=float80#1,<h3=float80#2
1075
+ # asm 2: faddp <y3=%st(0),<h3=%st(1)
1076
+ faddp %st(0),%st(1)
1077
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h2#40:<h3#39:
1078
+
1079
+ # qhasm: stacktop h2
1080
+ # asm 1: fxch <h2=float80#2
1081
+ # asm 2: fxch <h2=%st(1)
1082
+ fxch %st(1)
1083
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h3#39:<h2#40:
1084
+
1085
+ # qhasm: y2 = *(float64 *) &d2
1086
+ # asm 1: fldl <d2=stack64#12
1087
+ # asm 2: fldl <d2=120(%rsp)
1088
+ fldl 120(%rsp)
1089
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h3#39:<h2#40:<y2#71:
1090
+
1091
+ # qhasm: y2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset2
1092
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset2(%rip)
1093
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h3#39:<h2#40:<y2#71:
1094
+
1095
+ # qhasm: h2 += y2
1096
+ # asm 1: faddp <y2=float80#1,<h2=float80#2
1097
+ # asm 2: faddp <y2=%st(0),<h2=%st(1)
1098
+ faddp %st(0),%st(1)
1099
+ # comment:fpstackfrombottom:<h1#41:<h0#42:<h3#39:<h2#40:
1100
+
1101
+ # qhasm: stacktop h1
1102
+ # asm 1: fxch <h1=float80#4
1103
+ # asm 2: fxch <h1=%st(3)
1104
+ fxch %st(3)
1105
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h3#39:<h1#41:
1106
+
1107
+ # qhasm: y1 = *(float64 *) &d1
1108
+ # asm 1: fldl <d1=stack64#11
1109
+ # asm 2: fldl <d1=112(%rsp)
1110
+ fldl 112(%rsp)
1111
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h3#39:<h1#41:<y1#72:
1112
+
1113
+ # qhasm: y1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset1
1114
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset1(%rip)
1115
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h3#39:<h1#41:<y1#72:
1116
+
1117
+ # qhasm: h1 += y1
1118
+ # asm 1: faddp <y1=float80#1,<h1=float80#2
1119
+ # asm 2: faddp <y1=%st(0),<h1=%st(1)
1120
+ faddp %st(0),%st(1)
1121
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h3#39:<h1#41:
1122
+
1123
+ # qhasm: stacktop h0
1124
+ # asm 1: fxch <h0=float80#3
1125
+ # asm 2: fxch <h0=%st(2)
1126
+ fxch %st(2)
1127
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1128
+
1129
+ # qhasm: y0 = *(float64 *) &d0
1130
+ # asm 1: fldl <d0=stack64#10
1131
+ # asm 2: fldl <d0=104(%rsp)
1132
+ fldl 104(%rsp)
1133
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<y0#73:
1134
+
1135
+ # qhasm: y0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset0
1136
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset0(%rip)
1137
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<y0#73:
1138
+
1139
+ # qhasm: h0 += y0
1140
+ # asm 1: faddp <y0=float80#1,<h0=float80#2
1141
+ # asm 2: faddp <y0=%st(0),<h0=%st(1)
1142
+ faddp %st(0),%st(1)
1143
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1144
+ # comment:fp stack unchanged by jump
1145
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1146
+
1147
+ # qhasm: goto multiplyaddatleast16bytes if !unsigned<
1148
+ jae ._multiplyaddatleast16bytes
1149
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1150
+ # comment:fp stack unchanged by fallthrough
1151
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1152
+
1153
+ # qhasm: multiplyaddatmost15bytes:
1154
+ ._multiplyaddatmost15bytes:
1155
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:
1156
+
1157
+ # qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
1158
+ fldl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
1159
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:
1160
+
1161
+ # qhasm: x0 += h3
1162
+ # asm 1: fadd <h3=float80#3,<x0=float80#1
1163
+ # asm 2: fadd <h3=%st(2),<x0=%st(0)
1164
+ fadd %st(2),%st(0)
1165
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:
1166
+
1167
+ # qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
1168
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
1169
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:
1170
+
1171
+ # qhasm: h3 -= x0
1172
+ # asm 1: fsubr <x0=float80#1,<h3=float80#3
1173
+ # asm 2: fsubr <x0=%st(0),<h3=%st(2)
1174
+ fsubr %st(0),%st(2)
1175
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:
1176
+
1177
+ # qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
1178
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
1179
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:
1180
+
1181
+ # qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
1182
+ fldl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
1183
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:
1184
+
1185
+ # qhasm: x1 += h0
1186
+ # asm 1: fadd <h0=float80#3,<x1=float80#1
1187
+ # asm 2: fadd <h0=%st(2),<x1=%st(0)
1188
+ fadd %st(2),%st(0)
1189
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:
1190
+
1191
+ # qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
1192
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
1193
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:
1194
+
1195
+ # qhasm: h0 -= x1
1196
+ # asm 1: fsubr <x1=float80#1,<h0=float80#3
1197
+ # asm 2: fsubr <x1=%st(0),<h0=%st(2)
1198
+ fsubr %st(0),%st(2)
1199
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:
1200
+
1201
+ # qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
1202
+ fldl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
1203
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:
1204
+
1205
+ # qhasm: x2 += h1
1206
+ # asm 1: fadd <h1=float80#6,<x2=float80#1
1207
+ # asm 2: fadd <h1=%st(5),<x2=%st(0)
1208
+ fadd %st(5),%st(0)
1209
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:
1210
+
1211
+ # qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
1212
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
1213
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:
1214
+
1215
+ # qhasm: h1 -= x2
1216
+ # asm 1: fsubr <x2=float80#1,<h1=float80#6
1217
+ # asm 2: fsubr <x2=%st(0),<h1=%st(5)
1218
+ fsubr %st(0),%st(5)
1219
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:
1220
+
1221
+ # qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
1222
+ fldl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
1223
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:<x3#77:
1224
+
1225
+ # qhasm: x3 += h2
1226
+ # asm 1: fadd <h2=float80#8,<x3=float80#1
1227
+ # asm 2: fadd <h2=%st(7),<x3=%st(0)
1228
+ fadd %st(7),%st(0)
1229
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:<x3#77:
1230
+
1231
+ # qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
1232
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
1233
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:<x3#77:
1234
+
1235
+ # qhasm: h2 -= x3
1236
+ # asm 1: fsubr <x3=float80#1,<h2=float80#8
1237
+ # asm 2: fsubr <x3=%st(0),<h2=%st(7)
1238
+ fsubr %st(0),%st(7)
1239
+ # comment:fpstackfrombottom:<h2#40:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:<x3#77:
1240
+
1241
+ # qhasm: internal stacktop h2
1242
+ # asm 1: fxch <h2=float80#8
1243
+ # asm 2: fxch <h2=%st(7)
1244
+ fxch %st(7)
1245
+
1246
+ # qhasm: x2 += h2
1247
+ # asm 1: faddp <h2=float80#1,<x2=float80#2
1248
+ # asm 2: faddp <h2=%st(0),<x2=%st(1)
1249
+ faddp %st(0),%st(1)
1250
+ # comment:fpstackfrombottom:<x3#77:<h1#41:<h3#39:<h0#42:<x0#74:<x1#75:<x2#76:
1251
+
1252
+ # qhasm: internal stacktop h1
1253
+ # asm 1: fxch <h1=float80#6
1254
+ # asm 2: fxch <h1=%st(5)
1255
+ fxch %st(5)
1256
+
1257
+ # qhasm: x1 += h1
1258
+ # asm 1: faddp <h1=float80#1,<x1=float80#2
1259
+ # asm 2: faddp <h1=%st(0),<x1=%st(1)
1260
+ faddp %st(0),%st(1)
1261
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h3#39:<h0#42:<x0#74:<x1#75:
1262
+
1263
+ # qhasm: internal stacktop h3
1264
+ # asm 1: fxch <h3=float80#4
1265
+ # asm 2: fxch <h3=%st(3)
1266
+ fxch %st(3)
1267
+
1268
+ # qhasm: x3 += h3
1269
+ # asm 1: faddp <h3=float80#1,<x3=float80#6
1270
+ # asm 2: faddp <h3=%st(0),<x3=%st(5)
1271
+ faddp %st(0),%st(5)
1272
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<x0#74:
1273
+
1274
+ # qhasm: x0 += h0
1275
+ # asm 1: faddp <h0=float80#1,<x0=float80#2
1276
+ # asm 2: faddp <h0=%st(0),<x0=%st(1)
1277
+ faddp %st(0),%st(1)
1278
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:
1279
+
1280
+ # qhasm: h3 = *(float64 *) &r3
1281
+ # asm 1: fldl <r3=stack64#19
1282
+ # asm 2: fldl <r3=176(%rsp)
1283
+ fldl 176(%rsp)
1284
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:
1285
+
1286
+ # qhasm: h3 *= x0
1287
+ # asm 1: fmul <x0=float80#2,<h3=float80#1
1288
+ # asm 2: fmul <x0=%st(1),<h3=%st(0)
1289
+ fmul %st(1),%st(0)
1290
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:
1291
+
1292
+ # qhasm: h2 = *(float64 *) &r2
1293
+ # asm 1: fldl <r2=stack64#17
1294
+ # asm 2: fldl <r2=160(%rsp)
1295
+ fldl 160(%rsp)
1296
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:<h2#40:
1297
+
1298
+ # qhasm: h2 *= x0
1299
+ # asm 1: fmul <x0=float80#3,<h2=float80#1
1300
+ # asm 2: fmul <x0=%st(2),<h2=%st(0)
1301
+ fmul %st(2),%st(0)
1302
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:<h2#40:
1303
+
1304
+ # qhasm: h1 = *(float64 *) &r1
1305
+ # asm 1: fldl <r1=stack64#15
1306
+ # asm 2: fldl <r1=144(%rsp)
1307
+ fldl 144(%rsp)
1308
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:<h2#40:<h1#41:
1309
+
1310
+ # qhasm: h1 *= x0
1311
+ # asm 1: fmul <x0=float80#4,<h1=float80#1
1312
+ # asm 2: fmul <x0=%st(3),<h1=%st(0)
1313
+ fmul %st(3),%st(0)
1314
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:<h2#40:<h1#41:
1315
+
1316
+ # qhasm: h0 = *(float64 *) &r0
1317
+ # asm 1: fldl <r0=stack64#14
1318
+ # asm 2: fldl <r0=136(%rsp)
1319
+ fldl 136(%rsp)
1320
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<x0#74:<h3#39:<h2#40:<h1#41:<h0#42:
1321
+
1322
+ # qhasm: h0 *= x0
1323
+ # asm 1: fmulp <x0=float80#1,<h0=float80#5
1324
+ # asm 2: fmulp <x0=%st(0),<h0=%st(4)
1325
+ fmulp %st(0),%st(4)
1326
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:
1327
+
1328
+ # qhasm: r2x1 = *(float64 *) &r2
1329
+ # asm 1: fldl <r2=stack64#17
1330
+ # asm 2: fldl <r2=160(%rsp)
1331
+ fldl 160(%rsp)
1332
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r2x1#78:
1333
+
1334
+ # qhasm: r2x1 *= x1
1335
+ # asm 1: fmul <x1=float80#6,<r2x1=float80#1
1336
+ # asm 2: fmul <x1=%st(5),<r2x1=%st(0)
1337
+ fmul %st(5),%st(0)
1338
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r2x1#78:
1339
+
1340
+ # qhasm: h3 += r2x1
1341
+ # asm 1: faddp <r2x1=float80#1,<h3=float80#4
1342
+ # asm 2: faddp <r2x1=%st(0),<h3=%st(3)
1343
+ faddp %st(0),%st(3)
1344
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:
1345
+
1346
+ # qhasm: r1x1 = *(float64 *) &r1
1347
+ # asm 1: fldl <r1=stack64#15
1348
+ # asm 2: fldl <r1=144(%rsp)
1349
+ fldl 144(%rsp)
1350
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r1x1#79:
1351
+
1352
+ # qhasm: r1x1 *= x1
1353
+ # asm 1: fmul <x1=float80#6,<r1x1=float80#1
1354
+ # asm 2: fmul <x1=%st(5),<r1x1=%st(0)
1355
+ fmul %st(5),%st(0)
1356
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r1x1#79:
1357
+
1358
+ # qhasm: h2 += r1x1
1359
+ # asm 1: faddp <r1x1=float80#1,<h2=float80#3
1360
+ # asm 2: faddp <r1x1=%st(0),<h2=%st(2)
1361
+ faddp %st(0),%st(2)
1362
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:
1363
+
1364
+ # qhasm: r0x1 = *(float64 *) &r0
1365
+ # asm 1: fldl <r0=stack64#14
1366
+ # asm 2: fldl <r0=136(%rsp)
1367
+ fldl 136(%rsp)
1368
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r0x1#80:
1369
+
1370
+ # qhasm: r0x1 *= x1
1371
+ # asm 1: fmul <x1=float80#6,<r0x1=float80#1
1372
+ # asm 2: fmul <x1=%st(5),<r0x1=%st(0)
1373
+ fmul %st(5),%st(0)
1374
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<r0x1#80:
1375
+
1376
+ # qhasm: h1 += r0x1
1377
+ # asm 1: faddp <r0x1=float80#1,<h1=float80#2
1378
+ # asm 2: faddp <r0x1=%st(0),<h1=%st(1)
1379
+ faddp %st(0),%st(1)
1380
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:
1381
+
1382
+ # qhasm: sr3x1 = *(float64 *) &sr3
1383
+ # asm 1: fldl <sr3=stack64#20
1384
+ # asm 2: fldl <sr3=184(%rsp)
1385
+ fldl 184(%rsp)
1386
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<x1#75:<h0#42:<h3#39:<h2#40:<h1#41:<sr3x1#81:
1387
+
1388
+ # qhasm: sr3x1 *= x1
1389
+ # asm 1: fmulp <x1=float80#1,<sr3x1=float80#6
1390
+ # asm 2: fmulp <x1=%st(0),<sr3x1=%st(5)
1391
+ fmulp %st(0),%st(5)
1392
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<sr3x1#81:<h0#42:<h3#39:<h2#40:<h1#41:
1393
+
1394
+ # qhasm: internal stacktop sr3x1
1395
+ # asm 1: fxch <sr3x1=float80#5
1396
+ # asm 2: fxch <sr3x1=%st(4)
1397
+ fxch %st(4)
1398
+
1399
+ # qhasm: h0 += sr3x1
1400
+ # asm 1: faddp <sr3x1=float80#1,<h0=float80#4
1401
+ # asm 2: faddp <sr3x1=%st(0),<h0=%st(3)
1402
+ faddp %st(0),%st(3)
1403
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:
1404
+
1405
+ # qhasm: r1x2 = *(float64 *) &r1
1406
+ # asm 1: fldl <r1=stack64#15
1407
+ # asm 2: fldl <r1=144(%rsp)
1408
+ fldl 144(%rsp)
1409
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<r1x2#82:
1410
+
1411
+ # qhasm: r1x2 *= x2
1412
+ # asm 1: fmul <x2=float80#6,<r1x2=float80#1
1413
+ # asm 2: fmul <x2=%st(5),<r1x2=%st(0)
1414
+ fmul %st(5),%st(0)
1415
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<r1x2#82:
1416
+
1417
+ # qhasm: h3 += r1x2
1418
+ # asm 1: faddp <r1x2=float80#1,<h3=float80#3
1419
+ # asm 2: faddp <r1x2=%st(0),<h3=%st(2)
1420
+ faddp %st(0),%st(2)
1421
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:
1422
+
1423
+ # qhasm: r0x2 = *(float64 *) &r0
1424
+ # asm 1: fldl <r0=stack64#14
1425
+ # asm 2: fldl <r0=136(%rsp)
1426
+ fldl 136(%rsp)
1427
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<r0x2#83:
1428
+
1429
+ # qhasm: r0x2 *= x2
1430
+ # asm 1: fmul <x2=float80#6,<r0x2=float80#1
1431
+ # asm 2: fmul <x2=%st(5),<r0x2=%st(0)
1432
+ fmul %st(5),%st(0)
1433
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<r0x2#83:
1434
+
1435
+ # qhasm: h2 += r0x2
1436
+ # asm 1: faddp <r0x2=float80#1,<h2=float80#2
1437
+ # asm 2: faddp <r0x2=%st(0),<h2=%st(1)
1438
+ faddp %st(0),%st(1)
1439
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:
1440
+
1441
+ # qhasm: sr3x2 = *(float64 *) &sr3
1442
+ # asm 1: fldl <sr3=stack64#20
1443
+ # asm 2: fldl <sr3=184(%rsp)
1444
+ fldl 184(%rsp)
1445
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<sr3x2#84:
1446
+
1447
+ # qhasm: sr3x2 *= x2
1448
+ # asm 1: fmul <x2=float80#6,<sr3x2=float80#1
1449
+ # asm 2: fmul <x2=%st(5),<sr3x2=%st(0)
1450
+ fmul %st(5),%st(0)
1451
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<sr3x2#84:
1452
+
1453
+ # qhasm: h1 += sr3x2
1454
+ # asm 1: faddp <sr3x2=float80#1,<h1=float80#5
1455
+ # asm 2: faddp <sr3x2=%st(0),<h1=%st(4)
1456
+ faddp %st(0),%st(4)
1457
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:
1458
+
1459
+ # qhasm: sr2x2 = *(float64 *) &sr2
1460
+ # asm 1: fldl <sr2=stack64#18
1461
+ # asm 2: fldl <sr2=168(%rsp)
1462
+ fldl 168(%rsp)
1463
+ # comment:fpstackfrombottom:<x3#77:<x2#76:<h1#41:<h0#42:<h3#39:<h2#40:<sr2x2#85:
1464
+
1465
+ # qhasm: sr2x2 *= x2
1466
+ # asm 1: fmulp <x2=float80#1,<sr2x2=float80#6
1467
+ # asm 2: fmulp <x2=%st(0),<sr2x2=%st(5)
1468
+ fmulp %st(0),%st(5)
1469
+ # comment:fpstackfrombottom:<x3#77:<sr2x2#85:<h1#41:<h0#42:<h3#39:<h2#40:
1470
+
1471
+ # qhasm: internal stacktop sr2x2
1472
+ # asm 1: fxch <sr2x2=float80#5
1473
+ # asm 2: fxch <sr2x2=%st(4)
1474
+ fxch %st(4)
1475
+
1476
+ # qhasm: h0 += sr2x2
1477
+ # asm 1: faddp <sr2x2=float80#1,<h0=float80#3
1478
+ # asm 2: faddp <sr2x2=%st(0),<h0=%st(2)
1479
+ faddp %st(0),%st(2)
1480
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:
1481
+
1482
+ # qhasm: r0x3 = *(float64 *) &r0
1483
+ # asm 1: fldl <r0=stack64#14
1484
+ # asm 2: fldl <r0=136(%rsp)
1485
+ fldl 136(%rsp)
1486
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<r0x3#86:
1487
+
1488
+ # qhasm: r0x3 *= x3
1489
+ # asm 1: fmul <x3=float80#6,<r0x3=float80#1
1490
+ # asm 2: fmul <x3=%st(5),<r0x3=%st(0)
1491
+ fmul %st(5),%st(0)
1492
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<r0x3#86:
1493
+
1494
+ # qhasm: h3 += r0x3
1495
+ # asm 1: faddp <r0x3=float80#1,<h3=float80#2
1496
+ # asm 2: faddp <r0x3=%st(0),<h3=%st(1)
1497
+ faddp %st(0),%st(1)
1498
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:
1499
+
1500
+ # qhasm: sr3x3 = *(float64 *) &sr3
1501
+ # asm 1: fldl <sr3=stack64#20
1502
+ # asm 2: fldl <sr3=184(%rsp)
1503
+ fldl 184(%rsp)
1504
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<sr3x3#87:
1505
+
1506
+ # qhasm: sr3x3 *= x3
1507
+ # asm 1: fmul <x3=float80#6,<sr3x3=float80#1
1508
+ # asm 2: fmul <x3=%st(5),<sr3x3=%st(0)
1509
+ fmul %st(5),%st(0)
1510
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<sr3x3#87:
1511
+
1512
+ # qhasm: h2 += sr3x3
1513
+ # asm 1: faddp <sr3x3=float80#1,<h2=float80#5
1514
+ # asm 2: faddp <sr3x3=%st(0),<h2=%st(4)
1515
+ faddp %st(0),%st(4)
1516
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:
1517
+
1518
+ # qhasm: sr2x3 = *(float64 *) &sr2
1519
+ # asm 1: fldl <sr2=stack64#18
1520
+ # asm 2: fldl <sr2=168(%rsp)
1521
+ fldl 168(%rsp)
1522
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<sr2x3#88:
1523
+
1524
+ # qhasm: sr2x3 *= x3
1525
+ # asm 1: fmul <x3=float80#6,<sr2x3=float80#1
1526
+ # asm 2: fmul <x3=%st(5),<sr2x3=%st(0)
1527
+ fmul %st(5),%st(0)
1528
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<sr2x3#88:
1529
+
1530
+ # qhasm: h1 += sr2x3
1531
+ # asm 1: faddp <sr2x3=float80#1,<h1=float80#4
1532
+ # asm 2: faddp <sr2x3=%st(0),<h1=%st(3)
1533
+ faddp %st(0),%st(3)
1534
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:
1535
+
1536
+ # qhasm: sr1x3 = *(float64 *) &sr1
1537
+ # asm 1: fldl <sr1=stack64#16
1538
+ # asm 2: fldl <sr1=152(%rsp)
1539
+ fldl 152(%rsp)
1540
+ # comment:fpstackfrombottom:<x3#77:<h2#40:<h1#41:<h0#42:<h3#39:<sr1x3#89:
1541
+
1542
+ # qhasm: sr1x3 *= x3
1543
+ # asm 1: fmulp <x3=float80#1,<sr1x3=float80#6
1544
+ # asm 2: fmulp <x3=%st(0),<sr1x3=%st(5)
1545
+ fmulp %st(0),%st(5)
1546
+ # comment:fpstackfrombottom:<sr1x3#89:<h2#40:<h1#41:<h0#42:<h3#39:
1547
+
1548
+ # qhasm: internal stacktop sr1x3
1549
+ # asm 1: fxch <sr1x3=float80#5
1550
+ # asm 2: fxch <sr1x3=%st(4)
1551
+ fxch %st(4)
1552
+
1553
+ # qhasm: h0 += sr1x3
1554
+ # asm 1: faddp <sr1x3=float80#1,<h0=float80#2
1555
+ # asm 2: faddp <sr1x3=%st(0),<h0=%st(1)
1556
+ faddp %st(0),%st(1)
1557
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1558
+ # comment:fp stack unchanged by fallthrough
1559
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1560
+
1561
+ # qhasm: addatmost15bytes:
1562
+ ._addatmost15bytes:
1563
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1564
+
1565
+ # qhasm: =? l - 0
1566
+ # asm 1: cmp $0,<l=int64#3
1567
+ # asm 2: cmp $0,<l=%rdx
1568
+ cmp $0,%rdx
1569
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1570
+ # comment:fp stack unchanged by jump
1571
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1572
+
1573
+ # qhasm: goto nomorebytes if =
1574
+ je ._nomorebytes
1575
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1576
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1577
+
1578
+ # qhasm: stack128 lastchunk
1579
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1580
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1581
+
1582
+ # qhasm: int64 destination
1583
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1584
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1585
+
1586
+ # qhasm: int64 numbytes
1587
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1588
+
1589
+ # qhasm: ((uint32 *)&lastchunk)[0] = 0
1590
+ # asm 1: movl $0,>lastchunk=stack128#1
1591
+ # asm 2: movl $0,>lastchunk=0(%rsp)
1592
+ movl $0,0(%rsp)
1593
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1594
+
1595
+ # qhasm: ((uint32 *)&lastchunk)[1] = 0
1596
+ # asm 1: movl $0,4+<lastchunk=stack128#1
1597
+ # asm 2: movl $0,4+<lastchunk=0(%rsp)
1598
+ movl $0,4+0(%rsp)
1599
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1600
+
1601
+ # qhasm: ((uint32 *)&lastchunk)[2] = 0
1602
+ # asm 1: movl $0,8+<lastchunk=stack128#1
1603
+ # asm 2: movl $0,8+<lastchunk=0(%rsp)
1604
+ movl $0,8+0(%rsp)
1605
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1606
+
1607
+ # qhasm: ((uint32 *)&lastchunk)[3] = 0
1608
+ # asm 1: movl $0,12+<lastchunk=stack128#1
1609
+ # asm 2: movl $0,12+<lastchunk=0(%rsp)
1610
+ movl $0,12+0(%rsp)
1611
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1612
+
1613
+ # qhasm: destination = &lastchunk
1614
+ # asm 1: leaq <lastchunk=stack128#1,>destination=int64#1
1615
+ # asm 2: leaq <lastchunk=0(%rsp),>destination=%rdi
1616
+ leaq 0(%rsp),%rdi
1617
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1618
+
1619
+ # qhasm: numbytes = l
1620
+ # asm 1: mov <l=int64#3,>numbytes=int64#4
1621
+ # asm 2: mov <l=%rdx,>numbytes=%rcx
1622
+ mov %rdx,%rcx
1623
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1624
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1625
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1626
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1627
+
1628
+ # qhasm: while (numbytes) { *destination++ = *m++; --numbytes }
1629
+ rep movsb
1630
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1631
+
1632
+ # qhasm: *(uint8 *) (destination + 0) = 1
1633
+ # asm 1: movb $1,0(<destination=int64#1)
1634
+ # asm 2: movb $1,0(<destination=%rdi)
1635
+ movb $1,0(%rdi)
1636
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1637
+
1638
+ # qhasm: m3 = ((uint32 *)&lastchunk)[3]
1639
+ # asm 1: movl 12+<lastchunk=stack128#1,>m3=int64#1d
1640
+ # asm 2: movl 12+<lastchunk=0(%rsp),>m3=%edi
1641
+ movl 12+0(%rsp),%edi
1642
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1643
+
1644
+ # qhasm: m2 = ((uint32 *)&lastchunk)[2]
1645
+ # asm 1: movl 8+<lastchunk=stack128#1,>m2=int64#2d
1646
+ # asm 2: movl 8+<lastchunk=0(%rsp),>m2=%esi
1647
+ movl 8+0(%rsp),%esi
1648
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1649
+
1650
+ # qhasm: m1 = ((uint32 *)&lastchunk)[1]
1651
+ # asm 1: movl 4+<lastchunk=stack128#1,>m1=int64#3d
1652
+ # asm 2: movl 4+<lastchunk=0(%rsp),>m1=%edx
1653
+ movl 4+0(%rsp),%edx
1654
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1655
+
1656
+ # qhasm: m0 = ((uint32 *)&lastchunk)[0]
1657
+ # asm 1: movl <lastchunk=stack128#1,>m0=int64#4d
1658
+ # asm 2: movl <lastchunk=0(%rsp),>m0=%ecx
1659
+ movl 0(%rsp),%ecx
1660
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1661
+
1662
+ # qhasm: inplace d3 bottom = m3
1663
+ # asm 1: movl <m3=int64#1d,<d3=stack64#13
1664
+ # asm 2: movl <m3=%edi,<d3=128(%rsp)
1665
+ movl %edi,128(%rsp)
1666
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1667
+
1668
+ # qhasm: inplace d2 bottom = m2
1669
+ # asm 1: movl <m2=int64#2d,<d2=stack64#12
1670
+ # asm 2: movl <m2=%esi,<d2=120(%rsp)
1671
+ movl %esi,120(%rsp)
1672
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1673
+
1674
+ # qhasm: inplace d1 bottom = m1
1675
+ # asm 1: movl <m1=int64#3d,<d1=stack64#11
1676
+ # asm 2: movl <m1=%edx,<d1=112(%rsp)
1677
+ movl %edx,112(%rsp)
1678
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1679
+
1680
+ # qhasm: inplace d0 bottom = m0
1681
+ # asm 1: movl <m0=int64#4d,<d0=stack64#10
1682
+ # asm 2: movl <m0=%ecx,<d0=104(%rsp)
1683
+ movl %ecx,104(%rsp)
1684
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
1685
+
1686
+ # qhasm: internal stacktop h3
1687
+ # asm 1: fxch <h3=float80#4
1688
+ # asm 2: fxch <h3=%st(3)
1689
+ fxch %st(3)
1690
+
1691
+ # qhasm: h3 += *(float64 *) &d3
1692
+ # asm 1: faddl <d3=stack64#13
1693
+ # asm 2: faddl <d3=128(%rsp)
1694
+ faddl 128(%rsp)
1695
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h1#41:<h3#39:
1696
+
1697
+ # qhasm: h3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset3
1698
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset3(%rip)
1699
+ # comment:fpstackfrombottom:<h0#42:<h2#40:<h1#41:<h3#39:
1700
+
1701
+ # qhasm: internal stacktop h2
1702
+ # asm 1: fxch <h2=float80#3
1703
+ # asm 2: fxch <h2=%st(2)
1704
+ fxch %st(2)
1705
+
1706
+ # qhasm: h2 += *(float64 *) &d2
1707
+ # asm 1: faddl <d2=stack64#12
1708
+ # asm 2: faddl <d2=120(%rsp)
1709
+ faddl 120(%rsp)
1710
+ # comment:fpstackfrombottom:<h0#42:<h3#39:<h1#41:<h2#40:
1711
+
1712
+ # qhasm: h2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset2
1713
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset2(%rip)
1714
+ # comment:fpstackfrombottom:<h0#42:<h3#39:<h1#41:<h2#40:
1715
+
1716
+ # qhasm: internal stacktop h1
1717
+ # asm 1: fxch <h1=float80#2
1718
+ # asm 2: fxch <h1=%st(1)
1719
+ fxch %st(1)
1720
+
1721
+ # qhasm: h1 += *(float64 *) &d1
1722
+ # asm 1: faddl <d1=stack64#11
1723
+ # asm 2: faddl <d1=112(%rsp)
1724
+ faddl 112(%rsp)
1725
+ # comment:fpstackfrombottom:<h0#42:<h3#39:<h2#40:<h1#41:
1726
+
1727
+ # qhasm: h1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset1
1728
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset1(%rip)
1729
+ # comment:fpstackfrombottom:<h0#42:<h3#39:<h2#40:<h1#41:
1730
+
1731
+ # qhasm: internal stacktop h0
1732
+ # asm 1: fxch <h0=float80#4
1733
+ # asm 2: fxch <h0=%st(3)
1734
+ fxch %st(3)
1735
+
1736
+ # qhasm: h0 += *(float64 *) &d0
1737
+ # asm 1: faddl <d0=stack64#10
1738
+ # asm 2: faddl <d0=104(%rsp)
1739
+ faddl 104(%rsp)
1740
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:
1741
+
1742
+ # qhasm: h0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_doffset0
1743
+ fsubl crypto_onetimeauth_poly1305_amd64_doffset0(%rip)
1744
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:
1745
+
1746
+ # qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
1747
+ fldl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
1748
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:
1749
+
1750
+ # qhasm: x0 += h3
1751
+ # asm 1: fadd <h3=float80#4,<x0=float80#1
1752
+ # asm 2: fadd <h3=%st(3),<x0=%st(0)
1753
+ fadd %st(3),%st(0)
1754
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:
1755
+
1756
+ # qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
1757
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
1758
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:
1759
+
1760
+ # qhasm: h3 -= x0
1761
+ # asm 1: fsubr <x0=float80#1,<h3=float80#4
1762
+ # asm 2: fsubr <x0=%st(0),<h3=%st(3)
1763
+ fsubr %st(0),%st(3)
1764
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:
1765
+
1766
+ # qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
1767
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
1768
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:
1769
+
1770
+ # qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
1771
+ fldl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
1772
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:
1773
+
1774
+ # qhasm: x1 += h0
1775
+ # asm 1: fadd <h0=float80#3,<x1=float80#1
1776
+ # asm 2: fadd <h0=%st(2),<x1=%st(0)
1777
+ fadd %st(2),%st(0)
1778
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:
1779
+
1780
+ # qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
1781
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
1782
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:
1783
+
1784
+ # qhasm: h0 -= x1
1785
+ # asm 1: fsubr <x1=float80#1,<h0=float80#3
1786
+ # asm 2: fsubr <x1=%st(0),<h0=%st(2)
1787
+ fsubr %st(0),%st(2)
1788
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:
1789
+
1790
+ # qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
1791
+ fldl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
1792
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:
1793
+
1794
+ # qhasm: x2 += h1
1795
+ # asm 1: fadd <h1=float80#7,<x2=float80#1
1796
+ # asm 2: fadd <h1=%st(6),<x2=%st(0)
1797
+ fadd %st(6),%st(0)
1798
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:
1799
+
1800
+ # qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
1801
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
1802
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:
1803
+
1804
+ # qhasm: h1 -= x2
1805
+ # asm 1: fsubr <x2=float80#1,<h1=float80#7
1806
+ # asm 2: fsubr <x2=%st(0),<h1=%st(6)
1807
+ fsubr %st(0),%st(6)
1808
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:
1809
+
1810
+ # qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
1811
+ fldl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
1812
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:<x3#101:
1813
+
1814
+ # qhasm: x3 += h2
1815
+ # asm 1: fadd <h2=float80#6,<x3=float80#1
1816
+ # asm 2: fadd <h2=%st(5),<x3=%st(0)
1817
+ fadd %st(5),%st(0)
1818
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:<x3#101:
1819
+
1820
+ # qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
1821
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
1822
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:<x3#101:
1823
+
1824
+ # qhasm: h2 -= x3
1825
+ # asm 1: fsubr <x3=float80#1,<h2=float80#6
1826
+ # asm 2: fsubr <x3=%st(0),<h2=%st(5)
1827
+ fsubr %st(0),%st(5)
1828
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<h0#42:<x0#98:<x1#99:<x2#100:<x3#101:
1829
+
1830
+ # qhasm: internal stacktop h0
1831
+ # asm 1: fxch <h0=float80#5
1832
+ # asm 2: fxch <h0=%st(4)
1833
+ fxch %st(4)
1834
+
1835
+ # qhasm: x0 += h0
1836
+ # asm 1: faddp <h0=float80#1,<x0=float80#4
1837
+ # asm 2: faddp <h0=%st(0),<x0=%st(3)
1838
+ faddp %st(0),%st(3)
1839
+ # comment:fpstackfrombottom:<h1#41:<h3#39:<h2#40:<x3#101:<x0#98:<x1#99:<x2#100:
1840
+
1841
+ # qhasm: internal stacktop h1
1842
+ # asm 1: fxch <h1=float80#7
1843
+ # asm 2: fxch <h1=%st(6)
1844
+ fxch %st(6)
1845
+
1846
+ # qhasm: x1 += h1
1847
+ # asm 1: faddp <h1=float80#1,<x1=float80#2
1848
+ # asm 2: faddp <h1=%st(0),<x1=%st(1)
1849
+ faddp %st(0),%st(1)
1850
+ # comment:fpstackfrombottom:<x2#100:<h3#39:<h2#40:<x3#101:<x0#98:<x1#99:
1851
+
1852
+ # qhasm: internal stacktop h2
1853
+ # asm 1: fxch <h2=float80#4
1854
+ # asm 2: fxch <h2=%st(3)
1855
+ fxch %st(3)
1856
+
1857
+ # qhasm: x2 += h2
1858
+ # asm 1: faddp <h2=float80#1,<x2=float80#6
1859
+ # asm 2: faddp <h2=%st(0),<x2=%st(5)
1860
+ faddp %st(0),%st(5)
1861
+ # comment:fpstackfrombottom:<x2#100:<h3#39:<x1#99:<x3#101:<x0#98:
1862
+
1863
+ # qhasm: internal stacktop h3
1864
+ # asm 1: fxch <h3=float80#4
1865
+ # asm 2: fxch <h3=%st(3)
1866
+ fxch %st(3)
1867
+
1868
+ # qhasm: x3 += h3
1869
+ # asm 1: faddp <h3=float80#1,<x3=float80#2
1870
+ # asm 2: faddp <h3=%st(0),<x3=%st(1)
1871
+ faddp %st(0),%st(1)
1872
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:
1873
+
1874
+ # qhasm: h3 = *(float64 *) &r3
1875
+ # asm 1: fldl <r3=stack64#19
1876
+ # asm 2: fldl <r3=176(%rsp)
1877
+ fldl 176(%rsp)
1878
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:
1879
+
1880
+ # qhasm: h3 *= x0
1881
+ # asm 1: fmul <x0=float80#4,<h3=float80#1
1882
+ # asm 2: fmul <x0=%st(3),<h3=%st(0)
1883
+ fmul %st(3),%st(0)
1884
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:
1885
+
1886
+ # qhasm: h2 = *(float64 *) &r2
1887
+ # asm 1: fldl <r2=stack64#17
1888
+ # asm 2: fldl <r2=160(%rsp)
1889
+ fldl 160(%rsp)
1890
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:<h2#40:
1891
+
1892
+ # qhasm: h2 *= x0
1893
+ # asm 1: fmul <x0=float80#5,<h2=float80#1
1894
+ # asm 2: fmul <x0=%st(4),<h2=%st(0)
1895
+ fmul %st(4),%st(0)
1896
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:<h2#40:
1897
+
1898
+ # qhasm: h1 = *(float64 *) &r1
1899
+ # asm 1: fldl <r1=stack64#15
1900
+ # asm 2: fldl <r1=144(%rsp)
1901
+ fldl 144(%rsp)
1902
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1903
+
1904
+ # qhasm: h1 *= x0
1905
+ # asm 1: fmul <x0=float80#6,<h1=float80#1
1906
+ # asm 2: fmul <x0=%st(5),<h1=%st(0)
1907
+ fmul %st(5),%st(0)
1908
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1909
+
1910
+ # qhasm: h0 = *(float64 *) &r0
1911
+ # asm 1: fldl <r0=stack64#14
1912
+ # asm 2: fldl <r0=136(%rsp)
1913
+ fldl 136(%rsp)
1914
+ # comment:fpstackfrombottom:<x2#100:<x0#98:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<h0#42:
1915
+
1916
+ # qhasm: h0 *= x0
1917
+ # asm 1: fmulp <x0=float80#1,<h0=float80#7
1918
+ # asm 2: fmulp <x0=%st(0),<h0=%st(6)
1919
+ fmulp %st(0),%st(6)
1920
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1921
+
1922
+ # qhasm: r2x1 = *(float64 *) &r2
1923
+ # asm 1: fldl <r2=stack64#17
1924
+ # asm 2: fldl <r2=160(%rsp)
1925
+ fldl 160(%rsp)
1926
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r2x1#102:
1927
+
1928
+ # qhasm: r2x1 *= x1
1929
+ # asm 1: fmul <x1=float80#6,<r2x1=float80#1
1930
+ # asm 2: fmul <x1=%st(5),<r2x1=%st(0)
1931
+ fmul %st(5),%st(0)
1932
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r2x1#102:
1933
+
1934
+ # qhasm: h3 += r2x1
1935
+ # asm 1: faddp <r2x1=float80#1,<h3=float80#4
1936
+ # asm 2: faddp <r2x1=%st(0),<h3=%st(3)
1937
+ faddp %st(0),%st(3)
1938
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1939
+
1940
+ # qhasm: r1x1 = *(float64 *) &r1
1941
+ # asm 1: fldl <r1=stack64#15
1942
+ # asm 2: fldl <r1=144(%rsp)
1943
+ fldl 144(%rsp)
1944
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r1x1#103:
1945
+
1946
+ # qhasm: r1x1 *= x1
1947
+ # asm 1: fmul <x1=float80#6,<r1x1=float80#1
1948
+ # asm 2: fmul <x1=%st(5),<r1x1=%st(0)
1949
+ fmul %st(5),%st(0)
1950
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r1x1#103:
1951
+
1952
+ # qhasm: h2 += r1x1
1953
+ # asm 1: faddp <r1x1=float80#1,<h2=float80#3
1954
+ # asm 2: faddp <r1x1=%st(0),<h2=%st(2)
1955
+ faddp %st(0),%st(2)
1956
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1957
+
1958
+ # qhasm: r0x1 = *(float64 *) &r0
1959
+ # asm 1: fldl <r0=stack64#14
1960
+ # asm 2: fldl <r0=136(%rsp)
1961
+ fldl 136(%rsp)
1962
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r0x1#104:
1963
+
1964
+ # qhasm: r0x1 *= x1
1965
+ # asm 1: fmul <x1=float80#6,<r0x1=float80#1
1966
+ # asm 2: fmul <x1=%st(5),<r0x1=%st(0)
1967
+ fmul %st(5),%st(0)
1968
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<r0x1#104:
1969
+
1970
+ # qhasm: h1 += r0x1
1971
+ # asm 1: faddp <r0x1=float80#1,<h1=float80#2
1972
+ # asm 2: faddp <r0x1=%st(0),<h1=%st(1)
1973
+ faddp %st(0),%st(1)
1974
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:
1975
+
1976
+ # qhasm: sr3x1 = *(float64 *) &sr3
1977
+ # asm 1: fldl <sr3=stack64#20
1978
+ # asm 2: fldl <sr3=184(%rsp)
1979
+ fldl 184(%rsp)
1980
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<x1#99:<x3#101:<h3#39:<h2#40:<h1#41:<sr3x1#105:
1981
+
1982
+ # qhasm: sr3x1 *= x1
1983
+ # asm 1: fmulp <x1=float80#1,<sr3x1=float80#6
1984
+ # asm 2: fmulp <x1=%st(0),<sr3x1=%st(5)
1985
+ fmulp %st(0),%st(5)
1986
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<sr3x1#105:<x3#101:<h3#39:<h2#40:<h1#41:
1987
+
1988
+ # qhasm: internal stacktop sr3x1
1989
+ # asm 1: fxch <sr3x1=float80#5
1990
+ # asm 2: fxch <sr3x1=%st(4)
1991
+ fxch %st(4)
1992
+
1993
+ # qhasm: h0 += sr3x1
1994
+ # asm 1: faddp <sr3x1=float80#1,<h0=float80#6
1995
+ # asm 2: faddp <sr3x1=%st(0),<h0=%st(5)
1996
+ faddp %st(0),%st(5)
1997
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:
1998
+
1999
+ # qhasm: r1x2 = *(float64 *) &r1
2000
+ # asm 1: fldl <r1=stack64#15
2001
+ # asm 2: fldl <r1=144(%rsp)
2002
+ fldl 144(%rsp)
2003
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<r1x2#106:
2004
+
2005
+ # qhasm: r1x2 *= x2
2006
+ # asm 1: fmul <x2=float80#7,<r1x2=float80#1
2007
+ # asm 2: fmul <x2=%st(6),<r1x2=%st(0)
2008
+ fmul %st(6),%st(0)
2009
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<r1x2#106:
2010
+
2011
+ # qhasm: h3 += r1x2
2012
+ # asm 1: faddp <r1x2=float80#1,<h3=float80#3
2013
+ # asm 2: faddp <r1x2=%st(0),<h3=%st(2)
2014
+ faddp %st(0),%st(2)
2015
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:
2016
+
2017
+ # qhasm: r0x2 = *(float64 *) &r0
2018
+ # asm 1: fldl <r0=stack64#14
2019
+ # asm 2: fldl <r0=136(%rsp)
2020
+ fldl 136(%rsp)
2021
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<r0x2#107:
2022
+
2023
+ # qhasm: r0x2 *= x2
2024
+ # asm 1: fmul <x2=float80#7,<r0x2=float80#1
2025
+ # asm 2: fmul <x2=%st(6),<r0x2=%st(0)
2026
+ fmul %st(6),%st(0)
2027
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<r0x2#107:
2028
+
2029
+ # qhasm: h2 += r0x2
2030
+ # asm 1: faddp <r0x2=float80#1,<h2=float80#2
2031
+ # asm 2: faddp <r0x2=%st(0),<h2=%st(1)
2032
+ faddp %st(0),%st(1)
2033
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:
2034
+
2035
+ # qhasm: sr3x2 = *(float64 *) &sr3
2036
+ # asm 1: fldl <sr3=stack64#20
2037
+ # asm 2: fldl <sr3=184(%rsp)
2038
+ fldl 184(%rsp)
2039
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<sr3x2#108:
2040
+
2041
+ # qhasm: sr3x2 *= x2
2042
+ # asm 1: fmul <x2=float80#7,<sr3x2=float80#1
2043
+ # asm 2: fmul <x2=%st(6),<sr3x2=%st(0)
2044
+ fmul %st(6),%st(0)
2045
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<sr3x2#108:
2046
+
2047
+ # qhasm: h1 += sr3x2
2048
+ # asm 1: faddp <sr3x2=float80#1,<h1=float80#5
2049
+ # asm 2: faddp <sr3x2=%st(0),<h1=%st(4)
2050
+ faddp %st(0),%st(4)
2051
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:
2052
+
2053
+ # qhasm: sr2x2 = *(float64 *) &sr2
2054
+ # asm 1: fldl <sr2=stack64#18
2055
+ # asm 2: fldl <sr2=168(%rsp)
2056
+ fldl 168(%rsp)
2057
+ # comment:fpstackfrombottom:<x2#100:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:<sr2x2#109:
2058
+
2059
+ # qhasm: sr2x2 *= x2
2060
+ # asm 1: fmulp <x2=float80#1,<sr2x2=float80#7
2061
+ # asm 2: fmulp <x2=%st(0),<sr2x2=%st(6)
2062
+ fmulp %st(0),%st(6)
2063
+ # comment:fpstackfrombottom:<sr2x2#109:<h0#42:<h1#41:<x3#101:<h3#39:<h2#40:
2064
+
2065
+ # qhasm: internal stacktop sr2x2
2066
+ # asm 1: fxch <sr2x2=float80#6
2067
+ # asm 2: fxch <sr2x2=%st(5)
2068
+ fxch %st(5)
2069
+
2070
+ # qhasm: h0 += sr2x2
2071
+ # asm 1: faddp <sr2x2=float80#1,<h0=float80#5
2072
+ # asm 2: faddp <sr2x2=%st(0),<h0=%st(4)
2073
+ faddp %st(0),%st(4)
2074
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:
2075
+
2076
+ # qhasm: r0x3 = *(float64 *) &r0
2077
+ # asm 1: fldl <r0=stack64#14
2078
+ # asm 2: fldl <r0=136(%rsp)
2079
+ fldl 136(%rsp)
2080
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<r0x3#110:
2081
+
2082
+ # qhasm: r0x3 *= x3
2083
+ # asm 1: fmul <x3=float80#3,<r0x3=float80#1
2084
+ # asm 2: fmul <x3=%st(2),<r0x3=%st(0)
2085
+ fmul %st(2),%st(0)
2086
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<r0x3#110:
2087
+
2088
+ # qhasm: h3 += r0x3
2089
+ # asm 1: faddp <r0x3=float80#1,<h3=float80#2
2090
+ # asm 2: faddp <r0x3=%st(0),<h3=%st(1)
2091
+ faddp %st(0),%st(1)
2092
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:
2093
+
2094
+ # qhasm: sr3x3 = *(float64 *) &sr3
2095
+ # asm 1: fldl <sr3=stack64#20
2096
+ # asm 2: fldl <sr3=184(%rsp)
2097
+ fldl 184(%rsp)
2098
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<sr3x3#111:
2099
+
2100
+ # qhasm: sr3x3 *= x3
2101
+ # asm 1: fmul <x3=float80#3,<sr3x3=float80#1
2102
+ # asm 2: fmul <x3=%st(2),<sr3x3=%st(0)
2103
+ fmul %st(2),%st(0)
2104
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<sr3x3#111:
2105
+
2106
+ # qhasm: h2 += sr3x3
2107
+ # asm 1: faddp <sr3x3=float80#1,<h2=float80#6
2108
+ # asm 2: faddp <sr3x3=%st(0),<h2=%st(5)
2109
+ faddp %st(0),%st(5)
2110
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:
2111
+
2112
+ # qhasm: sr2x3 = *(float64 *) &sr2
2113
+ # asm 1: fldl <sr2=stack64#18
2114
+ # asm 2: fldl <sr2=168(%rsp)
2115
+ fldl 168(%rsp)
2116
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<sr2x3#112:
2117
+
2118
+ # qhasm: sr2x3 *= x3
2119
+ # asm 1: fmul <x3=float80#3,<sr2x3=float80#1
2120
+ # asm 2: fmul <x3=%st(2),<sr2x3=%st(0)
2121
+ fmul %st(2),%st(0)
2122
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<sr2x3#112:
2123
+
2124
+ # qhasm: h1 += sr2x3
2125
+ # asm 1: faddp <sr2x3=float80#1,<h1=float80#4
2126
+ # asm 2: faddp <sr2x3=%st(0),<h1=%st(3)
2127
+ faddp %st(0),%st(3)
2128
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:
2129
+
2130
+ # qhasm: sr1x3 = *(float64 *) &sr1
2131
+ # asm 1: fldl <sr1=stack64#16
2132
+ # asm 2: fldl <sr1=152(%rsp)
2133
+ fldl 152(%rsp)
2134
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<x3#101:<h3#39:<sr1x3#113:
2135
+
2136
+ # qhasm: sr1x3 *= x3
2137
+ # asm 1: fmulp <x3=float80#1,<sr1x3=float80#3
2138
+ # asm 2: fmulp <x3=%st(0),<sr1x3=%st(2)
2139
+ fmulp %st(0),%st(2)
2140
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<sr1x3#113:<h3#39:
2141
+
2142
+ # qhasm: internal stacktop sr1x3
2143
+ # asm 1: fxch <sr1x3=float80#2
2144
+ # asm 2: fxch <sr1x3=%st(1)
2145
+ fxch %st(1)
2146
+
2147
+ # qhasm: h0 += sr1x3
2148
+ # asm 1: faddp <sr1x3=float80#1,<h0=float80#4
2149
+ # asm 2: faddp <sr1x3=%st(0),<h0=%st(3)
2150
+ faddp %st(0),%st(3)
2151
+ # comment:fpstackfrombottom:<h2#40:<h0#42:<h1#41:<h3#39:
2152
+ # comment:automatically reorganizing fp stack for fallthrough
2153
+
2154
+ # qhasm: internal stacktop h2
2155
+ # asm 1: fxch <h2=float80#4
2156
+ # asm 2: fxch <h2=%st(3)
2157
+ fxch %st(3)
2158
+ # comment:fpstackfrombottom:<h3#39:<h0#42:<h1#41:<h2#40:
2159
+
2160
+ # qhasm: internal stacktop h0
2161
+ # asm 1: fxch <h0=float80#3
2162
+ # asm 2: fxch <h0=%st(2)
2163
+ fxch %st(2)
2164
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
2165
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
2166
+
2167
+ # qhasm: nomorebytes:
2168
+ ._nomorebytes:
2169
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:
2170
+
2171
+ # qhasm: x0 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
2172
+ fldl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
2173
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:
2174
+
2175
+ # qhasm: x0 += h3
2176
+ # asm 1: fadd <h3=float80#5,<x0=float80#1
2177
+ # asm 2: fadd <h3=%st(4),<x0=%st(0)
2178
+ fadd %st(4),%st(0)
2179
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:
2180
+
2181
+ # qhasm: x0 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha130
2182
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha130(%rip)
2183
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:
2184
+
2185
+ # qhasm: h3 -= x0
2186
+ # asm 1: fsubr <x0=float80#1,<h3=float80#5
2187
+ # asm 2: fsubr <x0=%st(0),<h3=%st(4)
2188
+ fsubr %st(0),%st(4)
2189
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:
2190
+
2191
+ # qhasm: x0 *= *(float64 *) &crypto_onetimeauth_poly1305_amd64_scale
2192
+ fmull crypto_onetimeauth_poly1305_amd64_scale(%rip)
2193
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:
2194
+
2195
+ # qhasm: x1 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
2196
+ fldl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
2197
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:
2198
+
2199
+ # qhasm: x1 += h0
2200
+ # asm 1: fadd <h0=float80#3,<x1=float80#1
2201
+ # asm 2: fadd <h0=%st(2),<x1=%st(0)
2202
+ fadd %st(2),%st(0)
2203
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:
2204
+
2205
+ # qhasm: x1 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha32
2206
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha32(%rip)
2207
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:
2208
+
2209
+ # qhasm: h0 -= x1
2210
+ # asm 1: fsubr <x1=float80#1,<h0=float80#3
2211
+ # asm 2: fsubr <x1=%st(0),<h0=%st(2)
2212
+ fsubr %st(0),%st(2)
2213
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:
2214
+
2215
+ # qhasm: x2 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
2216
+ fldl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
2217
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:
2218
+
2219
+ # qhasm: x2 += h1
2220
+ # asm 1: fadd <h1=float80#5,<x2=float80#1
2221
+ # asm 2: fadd <h1=%st(4),<x2=%st(0)
2222
+ fadd %st(4),%st(0)
2223
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:
2224
+
2225
+ # qhasm: x2 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha64
2226
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha64(%rip)
2227
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:
2228
+
2229
+ # qhasm: h1 -= x2
2230
+ # asm 1: fsubr <x2=float80#1,<h1=float80#5
2231
+ # asm 2: fsubr <x2=%st(0),<h1=%st(4)
2232
+ fsubr %st(0),%st(4)
2233
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:
2234
+
2235
+ # qhasm: x3 = *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
2236
+ fldl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
2237
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:<x3#117:
2238
+
2239
+ # qhasm: x3 += h2
2240
+ # asm 1: fadd <h2=float80#7,<x3=float80#1
2241
+ # asm 2: fadd <h2=%st(6),<x3=%st(0)
2242
+ fadd %st(6),%st(0)
2243
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:<x3#117:
2244
+
2245
+ # qhasm: x3 -= *(float64 *) &crypto_onetimeauth_poly1305_amd64_alpha96
2246
+ fsubl crypto_onetimeauth_poly1305_amd64_alpha96(%rip)
2247
+ # comment:fpstackfrombottom:<h3#39:<h2#40:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:<x3#117:
2248
+
2249
+ # qhasm: stacktop h2
2250
+ # asm 1: fxch <h2=float80#7
2251
+ # asm 2: fxch <h2=%st(6)
2252
+ fxch %st(6)
2253
+ # comment:fpstackfrombottom:<h3#39:<x3#117:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:<h2#40:
2254
+
2255
+ # qhasm: h2 -= x3
2256
+ # asm 1: fsub <x3=float80#7,<h2=float80#1
2257
+ # asm 2: fsub <x3=%st(6),<h2=%st(0)
2258
+ fsub %st(6),%st(0)
2259
+ # comment:fpstackfrombottom:<h3#39:<x3#117:<h1#41:<h0#42:<x0#114:<x1#115:<x2#116:<h2#40:
2260
+
2261
+ # qhasm: internal stacktop h0
2262
+ # asm 1: fxch <h0=float80#5
2263
+ # asm 2: fxch <h0=%st(4)
2264
+ fxch %st(4)
2265
+
2266
+ # qhasm: x0 += h0
2267
+ # asm 1: faddp <h0=float80#1,<x0=float80#4
2268
+ # asm 2: faddp <h0=%st(0),<x0=%st(3)
2269
+ faddp %st(0),%st(3)
2270
+ # comment:fpstackfrombottom:<h3#39:<x3#117:<h1#41:<h2#40:<x0#114:<x1#115:<x2#116:
2271
+
2272
+ # qhasm: internal stacktop h1
2273
+ # asm 1: fxch <h1=float80#5
2274
+ # asm 2: fxch <h1=%st(4)
2275
+ fxch %st(4)
2276
+
2277
+ # qhasm: x1 += h1
2278
+ # asm 1: faddp <h1=float80#1,<x1=float80#2
2279
+ # asm 2: faddp <h1=%st(0),<x1=%st(1)
2280
+ faddp %st(0),%st(1)
2281
+ # comment:fpstackfrombottom:<h3#39:<x3#117:<x2#116:<h2#40:<x0#114:<x1#115:
2282
+
2283
+ # qhasm: internal stacktop h2
2284
+ # asm 1: fxch <h2=float80#3
2285
+ # asm 2: fxch <h2=%st(2)
2286
+ fxch %st(2)
2287
+
2288
+ # qhasm: x2 += h2
2289
+ # asm 1: faddp <h2=float80#1,<x2=float80#4
2290
+ # asm 2: faddp <h2=%st(0),<x2=%st(3)
2291
+ faddp %st(0),%st(3)
2292
+ # comment:fpstackfrombottom:<h3#39:<x3#117:<x2#116:<x1#115:<x0#114:
2293
+
2294
+ # qhasm: internal stacktop h3
2295
+ # asm 1: fxch <h3=float80#5
2296
+ # asm 2: fxch <h3=%st(4)
2297
+ fxch %st(4)
2298
+
2299
+ # qhasm: x3 += h3
2300
+ # asm 1: faddp <h3=float80#1,<x3=float80#4
2301
+ # asm 2: faddp <h3=%st(0),<x3=%st(3)
2302
+ faddp %st(0),%st(3)
2303
+ # comment:fpstackfrombottom:<x0#114:<x3#117:<x2#116:<x1#115:
2304
+
2305
+ # qhasm: internal stacktop x0
2306
+ # asm 1: fxch <x0=float80#4
2307
+ # asm 2: fxch <x0=%st(3)
2308
+ fxch %st(3)
2309
+
2310
+ # qhasm: x0 += *(float64 *) &crypto_onetimeauth_poly1305_amd64_hoffset0
2311
+ faddl crypto_onetimeauth_poly1305_amd64_hoffset0(%rip)
2312
+ # comment:fpstackfrombottom:<x1#115:<x3#117:<x2#116:<x0#114:
2313
+
2314
+ # qhasm: internal stacktop x1
2315
+ # asm 1: fxch <x1=float80#4
2316
+ # asm 2: fxch <x1=%st(3)
2317
+ fxch %st(3)
2318
+
2319
+ # qhasm: x1 += *(float64 *) &crypto_onetimeauth_poly1305_amd64_hoffset1
2320
+ faddl crypto_onetimeauth_poly1305_amd64_hoffset1(%rip)
2321
+ # comment:fpstackfrombottom:<x0#114:<x3#117:<x2#116:<x1#115:
2322
+
2323
+ # qhasm: internal stacktop x2
2324
+ # asm 1: fxch <x2=float80#2
2325
+ # asm 2: fxch <x2=%st(1)
2326
+ fxch %st(1)
2327
+
2328
+ # qhasm: x2 += *(float64 *) &crypto_onetimeauth_poly1305_amd64_hoffset2
2329
+ faddl crypto_onetimeauth_poly1305_amd64_hoffset2(%rip)
2330
+ # comment:fpstackfrombottom:<x0#114:<x3#117:<x1#115:<x2#116:
2331
+
2332
+ # qhasm: internal stacktop x3
2333
+ # asm 1: fxch <x3=float80#3
2334
+ # asm 2: fxch <x3=%st(2)
2335
+ fxch %st(2)
2336
+
2337
+ # qhasm: x3 += *(float64 *) &crypto_onetimeauth_poly1305_amd64_hoffset3
2338
+ faddl crypto_onetimeauth_poly1305_amd64_hoffset3(%rip)
2339
+ # comment:fpstackfrombottom:<x0#114:<x2#116:<x1#115:<x3#117:
2340
+
2341
+ # qhasm: internal stacktop x0
2342
+ # asm 1: fxch <x0=float80#4
2343
+ # asm 2: fxch <x0=%st(3)
2344
+ fxch %st(3)
2345
+
2346
+ # qhasm: *(float64 *) &d0 = x0
2347
+ # asm 1: fstpl >d0=stack64#10
2348
+ # asm 2: fstpl >d0=104(%rsp)
2349
+ fstpl 104(%rsp)
2350
+ # comment:fpstackfrombottom:<x3#117:<x2#116:<x1#115:
2351
+
2352
+ # qhasm: *(float64 *) &d1 = x1
2353
+ # asm 1: fstpl >d1=stack64#11
2354
+ # asm 2: fstpl >d1=112(%rsp)
2355
+ fstpl 112(%rsp)
2356
+ # comment:fpstackfrombottom:<x3#117:<x2#116:
2357
+
2358
+ # qhasm: *(float64 *) &d2 = x2
2359
+ # asm 1: fstpl >d2=stack64#12
2360
+ # asm 2: fstpl >d2=120(%rsp)
2361
+ fstpl 120(%rsp)
2362
+ # comment:fpstackfrombottom:<x3#117:
2363
+
2364
+ # qhasm: *(float64 *) &d3 = x3
2365
+ # asm 1: fstpl >d3=stack64#13
2366
+ # asm 2: fstpl >d3=128(%rsp)
2367
+ fstpl 128(%rsp)
2368
+ # comment:fpstackfrombottom:
2369
+
2370
+ # qhasm: int64 f0
2371
+
2372
+ # qhasm: int64 f1
2373
+
2374
+ # qhasm: int64 f2
2375
+
2376
+ # qhasm: int64 f3
2377
+
2378
+ # qhasm: int64 f4
2379
+
2380
+ # qhasm: int64 g0
2381
+
2382
+ # qhasm: int64 g1
2383
+
2384
+ # qhasm: int64 g2
2385
+
2386
+ # qhasm: int64 g3
2387
+
2388
+ # qhasm: int64 f
2389
+
2390
+ # qhasm: int64 notf
2391
+
2392
+ # qhasm: stack64 f1_stack
2393
+
2394
+ # qhasm: stack64 f2_stack
2395
+
2396
+ # qhasm: stack64 f3_stack
2397
+
2398
+ # qhasm: stack64 f4_stack
2399
+
2400
+ # qhasm: stack64 g0_stack
2401
+
2402
+ # qhasm: stack64 g1_stack
2403
+
2404
+ # qhasm: stack64 g2_stack
2405
+
2406
+ # qhasm: stack64 g3_stack
2407
+
2408
+ # qhasm: g0 = top d0
2409
+ # asm 1: movl <d0=stack64#10,>g0=int64#1d
2410
+ # asm 2: movl <d0=108(%rsp),>g0=%edi
2411
+ movl 108(%rsp),%edi
2412
+
2413
+ # qhasm: (uint32) g0 &= 63
2414
+ # asm 1: and $63,<g0=int64#1d
2415
+ # asm 2: and $63,<g0=%edi
2416
+ and $63,%edi
2417
+
2418
+ # qhasm: g1 = top d1
2419
+ # asm 1: movl <d1=stack64#11,>g1=int64#2d
2420
+ # asm 2: movl <d1=116(%rsp),>g1=%esi
2421
+ movl 116(%rsp),%esi
2422
+
2423
+ # qhasm: (uint32) g1 &= 63
2424
+ # asm 1: and $63,<g1=int64#2d
2425
+ # asm 2: and $63,<g1=%esi
2426
+ and $63,%esi
2427
+
2428
+ # qhasm: g2 = top d2
2429
+ # asm 1: movl <d2=stack64#12,>g2=int64#3d
2430
+ # asm 2: movl <d2=124(%rsp),>g2=%edx
2431
+ movl 124(%rsp),%edx
2432
+
2433
+ # qhasm: (uint32) g2 &= 63
2434
+ # asm 1: and $63,<g2=int64#3d
2435
+ # asm 2: and $63,<g2=%edx
2436
+ and $63,%edx
2437
+
2438
+ # qhasm: g3 = top d3
2439
+ # asm 1: movl <d3=stack64#13,>g3=int64#4d
2440
+ # asm 2: movl <d3=132(%rsp),>g3=%ecx
2441
+ movl 132(%rsp),%ecx
2442
+
2443
+ # qhasm: (uint32) g3 &= 63
2444
+ # asm 1: and $63,<g3=int64#4d
2445
+ # asm 2: and $63,<g3=%ecx
2446
+ and $63,%ecx
2447
+
2448
+ # qhasm: f1 = bottom d1
2449
+ # asm 1: movl <d1=stack64#11,>f1=int64#5d
2450
+ # asm 2: movl <d1=112(%rsp),>f1=%r8d
2451
+ movl 112(%rsp),%r8d
2452
+
2453
+ # qhasm: carry? (uint32) f1 += g0
2454
+ # asm 1: add <g0=int64#1d,<f1=int64#5d
2455
+ # asm 2: add <g0=%edi,<f1=%r8d
2456
+ add %edi,%r8d
2457
+
2458
+ # qhasm: f1_stack = f1
2459
+ # asm 1: movq <f1=int64#5,>f1_stack=stack64#11
2460
+ # asm 2: movq <f1=%r8,>f1_stack=112(%rsp)
2461
+ movq %r8,112(%rsp)
2462
+
2463
+ # qhasm: f2 = bottom d2
2464
+ # asm 1: movl <d2=stack64#12,>f2=int64#1d
2465
+ # asm 2: movl <d2=120(%rsp),>f2=%edi
2466
+ movl 120(%rsp),%edi
2467
+
2468
+ # qhasm: carry? (uint32) f2 += g1 + carry
2469
+ # asm 1: adc <g1=int64#2d,<f2=int64#1d
2470
+ # asm 2: adc <g1=%esi,<f2=%edi
2471
+ adc %esi,%edi
2472
+
2473
+ # qhasm: f2_stack = f2
2474
+ # asm 1: movq <f2=int64#1,>f2_stack=stack64#12
2475
+ # asm 2: movq <f2=%rdi,>f2_stack=120(%rsp)
2476
+ movq %rdi,120(%rsp)
2477
+
2478
+ # qhasm: f3 = bottom d3
2479
+ # asm 1: movl <d3=stack64#13,>f3=int64#1d
2480
+ # asm 2: movl <d3=128(%rsp),>f3=%edi
2481
+ movl 128(%rsp),%edi
2482
+
2483
+ # qhasm: carry? (uint32) f3 += g2 + carry
2484
+ # asm 1: adc <g2=int64#3d,<f3=int64#1d
2485
+ # asm 2: adc <g2=%edx,<f3=%edi
2486
+ adc %edx,%edi
2487
+
2488
+ # qhasm: f3_stack = f3
2489
+ # asm 1: movq <f3=int64#1,>f3_stack=stack64#13
2490
+ # asm 2: movq <f3=%rdi,>f3_stack=128(%rsp)
2491
+ movq %rdi,128(%rsp)
2492
+
2493
+ # qhasm: f4 = 0
2494
+ # asm 1: mov $0,>f4=int64#1
2495
+ # asm 2: mov $0,>f4=%rdi
2496
+ mov $0,%rdi
2497
+
2498
+ # qhasm: carry? (uint32) f4 += g3 + carry
2499
+ # asm 1: adc <g3=int64#4d,<f4=int64#1d
2500
+ # asm 2: adc <g3=%ecx,<f4=%edi
2501
+ adc %ecx,%edi
2502
+
2503
+ # qhasm: f4_stack = f4
2504
+ # asm 1: movq <f4=int64#1,>f4_stack=stack64#14
2505
+ # asm 2: movq <f4=%rdi,>f4_stack=136(%rsp)
2506
+ movq %rdi,136(%rsp)
2507
+
2508
+ # qhasm: g0 = 5
2509
+ # asm 1: mov $5,>g0=int64#1
2510
+ # asm 2: mov $5,>g0=%rdi
2511
+ mov $5,%rdi
2512
+
2513
+ # qhasm: f0 = bottom d0
2514
+ # asm 1: movl <d0=stack64#10,>f0=int64#2d
2515
+ # asm 2: movl <d0=104(%rsp),>f0=%esi
2516
+ movl 104(%rsp),%esi
2517
+
2518
+ # qhasm: carry? (uint32) g0 += f0
2519
+ # asm 1: add <f0=int64#2d,<g0=int64#1d
2520
+ # asm 2: add <f0=%esi,<g0=%edi
2521
+ add %esi,%edi
2522
+
2523
+ # qhasm: g0_stack = g0
2524
+ # asm 1: movq <g0=int64#1,>g0_stack=stack64#10
2525
+ # asm 2: movq <g0=%rdi,>g0_stack=104(%rsp)
2526
+ movq %rdi,104(%rsp)
2527
+
2528
+ # qhasm: g1 = 0
2529
+ # asm 1: mov $0,>g1=int64#1
2530
+ # asm 2: mov $0,>g1=%rdi
2531
+ mov $0,%rdi
2532
+
2533
+ # qhasm: f1 = f1_stack
2534
+ # asm 1: movq <f1_stack=stack64#11,>f1=int64#3
2535
+ # asm 2: movq <f1_stack=112(%rsp),>f1=%rdx
2536
+ movq 112(%rsp),%rdx
2537
+
2538
+ # qhasm: carry? (uint32) g1 += f1 + carry
2539
+ # asm 1: adc <f1=int64#3d,<g1=int64#1d
2540
+ # asm 2: adc <f1=%edx,<g1=%edi
2541
+ adc %edx,%edi
2542
+
2543
+ # qhasm: g1_stack = g1
2544
+ # asm 1: movq <g1=int64#1,>g1_stack=stack64#11
2545
+ # asm 2: movq <g1=%rdi,>g1_stack=112(%rsp)
2546
+ movq %rdi,112(%rsp)
2547
+
2548
+ # qhasm: g2 = 0
2549
+ # asm 1: mov $0,>g2=int64#1
2550
+ # asm 2: mov $0,>g2=%rdi
2551
+ mov $0,%rdi
2552
+
2553
+ # qhasm: f2 = f2_stack
2554
+ # asm 1: movq <f2_stack=stack64#12,>f2=int64#4
2555
+ # asm 2: movq <f2_stack=120(%rsp),>f2=%rcx
2556
+ movq 120(%rsp),%rcx
2557
+
2558
+ # qhasm: carry? (uint32) g2 += f2 + carry
2559
+ # asm 1: adc <f2=int64#4d,<g2=int64#1d
2560
+ # asm 2: adc <f2=%ecx,<g2=%edi
2561
+ adc %ecx,%edi
2562
+
2563
+ # qhasm: g2_stack = g2
2564
+ # asm 1: movq <g2=int64#1,>g2_stack=stack64#12
2565
+ # asm 2: movq <g2=%rdi,>g2_stack=120(%rsp)
2566
+ movq %rdi,120(%rsp)
2567
+
2568
+ # qhasm: g3 = 0
2569
+ # asm 1: mov $0,>g3=int64#1
2570
+ # asm 2: mov $0,>g3=%rdi
2571
+ mov $0,%rdi
2572
+
2573
+ # qhasm: f3 = f3_stack
2574
+ # asm 1: movq <f3_stack=stack64#13,>f3=int64#5
2575
+ # asm 2: movq <f3_stack=128(%rsp),>f3=%r8
2576
+ movq 128(%rsp),%r8
2577
+
2578
+ # qhasm: carry? (uint32) g3 += f3 + carry
2579
+ # asm 1: adc <f3=int64#5d,<g3=int64#1d
2580
+ # asm 2: adc <f3=%r8d,<g3=%edi
2581
+ adc %r8d,%edi
2582
+
2583
+ # qhasm: g3_stack = g3
2584
+ # asm 1: movq <g3=int64#1,>g3_stack=stack64#13
2585
+ # asm 2: movq <g3=%rdi,>g3_stack=128(%rsp)
2586
+ movq %rdi,128(%rsp)
2587
+
2588
+ # qhasm: f = 0xfffffffc
2589
+ # asm 1: mov $0xfffffffc,>f=int64#1
2590
+ # asm 2: mov $0xfffffffc,>f=%rdi
2591
+ mov $0xfffffffc,%rdi
2592
+
2593
+ # qhasm: f4 = f4_stack
2594
+ # asm 1: movq <f4_stack=stack64#14,>f4=int64#6
2595
+ # asm 2: movq <f4_stack=136(%rsp),>f4=%r9
2596
+ movq 136(%rsp),%r9
2597
+
2598
+ # qhasm: carry? (uint32) f += f4 + carry
2599
+ # asm 1: adc <f4=int64#6d,<f=int64#1d
2600
+ # asm 2: adc <f4=%r9d,<f=%edi
2601
+ adc %r9d,%edi
2602
+
2603
+ # qhasm: (int32) f >>= 16
2604
+ # asm 1: sar $16,<f=int64#1d
2605
+ # asm 2: sar $16,<f=%edi
2606
+ sar $16,%edi
2607
+
2608
+ # qhasm: notf = f
2609
+ # asm 1: mov <f=int64#1,>notf=int64#6
2610
+ # asm 2: mov <f=%rdi,>notf=%r9
2611
+ mov %rdi,%r9
2612
+
2613
+ # qhasm: (uint32) notf ^= 0xffffffff
2614
+ # asm 1: xor $0xffffffff,<notf=int64#6d
2615
+ # asm 2: xor $0xffffffff,<notf=%r9d
2616
+ xor $0xffffffff,%r9d
2617
+
2618
+ # qhasm: f0 &= f
2619
+ # asm 1: and <f=int64#1,<f0=int64#2
2620
+ # asm 2: and <f=%rdi,<f0=%rsi
2621
+ and %rdi,%rsi
2622
+
2623
+ # qhasm: g0 = g0_stack
2624
+ # asm 1: movq <g0_stack=stack64#10,>g0=int64#7
2625
+ # asm 2: movq <g0_stack=104(%rsp),>g0=%rax
2626
+ movq 104(%rsp),%rax
2627
+
2628
+ # qhasm: g0 &= notf
2629
+ # asm 1: and <notf=int64#6,<g0=int64#7
2630
+ # asm 2: and <notf=%r9,<g0=%rax
2631
+ and %r9,%rax
2632
+
2633
+ # qhasm: f0 |= g0
2634
+ # asm 1: or <g0=int64#7,<f0=int64#2
2635
+ # asm 2: or <g0=%rax,<f0=%rsi
2636
+ or %rax,%rsi
2637
+
2638
+ # qhasm: f1 &= f
2639
+ # asm 1: and <f=int64#1,<f1=int64#3
2640
+ # asm 2: and <f=%rdi,<f1=%rdx
2641
+ and %rdi,%rdx
2642
+
2643
+ # qhasm: g1 = g1_stack
2644
+ # asm 1: movq <g1_stack=stack64#11,>g1=int64#7
2645
+ # asm 2: movq <g1_stack=112(%rsp),>g1=%rax
2646
+ movq 112(%rsp),%rax
2647
+
2648
+ # qhasm: g1 &= notf
2649
+ # asm 1: and <notf=int64#6,<g1=int64#7
2650
+ # asm 2: and <notf=%r9,<g1=%rax
2651
+ and %r9,%rax
2652
+
2653
+ # qhasm: f1 |= g1
2654
+ # asm 1: or <g1=int64#7,<f1=int64#3
2655
+ # asm 2: or <g1=%rax,<f1=%rdx
2656
+ or %rax,%rdx
2657
+
2658
+ # qhasm: f2 &= f
2659
+ # asm 1: and <f=int64#1,<f2=int64#4
2660
+ # asm 2: and <f=%rdi,<f2=%rcx
2661
+ and %rdi,%rcx
2662
+
2663
+ # qhasm: g2 = g2_stack
2664
+ # asm 1: movq <g2_stack=stack64#12,>g2=int64#7
2665
+ # asm 2: movq <g2_stack=120(%rsp),>g2=%rax
2666
+ movq 120(%rsp),%rax
2667
+
2668
+ # qhasm: g2 &= notf
2669
+ # asm 1: and <notf=int64#6,<g2=int64#7
2670
+ # asm 2: and <notf=%r9,<g2=%rax
2671
+ and %r9,%rax
2672
+
2673
+ # qhasm: f2 |= g2
2674
+ # asm 1: or <g2=int64#7,<f2=int64#4
2675
+ # asm 2: or <g2=%rax,<f2=%rcx
2676
+ or %rax,%rcx
2677
+
2678
+ # qhasm: f3 &= f
2679
+ # asm 1: and <f=int64#1,<f3=int64#5
2680
+ # asm 2: and <f=%rdi,<f3=%r8
2681
+ and %rdi,%r8
2682
+
2683
+ # qhasm: g3 = g3_stack
2684
+ # asm 1: movq <g3_stack=stack64#13,>g3=int64#1
2685
+ # asm 2: movq <g3_stack=128(%rsp),>g3=%rdi
2686
+ movq 128(%rsp),%rdi
2687
+
2688
+ # qhasm: g3 &= notf
2689
+ # asm 1: and <notf=int64#6,<g3=int64#1
2690
+ # asm 2: and <notf=%r9,<g3=%rdi
2691
+ and %r9,%rdi
2692
+
2693
+ # qhasm: f3 |= g3
2694
+ # asm 1: or <g3=int64#1,<f3=int64#5
2695
+ # asm 2: or <g3=%rdi,<f3=%r8
2696
+ or %rdi,%r8
2697
+
2698
+ # qhasm: out = out_stack
2699
+ # asm 1: movq <out_stack=stack64#8,>out=int64#1
2700
+ # asm 2: movq <out_stack=88(%rsp),>out=%rdi
2701
+ movq 88(%rsp),%rdi
2702
+
2703
+ # qhasm: k = k_stack
2704
+ # asm 1: movq <k_stack=stack64#9,>k=int64#6
2705
+ # asm 2: movq <k_stack=96(%rsp),>k=%r9
2706
+ movq 96(%rsp),%r9
2707
+
2708
+ # qhasm: carry? (uint32) f0 += *(uint32 *) (k + 16)
2709
+ # asm 1: addl 16(<k=int64#6),<f0=int64#2d
2710
+ # asm 2: addl 16(<k=%r9),<f0=%esi
2711
+ addl 16(%r9),%esi
2712
+
2713
+ # qhasm: carry? (uint32) f1 += *(uint32 *) (k + 20) + carry
2714
+ # asm 1: adcl 20(<k=int64#6),<f1=int64#3d
2715
+ # asm 2: adcl 20(<k=%r9),<f1=%edx
2716
+ adcl 20(%r9),%edx
2717
+
2718
+ # qhasm: carry? (uint32) f2 += *(uint32 *) (k + 24) + carry
2719
+ # asm 1: adcl 24(<k=int64#6),<f2=int64#4d
2720
+ # asm 2: adcl 24(<k=%r9),<f2=%ecx
2721
+ adcl 24(%r9),%ecx
2722
+
2723
+ # qhasm: carry? (uint32) f3 += *(uint32 *) (k + 28) + carry
2724
+ # asm 1: adcl 28(<k=int64#6),<f3=int64#5d
2725
+ # asm 2: adcl 28(<k=%r9),<f3=%r8d
2726
+ adcl 28(%r9),%r8d
2727
+
2728
+ # qhasm: *(uint32 *) (out + 0) = f0
2729
+ # asm 1: movl <f0=int64#2d,0(<out=int64#1)
2730
+ # asm 2: movl <f0=%esi,0(<out=%rdi)
2731
+ movl %esi,0(%rdi)
2732
+
2733
+ # qhasm: *(uint32 *) (out + 4) = f1
2734
+ # asm 1: movl <f1=int64#3d,4(<out=int64#1)
2735
+ # asm 2: movl <f1=%edx,4(<out=%rdi)
2736
+ movl %edx,4(%rdi)
2737
+
2738
+ # qhasm: *(uint32 *) (out + 8) = f2
2739
+ # asm 1: movl <f2=int64#4d,8(<out=int64#1)
2740
+ # asm 2: movl <f2=%ecx,8(<out=%rdi)
2741
+ movl %ecx,8(%rdi)
2742
+
2743
+ # qhasm: *(uint32 *) (out + 12) = f3
2744
+ # asm 1: movl <f3=int64#5d,12(<out=int64#1)
2745
+ # asm 2: movl <f3=%r8d,12(<out=%rdi)
2746
+ movl %r8d,12(%rdi)
2747
+
2748
+ # qhasm: r11_caller = r11_stack
2749
+ # asm 1: movq <r11_stack=stack64#1,>r11_caller=int64#9
2750
+ # asm 2: movq <r11_stack=32(%rsp),>r11_caller=%r11
2751
+ movq 32(%rsp),%r11
2752
+
2753
+ # qhasm: r12_caller = r12_stack
2754
+ # asm 1: movq <r12_stack=stack64#2,>r12_caller=int64#10
2755
+ # asm 2: movq <r12_stack=40(%rsp),>r12_caller=%r12
2756
+ movq 40(%rsp),%r12
2757
+
2758
+ # qhasm: r13_caller = r13_stack
2759
+ # asm 1: movq <r13_stack=stack64#3,>r13_caller=int64#11
2760
+ # asm 2: movq <r13_stack=48(%rsp),>r13_caller=%r13
2761
+ movq 48(%rsp),%r13
2762
+
2763
+ # qhasm: r14_caller = r14_stack
2764
+ # asm 1: movq <r14_stack=stack64#4,>r14_caller=int64#12
2765
+ # asm 2: movq <r14_stack=56(%rsp),>r14_caller=%r14
2766
+ movq 56(%rsp),%r14
2767
+
2768
+ # qhasm: r15_caller = r15_stack
2769
+ # asm 1: movq <r15_stack=stack64#5,>r15_caller=int64#13
2770
+ # asm 2: movq <r15_stack=64(%rsp),>r15_caller=%r15
2771
+ movq 64(%rsp),%r15
2772
+
2773
+ # qhasm: rbx_caller = rbx_stack
2774
+ # asm 1: movq <rbx_stack=stack64#6,>rbx_caller=int64#14
2775
+ # asm 2: movq <rbx_stack=72(%rsp),>rbx_caller=%rbx
2776
+ movq 72(%rsp),%rbx
2777
+
2778
+ # qhasm: rbp_caller = rbp_stack
2779
+ # asm 1: movq <rbp_stack=stack64#7,>rbp_caller=int64#15
2780
+ # asm 2: movq <rbp_stack=80(%rsp),>rbp_caller=%rbp
2781
+ movq 80(%rsp),%rbp
2782
+
2783
+ # qhasm: leave
2784
+ add %r11,%rsp
2785
+ xor %rax,%rax
2786
+ xor %rdx,%rdx
2787
+ ret