ruby_nacl 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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