visaljs 0.0.2 → 0.0.3

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 (1007) hide show
  1. package/cli.js +393 -62
  2. package/node/include/js_node.h +28 -5
  3. package/node/include/js_uv.h +36 -0
  4. package/node/prelude/crypto.js +7 -10
  5. package/node/prelude/dns.js +99 -0
  6. package/node/prelude/dns_promises.js +10 -0
  7. package/node/prelude/http.js +1039 -195
  8. package/node/prelude/internal/crypto/asym.js +39 -12
  9. package/node/prelude/internal/crypto/dh_groups.js +12 -0
  10. package/node/prelude/internal/crypto/diffiehellman.js +354 -0
  11. package/node/prelude/internal/crypto/hash.js +1 -1
  12. package/node/prelude/internal/crypto/key_type.js +3 -0
  13. package/node/prelude/internal/crypto/keys.js +39 -9
  14. package/node/prelude/internal/http_agent.js +249 -0
  15. package/node/prelude/internal/net.js +33 -0
  16. package/node/prelude/internal/socketaddress.js +249 -0
  17. package/node/prelude/internal/tls/common.js +306 -0
  18. package/node/prelude/internal/tls/wrap.js +1217 -0
  19. package/node/prelude/internal/tls/x509.js +394 -0
  20. package/node/prelude/net.js +1083 -50
  21. package/node/prelude/stream.js +6 -0
  22. package/node/prelude/tls.js +141 -0
  23. package/node/prelude/util.js +5 -2
  24. package/node/prelude/util_types.js +85 -0
  25. package/node/src/host_http.c +268 -270
  26. package/node/src/host_loop.c +84 -0
  27. package/node/src/host_net.c +495 -0
  28. package/node/src/host_sys.c +16 -0
  29. package/package.json +1 -1
  30. package/runtime/include/js_builtins.h +16 -0
  31. package/runtime/include/js_console.h +2 -0
  32. package/runtime/include/js_core.def +23 -0
  33. package/runtime/include/js_crypto.h +23 -0
  34. package/runtime/include/js_generator.h +2 -3
  35. package/runtime/include/js_promise.h +0 -2
  36. package/runtime/src/async_iter.c +4 -1
  37. package/runtime/src/boringssl_support.cc +34 -0
  38. package/runtime/src/builtin_table.c +8 -0
  39. package/runtime/src/components.c +10 -0
  40. package/runtime/src/console.c +6 -18
  41. package/runtime/src/core_all.c +1 -0
  42. package/runtime/src/crypto_asym.c +450 -241
  43. package/runtime/src/crypto_bn.c +91 -0
  44. package/runtime/src/crypto_cipher.c +153 -75
  45. package/runtime/src/crypto_hash.c +68 -53
  46. package/runtime/src/crypto_internal.h +55 -26
  47. package/runtime/src/crypto_pkey.c +198 -61
  48. package/runtime/src/crypto_subtle.c +42 -16
  49. package/runtime/src/crypto_tls.c +678 -0
  50. package/runtime/src/generator.c +8 -1
  51. package/runtime/src/global.c +2 -4
  52. package/runtime/src/internal.h +0 -1
  53. package/runtime/src/jobs.c +2 -1
  54. package/runtime/src/promise.c +4 -1
  55. package/runtime/src/tls_roots.gen.h +3215 -0
  56. package/runtime/src/util_types.c +52 -0
  57. package/runtime/src/weak.c +2 -1
  58. package/runtime/third_party/boringssl/LICENSE +238 -0
  59. package/runtime/third_party/boringssl/README.md +46 -0
  60. package/runtime/third_party/boringssl/VERSION +1 -0
  61. package/runtime/third_party/boringssl/crypto/aes/aes.cc +44 -0
  62. package/runtime/third_party/boringssl/crypto/armv8_feature_parsing.h +67 -0
  63. package/runtime/third_party/boringssl/crypto/asn1/a_bitstr.cc +297 -0
  64. package/runtime/third_party/boringssl/crypto/asn1/a_bool.cc +50 -0
  65. package/runtime/third_party/boringssl/crypto/asn1/a_d2i_fp.cc +47 -0
  66. package/runtime/third_party/boringssl/crypto/asn1/a_dup.cc +42 -0
  67. package/runtime/third_party/boringssl/crypto/asn1/a_gentm.cc +130 -0
  68. package/runtime/third_party/boringssl/crypto/asn1/a_i2d_fp.cc +44 -0
  69. package/runtime/third_party/boringssl/crypto/asn1/a_int.cc +467 -0
  70. package/runtime/third_party/boringssl/crypto/asn1/a_mbstr.cc +242 -0
  71. package/runtime/third_party/boringssl/crypto/asn1/a_object.cc +191 -0
  72. package/runtime/third_party/boringssl/crypto/asn1/a_octet.cc +32 -0
  73. package/runtime/third_party/boringssl/crypto/asn1/a_strex.cc +411 -0
  74. package/runtime/third_party/boringssl/crypto/asn1/a_strnid.cc +208 -0
  75. package/runtime/third_party/boringssl/crypto/asn1/a_time.cc +248 -0
  76. package/runtime/third_party/boringssl/crypto/asn1/a_type.cc +467 -0
  77. package/runtime/third_party/boringssl/crypto/asn1/a_utctm.cc +128 -0
  78. package/runtime/third_party/boringssl/crypto/asn1/asn1_lib.cc +453 -0
  79. package/runtime/third_party/boringssl/crypto/asn1/asn1_par.cc +61 -0
  80. package/runtime/third_party/boringssl/crypto/asn1/asn_pack.cc +56 -0
  81. package/runtime/third_party/boringssl/crypto/asn1/f_int.cc +63 -0
  82. package/runtime/third_party/boringssl/crypto/asn1/f_string.cc +52 -0
  83. package/runtime/third_party/boringssl/crypto/asn1/internal.h +430 -0
  84. package/runtime/third_party/boringssl/crypto/asn1/posix_time.cc +244 -0
  85. package/runtime/third_party/boringssl/crypto/asn1/tasn_dec.cc +611 -0
  86. package/runtime/third_party/boringssl/crypto/asn1/tasn_enc.cc +348 -0
  87. package/runtime/third_party/boringssl/crypto/asn1/tasn_fre.cc +163 -0
  88. package/runtime/third_party/boringssl/crypto/asn1/tasn_new.cc +274 -0
  89. package/runtime/third_party/boringssl/crypto/asn1/tasn_typ.cc +92 -0
  90. package/runtime/third_party/boringssl/crypto/asn1/tasn_utl.cc +218 -0
  91. package/runtime/third_party/boringssl/crypto/base64/base64.cc +433 -0
  92. package/runtime/third_party/boringssl/crypto/bcm_support.h +62 -0
  93. package/runtime/third_party/boringssl/crypto/bio/bio.cc +715 -0
  94. package/runtime/third_party/boringssl/crypto/bio/bio_mem.cc +260 -0
  95. package/runtime/third_party/boringssl/crypto/bio/connect.cc +463 -0
  96. package/runtime/third_party/boringssl/crypto/bio/errno.cc +52 -0
  97. package/runtime/third_party/boringssl/crypto/bio/fd.cc +193 -0
  98. package/runtime/third_party/boringssl/crypto/bio/file.cc +283 -0
  99. package/runtime/third_party/boringssl/crypto/bio/hexdump.cc +154 -0
  100. package/runtime/third_party/boringssl/crypto/bio/internal.h +128 -0
  101. package/runtime/third_party/boringssl/crypto/bio/pair.cc +426 -0
  102. package/runtime/third_party/boringssl/crypto/bio/printf.cc +59 -0
  103. package/runtime/third_party/boringssl/crypto/bio/socket.cc +210 -0
  104. package/runtime/third_party/boringssl/crypto/bio/socket_helper.cc +179 -0
  105. package/runtime/third_party/boringssl/crypto/blake2/blake2.cc +173 -0
  106. package/runtime/third_party/boringssl/crypto/bn/bn_asn1.cc +57 -0
  107. package/runtime/third_party/boringssl/crypto/bn/convert.cc +409 -0
  108. package/runtime/third_party/boringssl/crypto/bn/div.cc +102 -0
  109. package/runtime/third_party/boringssl/crypto/bn/exponentiation.cc +168 -0
  110. package/runtime/third_party/boringssl/crypto/bn/sqrt.cc +93 -0
  111. package/runtime/third_party/boringssl/crypto/buf/buf.cc +119 -0
  112. package/runtime/third_party/boringssl/crypto/bytestring/asn1_compat.cc +54 -0
  113. package/runtime/third_party/boringssl/crypto/bytestring/ber.cc +268 -0
  114. package/runtime/third_party/boringssl/crypto/bytestring/cbb.cc +787 -0
  115. package/runtime/third_party/boringssl/crypto/bytestring/cbs.cc +977 -0
  116. package/runtime/third_party/boringssl/crypto/bytestring/internal.h +134 -0
  117. package/runtime/third_party/boringssl/crypto/bytestring/unicode.cc +156 -0
  118. package/runtime/third_party/boringssl/crypto/chacha/chacha.cc +226 -0
  119. package/runtime/third_party/boringssl/crypto/chacha/internal.h +103 -0
  120. package/runtime/third_party/boringssl/crypto/cipher/derive_key.cc +106 -0
  121. package/runtime/third_party/boringssl/crypto/cipher/e_aesctrhmac.cc +294 -0
  122. package/runtime/third_party/boringssl/crypto/cipher/e_aeseax.cc +351 -0
  123. package/runtime/third_party/boringssl/crypto/cipher/e_aesgcmsiv.cc +918 -0
  124. package/runtime/third_party/boringssl/crypto/cipher/e_chacha20poly1305.cc +404 -0
  125. package/runtime/third_party/boringssl/crypto/cipher/e_des.cc +214 -0
  126. package/runtime/third_party/boringssl/crypto/cipher/e_null.cc +55 -0
  127. package/runtime/third_party/boringssl/crypto/cipher/e_rc2.cc +432 -0
  128. package/runtime/third_party/boringssl/crypto/cipher/e_rc4.cc +56 -0
  129. package/runtime/third_party/boringssl/crypto/cipher/e_tls.cc +615 -0
  130. package/runtime/third_party/boringssl/crypto/cipher/get_cipher.cc +85 -0
  131. package/runtime/third_party/boringssl/crypto/cipher/internal.h +399 -0
  132. package/runtime/third_party/boringssl/crypto/cipher/tls_cbc.cc +476 -0
  133. package/runtime/third_party/boringssl/crypto/cms/cms.cc +178 -0
  134. package/runtime/third_party/boringssl/crypto/conf/conf.cc +637 -0
  135. package/runtime/third_party/boringssl/crypto/conf/internal.h +54 -0
  136. package/runtime/third_party/boringssl/crypto/cpu_aarch64_apple.cc +76 -0
  137. package/runtime/third_party/boringssl/crypto/cpu_aarch64_fuchsia.cc +58 -0
  138. package/runtime/third_party/boringssl/crypto/cpu_aarch64_linux.cc +66 -0
  139. package/runtime/third_party/boringssl/crypto/cpu_aarch64_openbsd.cc +45 -0
  140. package/runtime/third_party/boringssl/crypto/cpu_aarch64_sysreg.cc +66 -0
  141. package/runtime/third_party/boringssl/crypto/cpu_aarch64_win.cc +52 -0
  142. package/runtime/third_party/boringssl/crypto/cpu_arm_freebsd.cc +55 -0
  143. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.cc +173 -0
  144. package/runtime/third_party/boringssl/crypto/cpu_arm_linux.h +141 -0
  145. package/runtime/third_party/boringssl/crypto/cpu_intel.cc +287 -0
  146. package/runtime/third_party/boringssl/crypto/crypto.cc +152 -0
  147. package/runtime/third_party/boringssl/crypto/curve25519/asm/x25519-asm-arm.S +2124 -0
  148. package/runtime/third_party/boringssl/crypto/curve25519/cpace.cc +227 -0
  149. package/runtime/third_party/boringssl/crypto/curve25519/curve25519.cc +2436 -0
  150. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_64_adx.cc +18 -0
  151. package/runtime/third_party/boringssl/crypto/curve25519/curve25519_tables.h +3264 -0
  152. package/runtime/third_party/boringssl/crypto/curve25519/internal.h +202 -0
  153. package/runtime/third_party/boringssl/crypto/curve25519/spake25519.cc +532 -0
  154. package/runtime/third_party/boringssl/crypto/des/des.cc +837 -0
  155. package/runtime/third_party/boringssl/crypto/des/internal.h +144 -0
  156. package/runtime/third_party/boringssl/crypto/dh/dh_asn1.cc +109 -0
  157. package/runtime/third_party/boringssl/crypto/dh/params.cc +411 -0
  158. package/runtime/third_party/boringssl/crypto/digest/digest_extra.cc +361 -0
  159. package/runtime/third_party/boringssl/crypto/dsa/dsa.cc +922 -0
  160. package/runtime/third_party/boringssl/crypto/dsa/dsa_asn1.cc +306 -0
  161. package/runtime/third_party/boringssl/crypto/dsa/internal.h +56 -0
  162. package/runtime/third_party/boringssl/crypto/ec/ec_asn1.cc +542 -0
  163. package/runtime/third_party/boringssl/crypto/ec/ec_derive.cc +94 -0
  164. package/runtime/third_party/boringssl/crypto/ec/hash_to_curve.cc +773 -0
  165. package/runtime/third_party/boringssl/crypto/ec/internal.h +114 -0
  166. package/runtime/third_party/boringssl/crypto/ecdh/ecdh.cc +75 -0
  167. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_asn1.cc +337 -0
  168. package/runtime/third_party/boringssl/crypto/ecdsa/ecdsa_p1363.cc +54 -0
  169. package/runtime/third_party/boringssl/crypto/engine/engine.cc +95 -0
  170. package/runtime/third_party/boringssl/crypto/err/err.cc +820 -0
  171. package/runtime/third_party/boringssl/crypto/err/internal.h +45 -0
  172. package/runtime/third_party/boringssl/crypto/evp/evp.cc +454 -0
  173. package/runtime/third_party/boringssl/crypto/evp/evp_asn1.cc +439 -0
  174. package/runtime/third_party/boringssl/crypto/evp/evp_ctx.cc +541 -0
  175. package/runtime/third_party/boringssl/crypto/evp/evp_kem.cc +101 -0
  176. package/runtime/third_party/boringssl/crypto/evp/internal.h +427 -0
  177. package/runtime/third_party/boringssl/crypto/evp/p_dh.cc +326 -0
  178. package/runtime/third_party/boringssl/crypto/evp/p_dsa.cc +333 -0
  179. package/runtime/third_party/boringssl/crypto/evp/p_ec.cc +736 -0
  180. package/runtime/third_party/boringssl/crypto/evp/p_ed25519.cc +359 -0
  181. package/runtime/third_party/boringssl/crypto/evp/p_hkdf.cc +204 -0
  182. package/runtime/third_party/boringssl/crypto/evp/p_mldsa.cc +549 -0
  183. package/runtime/third_party/boringssl/crypto/evp/p_mlkem.cc +510 -0
  184. package/runtime/third_party/boringssl/crypto/evp/p_rsa.cc +1185 -0
  185. package/runtime/third_party/boringssl/crypto/evp/p_x25519.cc +371 -0
  186. package/runtime/third_party/boringssl/crypto/evp/p_xwing.cc +300 -0
  187. package/runtime/third_party/boringssl/crypto/evp/pbkdf.cc +105 -0
  188. package/runtime/third_party/boringssl/crypto/evp/print.cc +287 -0
  189. package/runtime/third_party/boringssl/crypto/evp/scrypt.cc +218 -0
  190. package/runtime/third_party/boringssl/crypto/evp/sign.cc +95 -0
  191. package/runtime/third_party/boringssl/crypto/ex_data.cc +140 -0
  192. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes.cc.inc +208 -0
  193. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/aes_nohw.cc.inc +1279 -0
  194. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cbc.cc.inc +132 -0
  195. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/cfb.cc.inc +168 -0
  196. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ctr.cc.inc +102 -0
  197. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm.cc.inc +614 -0
  198. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/gcm_nohw.cc.inc +304 -0
  199. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/internal.h +590 -0
  200. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/key_wrap.cc.inc +211 -0
  201. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/mode_wrappers.cc.inc +97 -0
  202. package/runtime/third_party/boringssl/crypto/fipsmodule/aes/ofb.cc.inc +55 -0
  203. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm.cc +288 -0
  204. package/runtime/third_party/boringssl/crypto/fipsmodule/bcm_interface.h +953 -0
  205. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/add.cc.inc +276 -0
  206. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/asm/x86_64-gcc.cc.inc +573 -0
  207. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bn.cc.inc +377 -0
  208. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/bytes.cc.inc +230 -0
  209. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/cmp.cc.inc +161 -0
  210. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/ctx.cc.inc +127 -0
  211. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div.cc.inc +738 -0
  212. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/div_extra.cc.inc +90 -0
  213. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/exponentiation.cc.inc +743 -0
  214. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd.cc.inc +281 -0
  215. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/gcd_extra.cc.inc +327 -0
  216. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/generic.cc.inc +579 -0
  217. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/internal.h +810 -0
  218. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/jacobi.cc.inc +101 -0
  219. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery.cc.inc +408 -0
  220. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/montgomery_inv.cc.inc +179 -0
  221. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/mul.cc.inc +347 -0
  222. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/prime.cc.inc +931 -0
  223. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/random.cc.inc +261 -0
  224. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.cc.inc +144 -0
  225. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/rsaz_exp.h +109 -0
  226. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/shift.cc.inc +317 -0
  227. package/runtime/third_party/boringssl/crypto/fipsmodule/bn/sqrt.cc.inc +370 -0
  228. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/aead.cc.inc +619 -0
  229. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/cipher.cc.inc +837 -0
  230. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aes.cc.inc +1240 -0
  231. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/e_aesccm.cc.inc +440 -0
  232. package/runtime/third_party/boringssl/crypto/fipsmodule/cipher/internal.h +461 -0
  233. package/runtime/third_party/boringssl/crypto/fipsmodule/cmac/cmac.cc.inc +293 -0
  234. package/runtime/third_party/boringssl/crypto/fipsmodule/delocate.h +95 -0
  235. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/check.cc.inc +198 -0
  236. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/dh.cc.inc +401 -0
  237. package/runtime/third_party/boringssl/crypto/fipsmodule/dh/internal.h +63 -0
  238. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digest.cc.inc +221 -0
  239. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/digests.cc.inc +184 -0
  240. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/internal.h +72 -0
  241. package/runtime/third_party/boringssl/crypto/fipsmodule/digest/md32_common.h +166 -0
  242. package/runtime/third_party/boringssl/crypto/fipsmodule/digestsign/digestsign.cc.inc +230 -0
  243. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/builtin_curves.h +277 -0
  244. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec.cc.inc +1024 -0
  245. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_key.cc.inc +536 -0
  246. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/ec_montgomery.cc.inc +379 -0
  247. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/felem.cc.inc +250 -0
  248. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/internal.h +752 -0
  249. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/oct.cc.inc +174 -0
  250. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz-table.h +9502 -0
  251. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.cc.inc +740 -0
  252. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256-nistz.h +207 -0
  253. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256.cc.inc +578 -0
  254. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/p256_table.h +297 -0
  255. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/scalar.cc.inc +184 -0
  256. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple.cc.inc +246 -0
  257. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/simple_mul.cc.inc +274 -0
  258. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/util.cc.inc +258 -0
  259. package/runtime/third_party/boringssl/crypto/fipsmodule/ec/wnaf.cc.inc +224 -0
  260. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdh/ecdh.cc.inc +91 -0
  261. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/ecdsa.cc.inc +288 -0
  262. package/runtime/third_party/boringssl/crypto/fipsmodule/ecdsa/internal.h +57 -0
  263. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/internal.h +38 -0
  264. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/jitter.cc.inc +487 -0
  265. package/runtime/third_party/boringssl/crypto/fipsmodule/entropy/sha512.cc.inc +329 -0
  266. package/runtime/third_party/boringssl/crypto/fipsmodule/fips_shared_support.cc +28 -0
  267. package/runtime/third_party/boringssl/crypto/fipsmodule/hkdf/hkdf.cc.inc +114 -0
  268. package/runtime/third_party/boringssl/crypto/fipsmodule/hmac/hmac.cc.inc +218 -0
  269. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/internal.h +165 -0
  270. package/runtime/third_party/boringssl/crypto/fipsmodule/keccak/keccak.cc.inc +647 -0
  271. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/fips_known_values.inc +1345 -0
  272. package/runtime/third_party/boringssl/crypto/fipsmodule/mldsa/mldsa.cc.inc +3323 -0
  273. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/fips_known_values.inc +411 -0
  274. package/runtime/third_party/boringssl/crypto/fipsmodule/mlkem/mlkem.cc.inc +1856 -0
  275. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/android_entropy_client.cc.inc +82 -0
  276. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/ctrdrbg.cc.inc +401 -0
  277. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/internal.h +99 -0
  278. package/runtime/third_party/boringssl/crypto/fipsmodule/rand/rand.cc.inc +486 -0
  279. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/internal.h +167 -0
  280. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/padding.cc.inc +371 -0
  281. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa.cc.inc +996 -0
  282. package/runtime/third_party/boringssl/crypto/fipsmodule/rsa/rsa_impl.cc.inc +1000 -0
  283. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/fips.cc.inc +129 -0
  284. package/runtime/third_party/boringssl/crypto/fipsmodule/self_check/self_check.cc.inc +1093 -0
  285. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/internal.h +112 -0
  286. package/runtime/third_party/boringssl/crypto/fipsmodule/service_indicator/service_indicator.cc.inc +330 -0
  287. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/internal.h +205 -0
  288. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha1.cc.inc +404 -0
  289. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha256.cc.inc +315 -0
  290. package/runtime/third_party/boringssl/crypto/fipsmodule/sha/sha512.cc.inc +473 -0
  291. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/address.h +144 -0
  292. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fips_known_values.inc +674 -0
  293. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.cc.inc +179 -0
  294. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/fors.h +48 -0
  295. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.cc.inc +164 -0
  296. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/merkle.h +58 -0
  297. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/params.h +178 -0
  298. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/slhdsa.cc.inc +690 -0
  299. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.cc.inc +326 -0
  300. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/thash.h +71 -0
  301. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.cc.inc +172 -0
  302. package/runtime/third_party/boringssl/crypto/fipsmodule/slhdsa/wots.h +40 -0
  303. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/internal.h +33 -0
  304. package/runtime/third_party/boringssl/crypto/fipsmodule/tls/kdf.cc.inc +180 -0
  305. package/runtime/third_party/boringssl/crypto/fuzzer_mode.cc +30 -0
  306. package/runtime/third_party/boringssl/crypto/hpke/hpke.cc +1514 -0
  307. package/runtime/third_party/boringssl/crypto/hrss/asm/poly_rq_mul.S +8489 -0
  308. package/runtime/third_party/boringssl/crypto/hrss/hrss.cc +2189 -0
  309. package/runtime/third_party/boringssl/crypto/hrss/internal.h +64 -0
  310. package/runtime/third_party/boringssl/crypto/internal.h +1767 -0
  311. package/runtime/third_party/boringssl/crypto/lhash/internal.h +222 -0
  312. package/runtime/third_party/boringssl/crypto/lhash/lhash.cc +312 -0
  313. package/runtime/third_party/boringssl/crypto/md4/md4.cc +207 -0
  314. package/runtime/third_party/boringssl/crypto/md5/internal.h +34 -0
  315. package/runtime/third_party/boringssl/crypto/md5/md5.cc +255 -0
  316. package/runtime/third_party/boringssl/crypto/mem.cc +577 -0
  317. package/runtime/third_party/boringssl/crypto/mem_internal.h +706 -0
  318. package/runtime/third_party/boringssl/crypto/mldsa/mldsa.cc +296 -0
  319. package/runtime/third_party/boringssl/crypto/mlkem/mlkem.cc +108 -0
  320. package/runtime/third_party/boringssl/crypto/obj/obj.cc +494 -0
  321. package/runtime/third_party/boringssl/crypto/obj/obj_dat.h +11722 -0
  322. package/runtime/third_party/boringssl/crypto/obj/obj_xref.cc +83 -0
  323. package/runtime/third_party/boringssl/crypto/params_internal.h +30 -0
  324. package/runtime/third_party/boringssl/crypto/pem/internal.h +135 -0
  325. package/runtime/third_party/boringssl/crypto/pem/pem_all.cc +153 -0
  326. package/runtime/third_party/boringssl/crypto/pem/pem_info.cc +250 -0
  327. package/runtime/third_party/boringssl/crypto/pem/pem_lib.cc +707 -0
  328. package/runtime/third_party/boringssl/crypto/pem/pem_oth.cc +45 -0
  329. package/runtime/third_party/boringssl/crypto/pem/pem_pk8.cc +211 -0
  330. package/runtime/third_party/boringssl/crypto/pem/pem_pkey.cc +147 -0
  331. package/runtime/third_party/boringssl/crypto/pem/pem_x509.cc +25 -0
  332. package/runtime/third_party/boringssl/crypto/pem/pem_xaux.cc +25 -0
  333. package/runtime/third_party/boringssl/crypto/pkcs7/internal.h +67 -0
  334. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7.cc +198 -0
  335. package/runtime/third_party/boringssl/crypto/pkcs7/pkcs7_x509.cc +527 -0
  336. package/runtime/third_party/boringssl/crypto/pkcs8/internal.h +98 -0
  337. package/runtime/third_party/boringssl/crypto/pkcs8/p5_pbev2.cc +286 -0
  338. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8.cc +473 -0
  339. package/runtime/third_party/boringssl/crypto/pkcs8/pkcs8_x509.cc +1328 -0
  340. package/runtime/third_party/boringssl/crypto/poly1305/internal.h +54 -0
  341. package/runtime/third_party/boringssl/crypto/poly1305/poly1305.cc +315 -0
  342. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm.cc +294 -0
  343. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_arm_asm.S +2017 -0
  344. package/runtime/third_party/boringssl/crypto/poly1305/poly1305_vec.cc +853 -0
  345. package/runtime/third_party/boringssl/crypto/pool/internal.h +95 -0
  346. package/runtime/third_party/boringssl/crypto/pool/pool.cc +282 -0
  347. package/runtime/third_party/boringssl/crypto/rand/deterministic.cc +58 -0
  348. package/runtime/third_party/boringssl/crypto/rand/fork_detect.cc +222 -0
  349. package/runtime/third_party/boringssl/crypto/rand/forkunsafe.cc +44 -0
  350. package/runtime/third_party/boringssl/crypto/rand/getentropy.cc +53 -0
  351. package/runtime/third_party/boringssl/crypto/rand/internal.h +67 -0
  352. package/runtime/third_party/boringssl/crypto/rand/ios.cc +35 -0
  353. package/runtime/third_party/boringssl/crypto/rand/rand.cc +79 -0
  354. package/runtime/third_party/boringssl/crypto/rand/trusty.cc +39 -0
  355. package/runtime/third_party/boringssl/crypto/rand/urandom.cc +149 -0
  356. package/runtime/third_party/boringssl/crypto/rand/windows.cc +91 -0
  357. package/runtime/third_party/boringssl/crypto/rc4/rc4.cc +56 -0
  358. package/runtime/third_party/boringssl/crypto/refcount.cc +49 -0
  359. package/runtime/third_party/boringssl/crypto/rsa/internal.h +51 -0
  360. package/runtime/third_party/boringssl/crypto/rsa/rsa_asn1.cc +404 -0
  361. package/runtime/third_party/boringssl/crypto/rsa/rsa_crypt.cc +530 -0
  362. package/runtime/third_party/boringssl/crypto/rsa/rsa_extra.cc +30 -0
  363. package/runtime/third_party/boringssl/crypto/rsa/rsa_print.cc +25 -0
  364. package/runtime/third_party/boringssl/crypto/sha/sha1.cc +55 -0
  365. package/runtime/third_party/boringssl/crypto/sha/sha256.cc +89 -0
  366. package/runtime/third_party/boringssl/crypto/sha/sha512.cc +106 -0
  367. package/runtime/third_party/boringssl/crypto/siphash/siphash.cc +81 -0
  368. package/runtime/third_party/boringssl/crypto/slhdsa/slhdsa.cc +167 -0
  369. package/runtime/third_party/boringssl/crypto/spake2plus/internal.h +204 -0
  370. package/runtime/third_party/boringssl/crypto/spake2plus/spake2plus.cc +501 -0
  371. package/runtime/third_party/boringssl/crypto/stack/stack.cc +462 -0
  372. package/runtime/third_party/boringssl/crypto/thread.cc +68 -0
  373. package/runtime/third_party/boringssl/crypto/thread_none.cc +48 -0
  374. package/runtime/third_party/boringssl/crypto/thread_pthread.cc +138 -0
  375. package/runtime/third_party/boringssl/crypto/thread_win.cc +227 -0
  376. package/runtime/third_party/boringssl/crypto/trust_token/internal.h +405 -0
  377. package/runtime/third_party/boringssl/crypto/trust_token/pmbtoken.cc +1672 -0
  378. package/runtime/third_party/boringssl/crypto/trust_token/trust_token.cc +701 -0
  379. package/runtime/third_party/boringssl/crypto/trust_token/voprf.cc +1266 -0
  380. package/runtime/third_party/boringssl/crypto/x509/a_digest.cc +52 -0
  381. package/runtime/third_party/boringssl/crypto/x509/a_sign.cc +100 -0
  382. package/runtime/third_party/boringssl/crypto/x509/a_verify.cc +77 -0
  383. package/runtime/third_party/boringssl/crypto/x509/algorithm.cc +167 -0
  384. package/runtime/third_party/boringssl/crypto/x509/asn1_gen.cc +540 -0
  385. package/runtime/third_party/boringssl/crypto/x509/by_dir.cc +301 -0
  386. package/runtime/third_party/boringssl/crypto/x509/by_file.cc +226 -0
  387. package/runtime/third_party/boringssl/crypto/x509/i2d_pr.cc +37 -0
  388. package/runtime/third_party/boringssl/crypto/x509/internal.h +697 -0
  389. package/runtime/third_party/boringssl/crypto/x509/name_print.cc +187 -0
  390. package/runtime/third_party/boringssl/crypto/x509/policy.cc +686 -0
  391. package/runtime/third_party/boringssl/crypto/x509/rsa_pss.cc +187 -0
  392. package/runtime/third_party/boringssl/crypto/x509/t_crl.cc +106 -0
  393. package/runtime/third_party/boringssl/crypto/x509/t_req.cc +206 -0
  394. package/runtime/third_party/boringssl/crypto/x509/t_x509.cc +292 -0
  395. package/runtime/third_party/boringssl/crypto/x509/t_x509a.cc +81 -0
  396. package/runtime/third_party/boringssl/crypto/x509/v3_akey.cc +174 -0
  397. package/runtime/third_party/boringssl/crypto/x509/v3_akeya.cc +31 -0
  398. package/runtime/third_party/boringssl/crypto/x509/v3_alt.cc +636 -0
  399. package/runtime/third_party/boringssl/crypto/x509/v3_bcons.cc +96 -0
  400. package/runtime/third_party/boringssl/crypto/x509/v3_bitst.cc +100 -0
  401. package/runtime/third_party/boringssl/crypto/x509/v3_conf.cc +369 -0
  402. package/runtime/third_party/boringssl/crypto/x509/v3_cpols.cc +417 -0
  403. package/runtime/third_party/boringssl/crypto/x509/v3_crld.cc +471 -0
  404. package/runtime/third_party/boringssl/crypto/x509/v3_enum.cc +74 -0
  405. package/runtime/third_party/boringssl/crypto/x509/v3_extku.cc +97 -0
  406. package/runtime/third_party/boringssl/crypto/x509/v3_genn.cc +238 -0
  407. package/runtime/third_party/boringssl/crypto/x509/v3_ia5.cc +83 -0
  408. package/runtime/third_party/boringssl/crypto/x509/v3_info.cc +162 -0
  409. package/runtime/third_party/boringssl/crypto/x509/v3_int.cc +83 -0
  410. package/runtime/third_party/boringssl/crypto/x509/v3_lib.cc +349 -0
  411. package/runtime/third_party/boringssl/crypto/x509/v3_ncons.cc +798 -0
  412. package/runtime/third_party/boringssl/crypto/x509/v3_ocsp.cc +92 -0
  413. package/runtime/third_party/boringssl/crypto/x509/v3_pcons.cc +102 -0
  414. package/runtime/third_party/boringssl/crypto/x509/v3_pmaps.cc +110 -0
  415. package/runtime/third_party/boringssl/crypto/x509/v3_prn.cc +183 -0
  416. package/runtime/third_party/boringssl/crypto/x509/v3_purp.cc +580 -0
  417. package/runtime/third_party/boringssl/crypto/x509/v3_skey.cc +128 -0
  418. package/runtime/third_party/boringssl/crypto/x509/v3_utl.cc +1311 -0
  419. package/runtime/third_party/boringssl/crypto/x509/x509.cc +47 -0
  420. package/runtime/third_party/boringssl/crypto/x509/x509_att.cc +188 -0
  421. package/runtime/third_party/boringssl/crypto/x509/x509_cmp.cc +243 -0
  422. package/runtime/third_party/boringssl/crypto/x509/x509_d2.cc +66 -0
  423. package/runtime/third_party/boringssl/crypto/x509/x509_def.cc +42 -0
  424. package/runtime/third_party/boringssl/crypto/x509/x509_ext.cc +161 -0
  425. package/runtime/third_party/boringssl/crypto/x509/x509_lu.cc +570 -0
  426. package/runtime/third_party/boringssl/crypto/x509/x509_mtc.cc +598 -0
  427. package/runtime/third_party/boringssl/crypto/x509/x509_obj.cc +169 -0
  428. package/runtime/third_party/boringssl/crypto/x509/x509_req.cc +248 -0
  429. package/runtime/third_party/boringssl/crypto/x509/x509_set.cc +166 -0
  430. package/runtime/third_party/boringssl/crypto/x509/x509_trs.cc +123 -0
  431. package/runtime/third_party/boringssl/crypto/x509/x509_txt.cc +147 -0
  432. package/runtime/third_party/boringssl/crypto/x509/x509_v3.cc +249 -0
  433. package/runtime/third_party/boringssl/crypto/x509/x509_vfy.cc +1531 -0
  434. package/runtime/third_party/boringssl/crypto/x509/x509_vpm.cc +449 -0
  435. package/runtime/third_party/boringssl/crypto/x509/x509cset.cc +222 -0
  436. package/runtime/third_party/boringssl/crypto/x509/x509name.cc +377 -0
  437. package/runtime/third_party/boringssl/crypto/x509/x509rset.cc +55 -0
  438. package/runtime/third_party/boringssl/crypto/x509/x509spki.cc +91 -0
  439. package/runtime/third_party/boringssl/crypto/x509/x_algor.cc +223 -0
  440. package/runtime/third_party/boringssl/crypto/x509/x_all.cc +352 -0
  441. package/runtime/third_party/boringssl/crypto/x509/x_attrib.cc +61 -0
  442. package/runtime/third_party/boringssl/crypto/x509/x_crl.cc +325 -0
  443. package/runtime/third_party/boringssl/crypto/x509/x_exten.cc +42 -0
  444. package/runtime/third_party/boringssl/crypto/x509/x_name.cc +407 -0
  445. package/runtime/third_party/boringssl/crypto/x509/x_pubkey.cc +199 -0
  446. package/runtime/third_party/boringssl/crypto/x509/x_req.cc +80 -0
  447. package/runtime/third_party/boringssl/crypto/x509/x_sig.cc +51 -0
  448. package/runtime/third_party/boringssl/crypto/x509/x_spki.cc +44 -0
  449. package/runtime/third_party/boringssl/crypto/x509/x_x509.cc +495 -0
  450. package/runtime/third_party/boringssl/crypto/x509/x_x509a.cc +169 -0
  451. package/runtime/third_party/boringssl/crypto/xwing/xwing.cc +257 -0
  452. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-apple.S +1326 -0
  453. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx2-x86_64-linux.S +1327 -0
  454. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-apple.S +1252 -0
  455. package/runtime/third_party/boringssl/gen/bcm/aes-gcm-avx512-x86_64-linux.S +1253 -0
  456. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-apple.S +873 -0
  457. package/runtime/third_party/boringssl/gen/bcm/aesni-gcm-x86_64-linux.S +885 -0
  458. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-apple.S +2490 -0
  459. package/runtime/third_party/boringssl/gen/bcm/aesni-x86-linux.S +2530 -0
  460. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-apple.S +2413 -0
  461. package/runtime/third_party/boringssl/gen/bcm/aesni-x86_64-linux.S +2397 -0
  462. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv7-linux.S +784 -0
  463. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-apple.S +792 -0
  464. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-linux.S +786 -0
  465. package/runtime/third_party/boringssl/gen/bcm/aesv8-armv8-win.S +798 -0
  466. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-apple.S +2912 -0
  467. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-linux.S +2907 -0
  468. package/runtime/third_party/boringssl/gen/bcm/aesv8-gcm-armv8-win.S +2915 -0
  469. package/runtime/third_party/boringssl/gen/bcm/armv4-mont-linux.S +932 -0
  470. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-apple.S +1440 -0
  471. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-linux.S +1440 -0
  472. package/runtime/third_party/boringssl/gen/bcm/armv8-mont-win.S +1446 -0
  473. package/runtime/third_party/boringssl/gen/bcm/bn-586-apple.S +530 -0
  474. package/runtime/third_party/boringssl/gen/bcm/bn-586-linux.S +540 -0
  475. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-apple.S +88 -0
  476. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-linux.S +87 -0
  477. package/runtime/third_party/boringssl/gen/bcm/bn-armv8-win.S +87 -0
  478. package/runtime/third_party/boringssl/gen/bcm/bsaes-armv7-linux.S +1520 -0
  479. package/runtime/third_party/boringssl/gen/bcm/co-586-apple.S +1256 -0
  480. package/runtime/third_party/boringssl/gen/bcm/co-586-linux.S +1264 -0
  481. package/runtime/third_party/boringssl/gen/bcm/ghash-armv4-linux.S +242 -0
  482. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-apple.S +337 -0
  483. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-linux.S +335 -0
  484. package/runtime/third_party/boringssl/gen/bcm/ghash-neon-armv8-win.S +341 -0
  485. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-apple.S +288 -0
  486. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86-linux.S +292 -0
  487. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-apple.S +426 -0
  488. package/runtime/third_party/boringssl/gen/bcm/ghash-ssse3-x86_64-linux.S +425 -0
  489. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-apple.S +322 -0
  490. package/runtime/third_party/boringssl/gen/bcm/ghash-x86-linux.S +328 -0
  491. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-apple.S +1134 -0
  492. package/runtime/third_party/boringssl/gen/bcm/ghash-x86_64-linux.S +1129 -0
  493. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv7-linux.S +244 -0
  494. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-apple.S +567 -0
  495. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-linux.S +563 -0
  496. package/runtime/third_party/boringssl/gen/bcm/ghashv8-armv8-win.S +571 -0
  497. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-apple.S +1744 -0
  498. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-linux.S +1725 -0
  499. package/runtime/third_party/boringssl/gen/bcm/p256-armv8-asm-win.S +1765 -0
  500. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-apple.S +4544 -0
  501. package/runtime/third_party/boringssl/gen/bcm/p256-x86_64-asm-linux.S +4600 -0
  502. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-apple.S +310 -0
  503. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-linux.S +310 -0
  504. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-armv8-asm-win.S +310 -0
  505. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-apple.S +321 -0
  506. package/runtime/third_party/boringssl/gen/bcm/p256_beeu-x86_64-asm-linux.S +335 -0
  507. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-apple.S +58 -0
  508. package/runtime/third_party/boringssl/gen/bcm/rdrand-x86_64-linux.S +57 -0
  509. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-apple.S +1756 -0
  510. package/runtime/third_party/boringssl/gen/bcm/rsaz-avx2-linux.S +1751 -0
  511. package/runtime/third_party/boringssl/gen/bcm/sha1-586-apple.S +3782 -0
  512. package/runtime/third_party/boringssl/gen/bcm/sha1-586-linux.S +3788 -0
  513. package/runtime/third_party/boringssl/gen/bcm/sha1-armv4-large-linux.S +1479 -0
  514. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-apple.S +1219 -0
  515. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-linux.S +1218 -0
  516. package/runtime/third_party/boringssl/gen/bcm/sha1-armv8-win.S +1222 -0
  517. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-apple.S +5454 -0
  518. package/runtime/third_party/boringssl/gen/bcm/sha1-x86_64-linux.S +5450 -0
  519. package/runtime/third_party/boringssl/gen/bcm/sha256-586-apple.S +5593 -0
  520. package/runtime/third_party/boringssl/gen/bcm/sha256-586-linux.S +5599 -0
  521. package/runtime/third_party/boringssl/gen/bcm/sha256-armv4-linux.S +2840 -0
  522. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-apple.S +1195 -0
  523. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-linux.S +1194 -0
  524. package/runtime/third_party/boringssl/gen/bcm/sha256-armv8-win.S +1198 -0
  525. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-apple.S +4173 -0
  526. package/runtime/third_party/boringssl/gen/bcm/sha256-x86_64-linux.S +4170 -0
  527. package/runtime/third_party/boringssl/gen/bcm/sha512-586-apple.S +2406 -0
  528. package/runtime/third_party/boringssl/gen/bcm/sha512-586-linux.S +2410 -0
  529. package/runtime/third_party/boringssl/gen/bcm/sha512-armv4-linux.S +1857 -0
  530. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-apple.S +1598 -0
  531. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-linux.S +1597 -0
  532. package/runtime/third_party/boringssl/gen/bcm/sha512-armv8-win.S +1601 -0
  533. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-apple.S +2979 -0
  534. package/runtime/third_party/boringssl/gen/bcm/sha512-x86_64-linux.S +2978 -0
  535. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv7-linux.S +1225 -0
  536. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-apple.S +1238 -0
  537. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-linux.S +1220 -0
  538. package/runtime/third_party/boringssl/gen/bcm/vpaes-armv8-win.S +1256 -0
  539. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-apple.S +680 -0
  540. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86-linux.S +706 -0
  541. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-apple.S +1146 -0
  542. package/runtime/third_party/boringssl/gen/bcm/vpaes-x86_64-linux.S +1133 -0
  543. package/runtime/third_party/boringssl/gen/bcm/x86-mont-apple.S +216 -0
  544. package/runtime/third_party/boringssl/gen/bcm/x86-mont-linux.S +218 -0
  545. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-apple.S +1238 -0
  546. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont-linux.S +1237 -0
  547. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-apple.S +3644 -0
  548. package/runtime/third_party/boringssl/gen/bcm/x86_64-mont5-linux.S +3628 -0
  549. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_64_win_asm.inc +325 -0
  550. package/runtime/third_party/boringssl/gen/boringssl_prefix_symbols_internal_x86_win_asm.inc +325 -0
  551. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-apple.S +3113 -0
  552. package/runtime/third_party/boringssl/gen/crypto/aes128gcmsiv-x86_64-linux.S +3091 -0
  553. package/runtime/third_party/boringssl/gen/crypto/chacha-armv4-linux.S +1450 -0
  554. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-apple.S +1969 -0
  555. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-linux.S +1967 -0
  556. package/runtime/third_party/boringssl/gen/crypto/chacha-armv8-win.S +1973 -0
  557. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-apple.S +957 -0
  558. package/runtime/third_party/boringssl/gen/crypto/chacha-x86-linux.S +961 -0
  559. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-apple.S +1608 -0
  560. package/runtime/third_party/boringssl/gen/crypto/chacha-x86_64-linux.S +1611 -0
  561. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-apple.S +3010 -0
  562. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-linux.S +3008 -0
  563. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_armv8-win.S +3014 -0
  564. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-apple.S +8903 -0
  565. package/runtime/third_party/boringssl/gen/crypto/chacha20_poly1305_x86_64-linux.S +8940 -0
  566. package/runtime/third_party/boringssl/gen/crypto/err_data.cc +1578 -0
  567. package/runtime/third_party/boringssl/gen/crypto/md5-586-apple.S +684 -0
  568. package/runtime/third_party/boringssl/gen/crypto/md5-586-linux.S +686 -0
  569. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-apple.S +690 -0
  570. package/runtime/third_party/boringssl/gen/crypto/md5-x86_64-linux.S +695 -0
  571. package/runtime/third_party/boringssl/include/openssl/aead.h +650 -0
  572. package/runtime/third_party/boringssl/include/openssl/aes.h +173 -0
  573. package/runtime/third_party/boringssl/include/openssl/arm_arch.h +24 -0
  574. package/runtime/third_party/boringssl/include/openssl/asm_base.h +219 -0
  575. package/runtime/third_party/boringssl/include/openssl/asn1.h +2002 -0
  576. package/runtime/third_party/boringssl/include/openssl/asn1_mac.h +18 -0
  577. package/runtime/third_party/boringssl/include/openssl/asn1t.h +584 -0
  578. package/runtime/third_party/boringssl/include/openssl/base.h +548 -0
  579. package/runtime/third_party/boringssl/include/openssl/base64.h +156 -0
  580. package/runtime/third_party/boringssl/include/openssl/bio.h +1061 -0
  581. package/runtime/third_party/boringssl/include/openssl/blake2.h +63 -0
  582. package/runtime/third_party/boringssl/include/openssl/blowfish.h +58 -0
  583. package/runtime/third_party/boringssl/include/openssl/bn.h +986 -0
  584. package/runtime/third_party/boringssl/include/openssl/buf.h +95 -0
  585. package/runtime/third_party/boringssl/include/openssl/buffer.h +18 -0
  586. package/runtime/third_party/boringssl/include/openssl/bytestring.h +798 -0
  587. package/runtime/third_party/boringssl/include/openssl/cast.h +91 -0
  588. package/runtime/third_party/boringssl/include/openssl/chacha.h +47 -0
  589. package/runtime/third_party/boringssl/include/openssl/cipher.h +819 -0
  590. package/runtime/third_party/boringssl/include/openssl/cmac.h +91 -0
  591. package/runtime/third_party/boringssl/include/openssl/cms.h +147 -0
  592. package/runtime/third_party/boringssl/include/openssl/conf.h +136 -0
  593. package/runtime/third_party/boringssl/include/openssl/configuration.h +18 -0
  594. package/runtime/third_party/boringssl/include/openssl/cpu.h +18 -0
  595. package/runtime/third_party/boringssl/include/openssl/crypto.h +235 -0
  596. package/runtime/third_party/boringssl/include/openssl/ctrdrbg.h +116 -0
  597. package/runtime/third_party/boringssl/include/openssl/curve25519.h +309 -0
  598. package/runtime/third_party/boringssl/include/openssl/des.h +134 -0
  599. package/runtime/third_party/boringssl/include/openssl/dh.h +336 -0
  600. package/runtime/third_party/boringssl/include/openssl/digest.h +399 -0
  601. package/runtime/third_party/boringssl/include/openssl/dsa.h +392 -0
  602. package/runtime/third_party/boringssl/include/openssl/dtls1.h +16 -0
  603. package/runtime/third_party/boringssl/include/openssl/e_os2.h +18 -0
  604. package/runtime/third_party/boringssl/include/openssl/ec.h +530 -0
  605. package/runtime/third_party/boringssl/include/openssl/ec_key.h +358 -0
  606. package/runtime/third_party/boringssl/include/openssl/ecdh.h +67 -0
  607. package/runtime/third_party/boringssl/include/openssl/ecdsa.h +242 -0
  608. package/runtime/third_party/boringssl/include/openssl/engine.h +109 -0
  609. package/runtime/third_party/boringssl/include/openssl/err.h +416 -0
  610. package/runtime/third_party/boringssl/include/openssl/evp.h +1645 -0
  611. package/runtime/third_party/boringssl/include/openssl/evp_errors.h +66 -0
  612. package/runtime/third_party/boringssl/include/openssl/ex_data.h +117 -0
  613. package/runtime/third_party/boringssl/include/openssl/hkdf.h +68 -0
  614. package/runtime/third_party/boringssl/include/openssl/hmac.h +151 -0
  615. package/runtime/third_party/boringssl/include/openssl/hpke.h +456 -0
  616. package/runtime/third_party/boringssl/include/openssl/hrss.h +108 -0
  617. package/runtime/third_party/boringssl/include/openssl/is_boringssl.h +16 -0
  618. package/runtime/third_party/boringssl/include/openssl/kdf.h +92 -0
  619. package/runtime/third_party/boringssl/include/openssl/lhash.h +18 -0
  620. package/runtime/third_party/boringssl/include/openssl/md4.h +73 -0
  621. package/runtime/third_party/boringssl/include/openssl/md5.h +67 -0
  622. package/runtime/third_party/boringssl/include/openssl/mem.h +215 -0
  623. package/runtime/third_party/boringssl/include/openssl/mldsa.h +486 -0
  624. package/runtime/third_party/boringssl/include/openssl/mlkem.h +222 -0
  625. package/runtime/third_party/boringssl/include/openssl/nid.h +5561 -0
  626. package/runtime/third_party/boringssl/include/openssl/obj.h +225 -0
  627. package/runtime/third_party/boringssl/include/openssl/obj_mac.h +18 -0
  628. package/runtime/third_party/boringssl/include/openssl/objects.h +18 -0
  629. package/runtime/third_party/boringssl/include/openssl/opensslconf.h +108 -0
  630. package/runtime/third_party/boringssl/include/openssl/opensslv.h +18 -0
  631. package/runtime/third_party/boringssl/include/openssl/ossl_typ.h +18 -0
  632. package/runtime/third_party/boringssl/include/openssl/params.h +42 -0
  633. package/runtime/third_party/boringssl/include/openssl/pem.h +769 -0
  634. package/runtime/third_party/boringssl/include/openssl/pkcs12.h +18 -0
  635. package/runtime/third_party/boringssl/include/openssl/pkcs7.h +239 -0
  636. package/runtime/third_party/boringssl/include/openssl/pkcs8.h +267 -0
  637. package/runtime/third_party/boringssl/include/openssl/poly1305.h +52 -0
  638. package/runtime/third_party/boringssl/include/openssl/pool.h +137 -0
  639. package/runtime/third_party/boringssl/include/openssl/posix_time.h +51 -0
  640. package/runtime/third_party/boringssl/include/openssl/prefix_symbols.h +8000 -0
  641. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_S.h +633 -0
  642. package/runtime/third_party/boringssl/include/openssl/prefix_symbols_internal_c.h +329 -0
  643. package/runtime/third_party/boringssl/include/openssl/rand.h +138 -0
  644. package/runtime/third_party/boringssl/include/openssl/rc4.h +54 -0
  645. package/runtime/third_party/boringssl/include/openssl/ripemd.h +71 -0
  646. package/runtime/third_party/boringssl/include/openssl/rsa.h +893 -0
  647. package/runtime/third_party/boringssl/include/openssl/safestack.h +16 -0
  648. package/runtime/third_party/boringssl/include/openssl/service_indicator.h +19 -0
  649. package/runtime/third_party/boringssl/include/openssl/sha.h +108 -0
  650. package/runtime/third_party/boringssl/include/openssl/sha2.h +201 -0
  651. package/runtime/third_party/boringssl/include/openssl/siphash.h +37 -0
  652. package/runtime/third_party/boringssl/include/openssl/slhdsa.h +250 -0
  653. package/runtime/third_party/boringssl/include/openssl/span.h +376 -0
  654. package/runtime/third_party/boringssl/include/openssl/srtp.h +18 -0
  655. package/runtime/third_party/boringssl/include/openssl/ssl.h +7211 -0
  656. package/runtime/third_party/boringssl/include/openssl/ssl3.h +171 -0
  657. package/runtime/third_party/boringssl/include/openssl/stack.h +688 -0
  658. package/runtime/third_party/boringssl/include/openssl/target.h +246 -0
  659. package/runtime/third_party/boringssl/include/openssl/thread.h +114 -0
  660. package/runtime/third_party/boringssl/include/openssl/time.h +22 -0
  661. package/runtime/third_party/boringssl/include/openssl/tls1.h +263 -0
  662. package/runtime/third_party/boringssl/include/openssl/tls_prf.h +47 -0
  663. package/runtime/third_party/boringssl/include/openssl/trust_token.h +349 -0
  664. package/runtime/third_party/boringssl/include/openssl/type_check.h +37 -0
  665. package/runtime/third_party/boringssl/include/openssl/types.h +18 -0
  666. package/runtime/third_party/boringssl/include/openssl/x509.h +5404 -0
  667. package/runtime/third_party/boringssl/include/openssl/x509_vfy.h +18 -0
  668. package/runtime/third_party/boringssl/include/openssl/x509v3.h +63 -0
  669. package/runtime/third_party/boringssl/include/openssl/x509v3_errors.h +84 -0
  670. package/runtime/third_party/boringssl/include/openssl/xwing.h +115 -0
  671. package/runtime/third_party/boringssl/sources.json +696 -0
  672. package/runtime/third_party/boringssl/ssl/bio_ssl.cc +196 -0
  673. package/runtime/third_party/boringssl/ssl/d1_both.cc +1137 -0
  674. package/runtime/third_party/boringssl/ssl/d1_lib.cc +245 -0
  675. package/runtime/third_party/boringssl/ssl/d1_pkt.cc +322 -0
  676. package/runtime/third_party/boringssl/ssl/d1_srtp.cc +128 -0
  677. package/runtime/third_party/boringssl/ssl/dtls_method.cc +216 -0
  678. package/runtime/third_party/boringssl/ssl/dtls_record.cc +586 -0
  679. package/runtime/third_party/boringssl/ssl/encrypted_client_hello.cc +1110 -0
  680. package/runtime/third_party/boringssl/ssl/extensions.cc +5368 -0
  681. package/runtime/third_party/boringssl/ssl/handoff.cc +625 -0
  682. package/runtime/third_party/boringssl/ssl/handshake.cc +694 -0
  683. package/runtime/third_party/boringssl/ssl/handshake_client.cc +1958 -0
  684. package/runtime/third_party/boringssl/ssl/handshake_server.cc +1875 -0
  685. package/runtime/third_party/boringssl/ssl/internal.h +4506 -0
  686. package/runtime/third_party/boringssl/ssl/s3_both.cc +555 -0
  687. package/runtime/third_party/boringssl/ssl/s3_lib.cc +88 -0
  688. package/runtime/third_party/boringssl/ssl/s3_pkt.cc +396 -0
  689. package/runtime/third_party/boringssl/ssl/ssl_aead_ctx.cc +416 -0
  690. package/runtime/third_party/boringssl/ssl/ssl_asn1.cc +851 -0
  691. package/runtime/third_party/boringssl/ssl/ssl_buffer.cc +304 -0
  692. package/runtime/third_party/boringssl/ssl/ssl_cert.cc +723 -0
  693. package/runtime/third_party/boringssl/ssl/ssl_cipher.cc +1762 -0
  694. package/runtime/third_party/boringssl/ssl/ssl_credential.cc +913 -0
  695. package/runtime/third_party/boringssl/ssl/ssl_file.cc +375 -0
  696. package/runtime/third_party/boringssl/ssl/ssl_key_share.cc +445 -0
  697. package/runtime/third_party/boringssl/ssl/ssl_lib.cc +4132 -0
  698. package/runtime/third_party/boringssl/ssl/ssl_privkey.cc +973 -0
  699. package/runtime/third_party/boringssl/ssl/ssl_session.cc +1273 -0
  700. package/runtime/third_party/boringssl/ssl/ssl_stat.cc +162 -0
  701. package/runtime/third_party/boringssl/ssl/ssl_transcript.cc +224 -0
  702. package/runtime/third_party/boringssl/ssl/ssl_versions.cc +436 -0
  703. package/runtime/third_party/boringssl/ssl/ssl_x509.cc +1229 -0
  704. package/runtime/third_party/boringssl/ssl/t1_enc.cc +266 -0
  705. package/runtime/third_party/boringssl/ssl/tls13_both.cc +764 -0
  706. package/runtime/third_party/boringssl/ssl/tls13_client.cc +1325 -0
  707. package/runtime/third_party/boringssl/ssl/tls13_enc.cc +746 -0
  708. package/runtime/third_party/boringssl/ssl/tls13_server.cc +1623 -0
  709. package/runtime/third_party/boringssl/ssl/tls_method.cc +266 -0
  710. package/runtime/third_party/boringssl/ssl/tls_record.cc +524 -0
  711. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_mul.S +178 -0
  712. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_curve25519_adx_square.S +146 -0
  713. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_mul.S +177 -0
  714. package/runtime/third_party/boringssl/third_party/fiat/asm/fiat_p256_adx_sqr.S +166 -0
  715. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_bareminimum.c.inc +47 -0
  716. package/runtime/third_party/boringssl/third_party/fiat/bedrock_unverified_platform.c.inc +137 -0
  717. package/runtime/third_party/boringssl/third_party/fiat/curve25519_32.h +1571 -0
  718. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64.h +978 -0
  719. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_adx.h +700 -0
  720. package/runtime/third_party/boringssl/third_party/fiat/curve25519_64_msvc.h +1281 -0
  721. package/runtime/third_party/boringssl/third_party/fiat/p256_32.h +4760 -0
  722. package/runtime/third_party/boringssl/third_party/fiat/p256_64.h +1984 -0
  723. package/runtime/third_party/boringssl/third_party/fiat/p256_64_msvc.h +1939 -0
  724. package/runtime/third_party/boringssl/third_party/fiat/p256_field.c.inc +26 -0
  725. package/runtime/third_party/boringssl/third_party/fiat/p256_field_32.br.c.inc +71 -0
  726. package/runtime/third_party/boringssl/third_party/fiat/p256_field_64.br.c.inc +84 -0
  727. package/runtime/third_party/boringssl/third_party/fiat/p256_point.br.c.inc +112 -0
  728. package/runtime/third_party/v8-ieee754/README.md +2 -1
  729. package/runtime/third_party/v8-ieee754/convert.py +4 -0
  730. package/runtime/third_party/v8-ieee754/ieee754.c +1 -1
  731. package/runtime/third_party/bearssl/LICENSE.txt +0 -21
  732. package/runtime/third_party/bearssl/README.txt +0 -136
  733. package/runtime/third_party/bearssl/VERSION +0 -1
  734. package/runtime/third_party/bearssl/inc/bearssl.h +0 -183
  735. package/runtime/third_party/bearssl/inc/bearssl_aead.h +0 -1059
  736. package/runtime/third_party/bearssl/inc/bearssl_block.h +0 -2618
  737. package/runtime/third_party/bearssl/inc/bearssl_ec.h +0 -967
  738. package/runtime/third_party/bearssl/inc/bearssl_hash.h +0 -1346
  739. package/runtime/third_party/bearssl/inc/bearssl_hmac.h +0 -241
  740. package/runtime/third_party/bearssl/inc/bearssl_kdf.h +0 -284
  741. package/runtime/third_party/bearssl/inc/bearssl_pem.h +0 -294
  742. package/runtime/third_party/bearssl/inc/bearssl_prf.h +0 -150
  743. package/runtime/third_party/bearssl/inc/bearssl_rand.h +0 -397
  744. package/runtime/third_party/bearssl/inc/bearssl_rsa.h +0 -1655
  745. package/runtime/third_party/bearssl/inc/bearssl_ssl.h +0 -4296
  746. package/runtime/third_party/bearssl/inc/bearssl_x509.h +0 -1474
  747. package/runtime/third_party/bearssl/src/aead/ccm.c +0 -346
  748. package/runtime/third_party/bearssl/src/aead/eax.c +0 -525
  749. package/runtime/third_party/bearssl/src/aead/gcm.c +0 -318
  750. package/runtime/third_party/bearssl/src/codec/ccopy.c +0 -44
  751. package/runtime/third_party/bearssl/src/codec/dec16be.c +0 -38
  752. package/runtime/third_party/bearssl/src/codec/dec16le.c +0 -38
  753. package/runtime/third_party/bearssl/src/codec/dec32be.c +0 -38
  754. package/runtime/third_party/bearssl/src/codec/dec32le.c +0 -38
  755. package/runtime/third_party/bearssl/src/codec/dec64be.c +0 -38
  756. package/runtime/third_party/bearssl/src/codec/dec64le.c +0 -38
  757. package/runtime/third_party/bearssl/src/codec/enc16be.c +0 -38
  758. package/runtime/third_party/bearssl/src/codec/enc16le.c +0 -38
  759. package/runtime/third_party/bearssl/src/codec/enc32be.c +0 -38
  760. package/runtime/third_party/bearssl/src/codec/enc32le.c +0 -38
  761. package/runtime/third_party/bearssl/src/codec/enc64be.c +0 -38
  762. package/runtime/third_party/bearssl/src/codec/enc64le.c +0 -38
  763. package/runtime/third_party/bearssl/src/codec/pemdec.c +0 -526
  764. package/runtime/third_party/bearssl/src/codec/pemdec.t0 +0 -314
  765. package/runtime/third_party/bearssl/src/codec/pemenc.c +0 -173
  766. package/runtime/third_party/bearssl/src/config.h +0 -247
  767. package/runtime/third_party/bearssl/src/ec/ec_all_m15.c +0 -121
  768. package/runtime/third_party/bearssl/src/ec/ec_all_m31.c +0 -171
  769. package/runtime/third_party/bearssl/src/ec/ec_c25519_i15.c +0 -398
  770. package/runtime/third_party/bearssl/src/ec/ec_c25519_i31.c +0 -390
  771. package/runtime/third_party/bearssl/src/ec/ec_c25519_m15.c +0 -1478
  772. package/runtime/third_party/bearssl/src/ec/ec_c25519_m31.c +0 -800
  773. package/runtime/third_party/bearssl/src/ec/ec_c25519_m62.c +0 -605
  774. package/runtime/third_party/bearssl/src/ec/ec_c25519_m64.c +0 -831
  775. package/runtime/third_party/bearssl/src/ec/ec_curve25519.c +0 -46
  776. package/runtime/third_party/bearssl/src/ec/ec_default.c +0 -36
  777. package/runtime/third_party/bearssl/src/ec/ec_keygen.c +0 -86
  778. package/runtime/third_party/bearssl/src/ec/ec_p256_m15.c +0 -2124
  779. package/runtime/third_party/bearssl/src/ec/ec_p256_m31.c +0 -1469
  780. package/runtime/third_party/bearssl/src/ec/ec_p256_m62.c +0 -1765
  781. package/runtime/third_party/bearssl/src/ec/ec_p256_m64.c +0 -1781
  782. package/runtime/third_party/bearssl/src/ec/ec_prime_i15.c +0 -824
  783. package/runtime/third_party/bearssl/src/ec/ec_prime_i31.c +0 -826
  784. package/runtime/third_party/bearssl/src/ec/ec_pubkey.c +0 -85
  785. package/runtime/third_party/bearssl/src/ec/ec_secp256r1.c +0 -51
  786. package/runtime/third_party/bearssl/src/ec/ec_secp384r1.c +0 -57
  787. package/runtime/third_party/bearssl/src/ec/ec_secp521r1.c +0 -64
  788. package/runtime/third_party/bearssl/src/ec/ecdsa_atr.c +0 -134
  789. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_asn1.c +0 -36
  790. package/runtime/third_party/bearssl/src/ec/ecdsa_default_sign_raw.c +0 -36
  791. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_asn1.c +0 -36
  792. package/runtime/third_party/bearssl/src/ec/ecdsa_default_vrfy_raw.c +0 -36
  793. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_bits.c +0 -47
  794. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_asn1.c +0 -45
  795. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_sign_raw.c +0 -174
  796. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_asn1.c +0 -48
  797. package/runtime/third_party/bearssl/src/ec/ecdsa_i15_vrfy_raw.c +0 -166
  798. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_bits.c +0 -47
  799. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_asn1.c +0 -45
  800. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_sign_raw.c +0 -173
  801. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_asn1.c +0 -48
  802. package/runtime/third_party/bearssl/src/ec/ecdsa_i31_vrfy_raw.c +0 -165
  803. package/runtime/third_party/bearssl/src/ec/ecdsa_rta.c +0 -121
  804. package/runtime/third_party/bearssl/src/hash/dig_oid.c +0 -84
  805. package/runtime/third_party/bearssl/src/hash/dig_size.c +0 -50
  806. package/runtime/third_party/bearssl/src/hash/ghash_ctmul.c +0 -345
  807. package/runtime/third_party/bearssl/src/hash/ghash_ctmul32.c +0 -251
  808. package/runtime/third_party/bearssl/src/hash/ghash_ctmul64.c +0 -154
  809. package/runtime/third_party/bearssl/src/hash/ghash_pclmul.c +0 -389
  810. package/runtime/third_party/bearssl/src/hash/ghash_pwr8.c +0 -411
  811. package/runtime/third_party/bearssl/src/hash/md5.c +0 -208
  812. package/runtime/third_party/bearssl/src/hash/md5sha1.c +0 -141
  813. package/runtime/third_party/bearssl/src/hash/mgf1.c +0 -56
  814. package/runtime/third_party/bearssl/src/hash/multihash.c +0 -166
  815. package/runtime/third_party/bearssl/src/hash/sha1.c +0 -191
  816. package/runtime/third_party/bearssl/src/hash/sha2big.c +0 -285
  817. package/runtime/third_party/bearssl/src/hash/sha2small.c +0 -341
  818. package/runtime/third_party/bearssl/src/inner.h +0 -2577
  819. package/runtime/third_party/bearssl/src/int/i15_add.c +0 -46
  820. package/runtime/third_party/bearssl/src/int/i15_bitlen.c +0 -44
  821. package/runtime/third_party/bearssl/src/int/i15_decmod.c +0 -124
  822. package/runtime/third_party/bearssl/src/int/i15_decode.c +0 -56
  823. package/runtime/third_party/bearssl/src/int/i15_decred.c +0 -100
  824. package/runtime/third_party/bearssl/src/int/i15_encode.c +0 -56
  825. package/runtime/third_party/bearssl/src/int/i15_fmont.c +0 -59
  826. package/runtime/third_party/bearssl/src/int/i15_iszero.c +0 -39
  827. package/runtime/third_party/bearssl/src/int/i15_moddiv.c +0 -465
  828. package/runtime/third_party/bearssl/src/int/i15_modpow.c +0 -50
  829. package/runtime/third_party/bearssl/src/int/i15_modpow2.c +0 -160
  830. package/runtime/third_party/bearssl/src/int/i15_montmul.c +0 -184
  831. package/runtime/third_party/bearssl/src/int/i15_mulacc.c +0 -61
  832. package/runtime/third_party/bearssl/src/int/i15_muladd.c +0 -173
  833. package/runtime/third_party/bearssl/src/int/i15_ninv15.c +0 -38
  834. package/runtime/third_party/bearssl/src/int/i15_reduce.c +0 -66
  835. package/runtime/third_party/bearssl/src/int/i15_rshift.c +0 -47
  836. package/runtime/third_party/bearssl/src/int/i15_sub.c +0 -46
  837. package/runtime/third_party/bearssl/src/int/i15_tmont.c +0 -36
  838. package/runtime/third_party/bearssl/src/int/i31_add.c +0 -46
  839. package/runtime/third_party/bearssl/src/int/i31_bitlen.c +0 -44
  840. package/runtime/third_party/bearssl/src/int/i31_decmod.c +0 -124
  841. package/runtime/third_party/bearssl/src/int/i31_decode.c +0 -57
  842. package/runtime/third_party/bearssl/src/int/i31_decred.c +0 -103
  843. package/runtime/third_party/bearssl/src/int/i31_encode.c +0 -79
  844. package/runtime/third_party/bearssl/src/int/i31_fmont.c +0 -60
  845. package/runtime/third_party/bearssl/src/int/i31_iszero.c +0 -39
  846. package/runtime/third_party/bearssl/src/int/i31_moddiv.c +0 -488
  847. package/runtime/third_party/bearssl/src/int/i31_modpow.c +0 -65
  848. package/runtime/third_party/bearssl/src/int/i31_modpow2.c +0 -160
  849. package/runtime/third_party/bearssl/src/int/i31_montmul.c +0 -127
  850. package/runtime/third_party/bearssl/src/int/i31_mulacc.c +0 -74
  851. package/runtime/third_party/bearssl/src/int/i31_muladd.c +0 -157
  852. package/runtime/third_party/bearssl/src/int/i31_ninv31.c +0 -39
  853. package/runtime/third_party/bearssl/src/int/i31_reduce.c +0 -66
  854. package/runtime/third_party/bearssl/src/int/i31_rshift.c +0 -47
  855. package/runtime/third_party/bearssl/src/int/i31_sub.c +0 -46
  856. package/runtime/third_party/bearssl/src/int/i31_tmont.c +0 -36
  857. package/runtime/third_party/bearssl/src/int/i32_add.c +0 -51
  858. package/runtime/third_party/bearssl/src/int/i32_bitlen.c +0 -44
  859. package/runtime/third_party/bearssl/src/int/i32_decmod.c +0 -77
  860. package/runtime/third_party/bearssl/src/int/i32_decode.c +0 -63
  861. package/runtime/third_party/bearssl/src/int/i32_decred.c +0 -107
  862. package/runtime/third_party/bearssl/src/int/i32_div32.c +0 -56
  863. package/runtime/third_party/bearssl/src/int/i32_encode.c +0 -72
  864. package/runtime/third_party/bearssl/src/int/i32_fmont.c +0 -60
  865. package/runtime/third_party/bearssl/src/int/i32_iszero.c +0 -39
  866. package/runtime/third_party/bearssl/src/int/i32_modpow.c +0 -65
  867. package/runtime/third_party/bearssl/src/int/i32_montmul.c +0 -69
  868. package/runtime/third_party/bearssl/src/int/i32_mulacc.c +0 -56
  869. package/runtime/third_party/bearssl/src/int/i32_muladd.c +0 -138
  870. package/runtime/third_party/bearssl/src/int/i32_ninv32.c +0 -39
  871. package/runtime/third_party/bearssl/src/int/i32_reduce.c +0 -66
  872. package/runtime/third_party/bearssl/src/int/i32_sub.c +0 -51
  873. package/runtime/third_party/bearssl/src/int/i32_tmont.c +0 -36
  874. package/runtime/third_party/bearssl/src/int/i62_modpow2.c +0 -493
  875. package/runtime/third_party/bearssl/src/kdf/hkdf.c +0 -107
  876. package/runtime/third_party/bearssl/src/kdf/shake.c +0 -590
  877. package/runtime/third_party/bearssl/src/mac/hmac.c +0 -122
  878. package/runtime/third_party/bearssl/src/mac/hmac_ct.c +0 -193
  879. package/runtime/third_party/bearssl/src/rand/aesctr_drbg.c +0 -206
  880. package/runtime/third_party/bearssl/src/rand/hmac_drbg.c +0 -157
  881. package/runtime/third_party/bearssl/src/rand/sysrng.c +0 -252
  882. package/runtime/third_party/bearssl/src/rsa/rsa_default_keygen.c +0 -38
  883. package/runtime/third_party/bearssl/src/rsa/rsa_default_modulus.c +0 -36
  884. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_decrypt.c +0 -38
  885. package/runtime/third_party/bearssl/src/rsa/rsa_default_oaep_encrypt.c +0 -38
  886. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_sign.c +0 -38
  887. package/runtime/third_party/bearssl/src/rsa/rsa_default_pkcs1_vrfy.c +0 -38
  888. package/runtime/third_party/bearssl/src/rsa/rsa_default_priv.c +0 -38
  889. package/runtime/third_party/bearssl/src/rsa/rsa_default_privexp.c +0 -36
  890. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_sign.c +0 -38
  891. package/runtime/third_party/bearssl/src/rsa/rsa_default_pss_vrfy.c +0 -38
  892. package/runtime/third_party/bearssl/src/rsa/rsa_default_pub.c +0 -38
  893. package/runtime/third_party/bearssl/src/rsa/rsa_default_pubexp.c +0 -36
  894. package/runtime/third_party/bearssl/src/rsa/rsa_i15_keygen.c +0 -583
  895. package/runtime/third_party/bearssl/src/rsa/rsa_i15_modulus.c +0 -99
  896. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_decrypt.c +0 -41
  897. package/runtime/third_party/bearssl/src/rsa/rsa_i15_oaep_encrypt.c +0 -44
  898. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_sign.c +0 -37
  899. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pkcs1_vrfy.c +0 -43
  900. package/runtime/third_party/bearssl/src/rsa/rsa_i15_priv.c +0 -209
  901. package/runtime/third_party/bearssl/src/rsa/rsa_i15_privexp.c +0 -320
  902. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_sign.c +0 -40
  903. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pss_vrfy.c +0 -44
  904. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pub.c +0 -113
  905. package/runtime/third_party/bearssl/src/rsa/rsa_i15_pubexp.c +0 -152
  906. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen.c +0 -37
  907. package/runtime/third_party/bearssl/src/rsa/rsa_i31_keygen_inner.c +0 -608
  908. package/runtime/third_party/bearssl/src/rsa/rsa_i31_modulus.c +0 -99
  909. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_decrypt.c +0 -41
  910. package/runtime/third_party/bearssl/src/rsa/rsa_i31_oaep_encrypt.c +0 -44
  911. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_sign.c +0 -37
  912. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pkcs1_vrfy.c +0 -43
  913. package/runtime/third_party/bearssl/src/rsa/rsa_i31_priv.c +0 -203
  914. package/runtime/third_party/bearssl/src/rsa/rsa_i31_privexp.c +0 -318
  915. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_sign.c +0 -40
  916. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pss_vrfy.c +0 -44
  917. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pub.c +0 -106
  918. package/runtime/third_party/bearssl/src/rsa/rsa_i31_pubexp.c +0 -152
  919. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_decrypt.c +0 -41
  920. package/runtime/third_party/bearssl/src/rsa/rsa_i32_oaep_encrypt.c +0 -44
  921. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_sign.c +0 -37
  922. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pkcs1_vrfy.c +0 -43
  923. package/runtime/third_party/bearssl/src/rsa/rsa_i32_priv.c +0 -160
  924. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_sign.c +0 -40
  925. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pss_vrfy.c +0 -44
  926. package/runtime/third_party/bearssl/src/rsa/rsa_i32_pub.c +0 -77
  927. package/runtime/third_party/bearssl/src/rsa/rsa_i62_keygen.c +0 -57
  928. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_decrypt.c +0 -61
  929. package/runtime/third_party/bearssl/src/rsa/rsa_i62_oaep_encrypt.c +0 -64
  930. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_sign.c +0 -57
  931. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pkcs1_vrfy.c +0 -63
  932. package/runtime/third_party/bearssl/src/rsa/rsa_i62_priv.c +0 -223
  933. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_sign.c +0 -60
  934. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pss_vrfy.c +0 -64
  935. package/runtime/third_party/bearssl/src/rsa/rsa_i62_pub.c +0 -125
  936. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_pad.c +0 -112
  937. package/runtime/third_party/bearssl/src/rsa/rsa_oaep_unpad.c +0 -145
  938. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_pad.c +0 -100
  939. package/runtime/third_party/bearssl/src/rsa/rsa_pkcs1_sig_unpad.c +0 -121
  940. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_pad.c +0 -106
  941. package/runtime/third_party/bearssl/src/rsa/rsa_pss_sig_unpad.c +0 -121
  942. package/runtime/third_party/bearssl/src/rsa/rsa_ssl_decrypt.c +0 -52
  943. package/runtime/third_party/bearssl/src/settings.c +0 -306
  944. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcdec.c +0 -69
  945. package/runtime/third_party/bearssl/src/symcipher/aes_big_cbcenc.c +0 -67
  946. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctr.c +0 -84
  947. package/runtime/third_party/bearssl/src/symcipher/aes_big_ctrcbc.c +0 -142
  948. package/runtime/third_party/bearssl/src/symcipher/aes_big_dec.c +0 -254
  949. package/runtime/third_party/bearssl/src/symcipher/aes_big_enc.c +0 -157
  950. package/runtime/third_party/bearssl/src/symcipher/aes_common.c +0 -112
  951. package/runtime/third_party/bearssl/src/symcipher/aes_ct.c +0 -328
  952. package/runtime/third_party/bearssl/src/symcipher/aes_ct64.c +0 -398
  953. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcdec.c +0 -104
  954. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_cbcenc.c +0 -81
  955. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctr.c +0 -114
  956. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_ctrcbc.c +0 -433
  957. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_dec.c +0 -159
  958. package/runtime/third_party/bearssl/src/symcipher/aes_ct64_enc.c +0 -115
  959. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcdec.c +0 -111
  960. package/runtime/third_party/bearssl/src/symcipher/aes_ct_cbcenc.c +0 -91
  961. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctr.c +0 -116
  962. package/runtime/third_party/bearssl/src/symcipher/aes_ct_ctrcbc.c +0 -422
  963. package/runtime/third_party/bearssl/src/symcipher/aes_ct_dec.c +0 -170
  964. package/runtime/third_party/bearssl/src/symcipher/aes_ct_enc.c +0 -112
  965. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8.c +0 -445
  966. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcdec.c +0 -670
  967. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_cbcenc.c +0 -417
  968. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctr.c +0 -717
  969. package/runtime/third_party/bearssl/src/symcipher/aes_pwr8_ctrcbc.c +0 -946
  970. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcdec.c +0 -69
  971. package/runtime/third_party/bearssl/src/symcipher/aes_small_cbcenc.c +0 -67
  972. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctr.c +0 -84
  973. package/runtime/third_party/bearssl/src/symcipher/aes_small_ctrcbc.c +0 -142
  974. package/runtime/third_party/bearssl/src/symcipher/aes_small_dec.c +0 -176
  975. package/runtime/third_party/bearssl/src/symcipher/aes_small_enc.c +0 -129
  976. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni.c +0 -240
  977. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcdec.c +0 -223
  978. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_cbcenc.c +0 -122
  979. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctr.c +0 -211
  980. package/runtime/third_party/bearssl/src/symcipher/aes_x86ni_ctrcbc.c +0 -596
  981. package/runtime/third_party/bearssl/src/symcipher/chacha20_ct.c +0 -106
  982. package/runtime/third_party/bearssl/src/symcipher/chacha20_sse2.c +0 -237
  983. package/runtime/third_party/bearssl/src/symcipher/des_ct.c +0 -411
  984. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcdec.c +0 -87
  985. package/runtime/third_party/bearssl/src/symcipher/des_ct_cbcenc.c +0 -69
  986. package/runtime/third_party/bearssl/src/symcipher/des_support.c +0 -166
  987. package/runtime/third_party/bearssl/src/symcipher/des_tab.c +0 -310
  988. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcdec.c +0 -85
  989. package/runtime/third_party/bearssl/src/symcipher/des_tab_cbcenc.c +0 -67
  990. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul.c +0 -260
  991. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmul32.c +0 -297
  992. package/runtime/third_party/bearssl/src/symcipher/poly1305_ctmulq.c +0 -475
  993. package/runtime/third_party/bearssl/src/symcipher/poly1305_i15.c +0 -221
  994. package/runtime/third_party/bearssl/src/x509/asn1.t0 +0 -757
  995. package/runtime/third_party/bearssl/src/x509/asn1enc.c +0 -93
  996. package/runtime/third_party/bearssl/src/x509/encode_ec_pk8der.c +0 -110
  997. package/runtime/third_party/bearssl/src/x509/encode_ec_rawder.c +0 -161
  998. package/runtime/third_party/bearssl/src/x509/encode_rsa_pk8der.c +0 -97
  999. package/runtime/third_party/bearssl/src/x509/encode_rsa_rawder.c +0 -96
  1000. package/runtime/third_party/bearssl/src/x509/skey_decoder.c +0 -653
  1001. package/runtime/third_party/bearssl/src/x509/skey_decoder.t0 +0 -376
  1002. package/runtime/third_party/bearssl/src/x509/x509_decoder.c +0 -776
  1003. package/runtime/third_party/bearssl/src/x509/x509_decoder.t0 +0 -324
  1004. package/runtime/third_party/bearssl/src/x509/x509_knownkey.c +0 -105
  1005. package/runtime/third_party/bearssl/src/x509/x509_minimal.c +0 -1722
  1006. package/runtime/third_party/bearssl/src/x509/x509_minimal.t0 +0 -1526
  1007. package/runtime/third_party/bearssl/src/x509/x509_minimal_full.c +0 -59
@@ -0,0 +1,1756 @@
1
+ // This file is generated from a similarly-named Perl script in the BoringSSL
2
+ // source tree. Do not edit by hand.
3
+
4
+ #include <openssl/asm_base.h>
5
+
6
+ #if !defined(OPENSSL_NO_ASM) && defined(OPENSSL_X86_64) && defined(__APPLE__)
7
+ .text
8
+
9
+ .globl _rsaz_1024_sqr_avx2
10
+ .private_extern _rsaz_1024_sqr_avx2
11
+
12
+ .p2align 6
13
+ _rsaz_1024_sqr_avx2: // 702 cycles, 14% faster than rsaz_1024_mul_avx2
14
+
15
+ _CET_ENDBR
16
+ leaq (%rsp),%rax
17
+
18
+ pushq %rbx
19
+
20
+ pushq %rbp
21
+
22
+ pushq %r12
23
+
24
+ pushq %r13
25
+
26
+ pushq %r14
27
+
28
+ pushq %r15
29
+
30
+ vzeroupper
31
+ movq %rax,%rbp
32
+
33
+ movq %rdx,%r13 // reassigned argument
34
+ subq $832,%rsp
35
+ movq %r13,%r15
36
+ subq $-128,%rdi // size optimization
37
+ subq $-128,%rsi
38
+ subq $-128,%r13
39
+
40
+ andq $4095,%r15 // see if %r13 crosses page
41
+ addq $320,%r15
42
+ shrq $12,%r15
43
+ vpxor %ymm9,%ymm9,%ymm9
44
+ jz L$sqr_1024_no_n_copy
45
+
46
+ // unaligned 256-bit load that crosses page boundary can
47
+ // cause >2x performance degradation here, so if %r13 does
48
+ // cross page boundary, copy it to stack and make sure stack
49
+ // frame doesn't...
50
+ subq $320,%rsp
51
+ vmovdqu 0-128(%r13),%ymm0
52
+ andq $-2048,%rsp
53
+ vmovdqu 32-128(%r13),%ymm1
54
+ vmovdqu 64-128(%r13),%ymm2
55
+ vmovdqu 96-128(%r13),%ymm3
56
+ vmovdqu 128-128(%r13),%ymm4
57
+ vmovdqu 160-128(%r13),%ymm5
58
+ vmovdqu 192-128(%r13),%ymm6
59
+ vmovdqu 224-128(%r13),%ymm7
60
+ vmovdqu 256-128(%r13),%ymm8
61
+ leaq 832+128(%rsp),%r13
62
+ vmovdqu %ymm0,0-128(%r13)
63
+ vmovdqu %ymm1,32-128(%r13)
64
+ vmovdqu %ymm2,64-128(%r13)
65
+ vmovdqu %ymm3,96-128(%r13)
66
+ vmovdqu %ymm4,128-128(%r13)
67
+ vmovdqu %ymm5,160-128(%r13)
68
+ vmovdqu %ymm6,192-128(%r13)
69
+ vmovdqu %ymm7,224-128(%r13)
70
+ vmovdqu %ymm8,256-128(%r13)
71
+ vmovdqu %ymm9,288-128(%r13) // %ymm9 is zero
72
+
73
+ L$sqr_1024_no_n_copy:
74
+ andq $-1024,%rsp
75
+
76
+ vmovdqu 32-128(%rsi),%ymm1
77
+ vmovdqu 64-128(%rsi),%ymm2
78
+ vmovdqu 96-128(%rsi),%ymm3
79
+ vmovdqu 128-128(%rsi),%ymm4
80
+ vmovdqu 160-128(%rsi),%ymm5
81
+ vmovdqu 192-128(%rsi),%ymm6
82
+ vmovdqu 224-128(%rsi),%ymm7
83
+ vmovdqu 256-128(%rsi),%ymm8
84
+
85
+ leaq 192(%rsp),%rbx // 64+128=192
86
+ vmovdqu L$and_mask(%rip),%ymm15
87
+ jmp L$OOP_GRANDE_SQR_1024
88
+
89
+ .p2align 5
90
+ L$OOP_GRANDE_SQR_1024:
91
+ leaq 576+128(%rsp),%r9 // size optimization
92
+ leaq 448(%rsp),%r12 // 64+128+256=448
93
+
94
+ // the squaring is performed as described in Variant B of
95
+ // "Speeding up Big-Number Squaring", so start by calculating
96
+ // the A*2=A+A vector
97
+ vpaddq %ymm1,%ymm1,%ymm1
98
+ vpbroadcastq 0-128(%rsi),%ymm10
99
+ vpaddq %ymm2,%ymm2,%ymm2
100
+ vmovdqa %ymm1,0-128(%r9)
101
+ vpaddq %ymm3,%ymm3,%ymm3
102
+ vmovdqa %ymm2,32-128(%r9)
103
+ vpaddq %ymm4,%ymm4,%ymm4
104
+ vmovdqa %ymm3,64-128(%r9)
105
+ vpaddq %ymm5,%ymm5,%ymm5
106
+ vmovdqa %ymm4,96-128(%r9)
107
+ vpaddq %ymm6,%ymm6,%ymm6
108
+ vmovdqa %ymm5,128-128(%r9)
109
+ vpaddq %ymm7,%ymm7,%ymm7
110
+ vmovdqa %ymm6,160-128(%r9)
111
+ vpaddq %ymm8,%ymm8,%ymm8
112
+ vmovdqa %ymm7,192-128(%r9)
113
+ vpxor %ymm9,%ymm9,%ymm9
114
+ vmovdqa %ymm8,224-128(%r9)
115
+
116
+ vpmuludq 0-128(%rsi),%ymm10,%ymm0
117
+ vpbroadcastq 32-128(%rsi),%ymm11
118
+ vmovdqu %ymm9,288-192(%rbx) // zero upper half
119
+ vpmuludq %ymm10,%ymm1,%ymm1
120
+ vmovdqu %ymm9,320-448(%r12)
121
+ vpmuludq %ymm10,%ymm2,%ymm2
122
+ vmovdqu %ymm9,352-448(%r12)
123
+ vpmuludq %ymm10,%ymm3,%ymm3
124
+ vmovdqu %ymm9,384-448(%r12)
125
+ vpmuludq %ymm10,%ymm4,%ymm4
126
+ vmovdqu %ymm9,416-448(%r12)
127
+ vpmuludq %ymm10,%ymm5,%ymm5
128
+ vmovdqu %ymm9,448-448(%r12)
129
+ vpmuludq %ymm10,%ymm6,%ymm6
130
+ vmovdqu %ymm9,480-448(%r12)
131
+ vpmuludq %ymm10,%ymm7,%ymm7
132
+ vmovdqu %ymm9,512-448(%r12)
133
+ vpmuludq %ymm10,%ymm8,%ymm8
134
+ vpbroadcastq 64-128(%rsi),%ymm10
135
+ vmovdqu %ymm9,544-448(%r12)
136
+
137
+ movq %rsi,%r15
138
+ movl $4,%r14d
139
+ jmp L$sqr_entry_1024
140
+ .p2align 5
141
+ L$OOP_SQR_1024:
142
+ vpbroadcastq 32-128(%r15),%ymm11
143
+ vpmuludq 0-128(%rsi),%ymm10,%ymm0
144
+ vpaddq 0-192(%rbx),%ymm0,%ymm0
145
+ vpmuludq 0-128(%r9),%ymm10,%ymm1
146
+ vpaddq 32-192(%rbx),%ymm1,%ymm1
147
+ vpmuludq 32-128(%r9),%ymm10,%ymm2
148
+ vpaddq 64-192(%rbx),%ymm2,%ymm2
149
+ vpmuludq 64-128(%r9),%ymm10,%ymm3
150
+ vpaddq 96-192(%rbx),%ymm3,%ymm3
151
+ vpmuludq 96-128(%r9),%ymm10,%ymm4
152
+ vpaddq 128-192(%rbx),%ymm4,%ymm4
153
+ vpmuludq 128-128(%r9),%ymm10,%ymm5
154
+ vpaddq 160-192(%rbx),%ymm5,%ymm5
155
+ vpmuludq 160-128(%r9),%ymm10,%ymm6
156
+ vpaddq 192-192(%rbx),%ymm6,%ymm6
157
+ vpmuludq 192-128(%r9),%ymm10,%ymm7
158
+ vpaddq 224-192(%rbx),%ymm7,%ymm7
159
+ vpmuludq 224-128(%r9),%ymm10,%ymm8
160
+ vpbroadcastq 64-128(%r15),%ymm10
161
+ vpaddq 256-192(%rbx),%ymm8,%ymm8
162
+ L$sqr_entry_1024:
163
+ vmovdqu %ymm0,0-192(%rbx)
164
+ vmovdqu %ymm1,32-192(%rbx)
165
+
166
+ vpmuludq 32-128(%rsi),%ymm11,%ymm12
167
+ vpaddq %ymm12,%ymm2,%ymm2
168
+ vpmuludq 32-128(%r9),%ymm11,%ymm14
169
+ vpaddq %ymm14,%ymm3,%ymm3
170
+ vpmuludq 64-128(%r9),%ymm11,%ymm13
171
+ vpaddq %ymm13,%ymm4,%ymm4
172
+ vpmuludq 96-128(%r9),%ymm11,%ymm12
173
+ vpaddq %ymm12,%ymm5,%ymm5
174
+ vpmuludq 128-128(%r9),%ymm11,%ymm14
175
+ vpaddq %ymm14,%ymm6,%ymm6
176
+ vpmuludq 160-128(%r9),%ymm11,%ymm13
177
+ vpaddq %ymm13,%ymm7,%ymm7
178
+ vpmuludq 192-128(%r9),%ymm11,%ymm12
179
+ vpaddq %ymm12,%ymm8,%ymm8
180
+ vpmuludq 224-128(%r9),%ymm11,%ymm0
181
+ vpbroadcastq 96-128(%r15),%ymm11
182
+ vpaddq 288-192(%rbx),%ymm0,%ymm0
183
+
184
+ vmovdqu %ymm2,64-192(%rbx)
185
+ vmovdqu %ymm3,96-192(%rbx)
186
+
187
+ vpmuludq 64-128(%rsi),%ymm10,%ymm13
188
+ vpaddq %ymm13,%ymm4,%ymm4
189
+ vpmuludq 64-128(%r9),%ymm10,%ymm12
190
+ vpaddq %ymm12,%ymm5,%ymm5
191
+ vpmuludq 96-128(%r9),%ymm10,%ymm14
192
+ vpaddq %ymm14,%ymm6,%ymm6
193
+ vpmuludq 128-128(%r9),%ymm10,%ymm13
194
+ vpaddq %ymm13,%ymm7,%ymm7
195
+ vpmuludq 160-128(%r9),%ymm10,%ymm12
196
+ vpaddq %ymm12,%ymm8,%ymm8
197
+ vpmuludq 192-128(%r9),%ymm10,%ymm14
198
+ vpaddq %ymm14,%ymm0,%ymm0
199
+ vpmuludq 224-128(%r9),%ymm10,%ymm1
200
+ vpbroadcastq 128-128(%r15),%ymm10
201
+ vpaddq 320-448(%r12),%ymm1,%ymm1
202
+
203
+ vmovdqu %ymm4,128-192(%rbx)
204
+ vmovdqu %ymm5,160-192(%rbx)
205
+
206
+ vpmuludq 96-128(%rsi),%ymm11,%ymm12
207
+ vpaddq %ymm12,%ymm6,%ymm6
208
+ vpmuludq 96-128(%r9),%ymm11,%ymm14
209
+ vpaddq %ymm14,%ymm7,%ymm7
210
+ vpmuludq 128-128(%r9),%ymm11,%ymm13
211
+ vpaddq %ymm13,%ymm8,%ymm8
212
+ vpmuludq 160-128(%r9),%ymm11,%ymm12
213
+ vpaddq %ymm12,%ymm0,%ymm0
214
+ vpmuludq 192-128(%r9),%ymm11,%ymm14
215
+ vpaddq %ymm14,%ymm1,%ymm1
216
+ vpmuludq 224-128(%r9),%ymm11,%ymm2
217
+ vpbroadcastq 160-128(%r15),%ymm11
218
+ vpaddq 352-448(%r12),%ymm2,%ymm2
219
+
220
+ vmovdqu %ymm6,192-192(%rbx)
221
+ vmovdqu %ymm7,224-192(%rbx)
222
+
223
+ vpmuludq 128-128(%rsi),%ymm10,%ymm12
224
+ vpaddq %ymm12,%ymm8,%ymm8
225
+ vpmuludq 128-128(%r9),%ymm10,%ymm14
226
+ vpaddq %ymm14,%ymm0,%ymm0
227
+ vpmuludq 160-128(%r9),%ymm10,%ymm13
228
+ vpaddq %ymm13,%ymm1,%ymm1
229
+ vpmuludq 192-128(%r9),%ymm10,%ymm12
230
+ vpaddq %ymm12,%ymm2,%ymm2
231
+ vpmuludq 224-128(%r9),%ymm10,%ymm3
232
+ vpbroadcastq 192-128(%r15),%ymm10
233
+ vpaddq 384-448(%r12),%ymm3,%ymm3
234
+
235
+ vmovdqu %ymm8,256-192(%rbx)
236
+ vmovdqu %ymm0,288-192(%rbx)
237
+ leaq 8(%rbx),%rbx
238
+
239
+ vpmuludq 160-128(%rsi),%ymm11,%ymm13
240
+ vpaddq %ymm13,%ymm1,%ymm1
241
+ vpmuludq 160-128(%r9),%ymm11,%ymm12
242
+ vpaddq %ymm12,%ymm2,%ymm2
243
+ vpmuludq 192-128(%r9),%ymm11,%ymm14
244
+ vpaddq %ymm14,%ymm3,%ymm3
245
+ vpmuludq 224-128(%r9),%ymm11,%ymm4
246
+ vpbroadcastq 224-128(%r15),%ymm11
247
+ vpaddq 416-448(%r12),%ymm4,%ymm4
248
+
249
+ vmovdqu %ymm1,320-448(%r12)
250
+ vmovdqu %ymm2,352-448(%r12)
251
+
252
+ vpmuludq 192-128(%rsi),%ymm10,%ymm12
253
+ vpaddq %ymm12,%ymm3,%ymm3
254
+ vpmuludq 192-128(%r9),%ymm10,%ymm14
255
+ vpbroadcastq 256-128(%r15),%ymm0 // borrow %ymm0 for %ymm10
256
+ vpaddq %ymm14,%ymm4,%ymm4
257
+ vpmuludq 224-128(%r9),%ymm10,%ymm5
258
+ vpbroadcastq 0+8-128(%r15),%ymm10 // for next iteration
259
+ vpaddq 448-448(%r12),%ymm5,%ymm5
260
+
261
+ vmovdqu %ymm3,384-448(%r12)
262
+ vmovdqu %ymm4,416-448(%r12)
263
+ leaq 8(%r15),%r15
264
+
265
+ vpmuludq 224-128(%rsi),%ymm11,%ymm12
266
+ vpaddq %ymm12,%ymm5,%ymm5
267
+ vpmuludq 224-128(%r9),%ymm11,%ymm6
268
+ vpaddq 480-448(%r12),%ymm6,%ymm6
269
+
270
+ vpmuludq 256-128(%rsi),%ymm0,%ymm7
271
+ vmovdqu %ymm5,448-448(%r12)
272
+ vpaddq 512-448(%r12),%ymm7,%ymm7
273
+ vmovdqu %ymm6,480-448(%r12)
274
+ vmovdqu %ymm7,512-448(%r12)
275
+ leaq 8(%r12),%r12
276
+
277
+ decl %r14d
278
+ jnz L$OOP_SQR_1024
279
+ // we need to fix indices 32-39 to avoid overflow
280
+ vmovdqu 256(%rsp),%ymm8 // 32*8-192(%rbx),
281
+ vmovdqu 288(%rsp),%ymm1 // 32*9-192(%rbx)
282
+ vmovdqu 320(%rsp),%ymm2 // 32*10-192(%rbx)
283
+ leaq 192(%rsp),%rbx // 64+128=192
284
+
285
+ vpsrlq $29,%ymm8,%ymm14
286
+ vpand %ymm15,%ymm8,%ymm8
287
+ vpsrlq $29,%ymm1,%ymm11
288
+ vpand %ymm15,%ymm1,%ymm1
289
+
290
+ vpermq $0x93,%ymm14,%ymm14
291
+ vpxor %ymm9,%ymm9,%ymm9
292
+ vpermq $0x93,%ymm11,%ymm11
293
+
294
+ vpblendd $3,%ymm9,%ymm14,%ymm10
295
+ vpblendd $3,%ymm14,%ymm11,%ymm14
296
+ vpaddq %ymm10,%ymm8,%ymm8
297
+ vpblendd $3,%ymm11,%ymm9,%ymm11
298
+ vpaddq %ymm14,%ymm1,%ymm1
299
+ vpaddq %ymm11,%ymm2,%ymm2
300
+ vmovdqu %ymm1,288-192(%rbx)
301
+ vmovdqu %ymm2,320-192(%rbx)
302
+
303
+ movq (%rsp),%rax
304
+ movq 8(%rsp),%r10
305
+ movq 16(%rsp),%r11
306
+ movq 24(%rsp),%r12
307
+ vmovdqu 32(%rsp),%ymm1
308
+ vmovdqu 64-192(%rbx),%ymm2
309
+ vmovdqu 96-192(%rbx),%ymm3
310
+ vmovdqu 128-192(%rbx),%ymm4
311
+ vmovdqu 160-192(%rbx),%ymm5
312
+ vmovdqu 192-192(%rbx),%ymm6
313
+ vmovdqu 224-192(%rbx),%ymm7
314
+
315
+ movq %rax,%r9
316
+ imull %ecx,%eax
317
+ andl $0x1fffffff,%eax
318
+ vmovd %eax,%xmm12
319
+
320
+ movq %rax,%rdx
321
+ imulq -128(%r13),%rax
322
+ vpbroadcastq %xmm12,%ymm12
323
+ addq %rax,%r9
324
+ movq %rdx,%rax
325
+ imulq 8-128(%r13),%rax
326
+ shrq $29,%r9
327
+ addq %rax,%r10
328
+ movq %rdx,%rax
329
+ imulq 16-128(%r13),%rax
330
+ addq %r9,%r10
331
+ addq %rax,%r11
332
+ imulq 24-128(%r13),%rdx
333
+ addq %rdx,%r12
334
+
335
+ movq %r10,%rax
336
+ imull %ecx,%eax
337
+ andl $0x1fffffff,%eax
338
+
339
+ movl $9,%r14d
340
+ jmp L$OOP_REDUCE_1024
341
+
342
+ .p2align 5
343
+ L$OOP_REDUCE_1024:
344
+ vmovd %eax,%xmm13
345
+ vpbroadcastq %xmm13,%ymm13
346
+
347
+ vpmuludq 32-128(%r13),%ymm12,%ymm10
348
+ movq %rax,%rdx
349
+ imulq -128(%r13),%rax
350
+ vpaddq %ymm10,%ymm1,%ymm1
351
+ addq %rax,%r10
352
+ vpmuludq 64-128(%r13),%ymm12,%ymm14
353
+ movq %rdx,%rax
354
+ imulq 8-128(%r13),%rax
355
+ vpaddq %ymm14,%ymm2,%ymm2
356
+ vpmuludq 96-128(%r13),%ymm12,%ymm11
357
+ .byte 0x67
358
+ addq %rax,%r11
359
+ .byte 0x67
360
+ movq %rdx,%rax
361
+ imulq 16-128(%r13),%rax
362
+ shrq $29,%r10
363
+ vpaddq %ymm11,%ymm3,%ymm3
364
+ vpmuludq 128-128(%r13),%ymm12,%ymm10
365
+ addq %rax,%r12
366
+ addq %r10,%r11
367
+ vpaddq %ymm10,%ymm4,%ymm4
368
+ vpmuludq 160-128(%r13),%ymm12,%ymm14
369
+ movq %r11,%rax
370
+ imull %ecx,%eax
371
+ vpaddq %ymm14,%ymm5,%ymm5
372
+ vpmuludq 192-128(%r13),%ymm12,%ymm11
373
+ andl $0x1fffffff,%eax
374
+ vpaddq %ymm11,%ymm6,%ymm6
375
+ vpmuludq 224-128(%r13),%ymm12,%ymm10
376
+ vpaddq %ymm10,%ymm7,%ymm7
377
+ vpmuludq 256-128(%r13),%ymm12,%ymm14
378
+ vmovd %eax,%xmm12
379
+ // vmovdqu 32*1-8-128(%r13), %ymm11 # moved below
380
+ vpaddq %ymm14,%ymm8,%ymm8
381
+ // vmovdqu 32*2-8-128(%r13), %ymm10 # moved below
382
+ vpbroadcastq %xmm12,%ymm12
383
+
384
+ vpmuludq 32-8-128(%r13),%ymm13,%ymm11 // see above
385
+ vmovdqu 96-8-128(%r13),%ymm14
386
+ movq %rax,%rdx
387
+ imulq -128(%r13),%rax
388
+ vpaddq %ymm11,%ymm1,%ymm1
389
+ vpmuludq 64-8-128(%r13),%ymm13,%ymm10 // see above
390
+ vmovdqu 128-8-128(%r13),%ymm11
391
+ addq %rax,%r11
392
+ movq %rdx,%rax
393
+ imulq 8-128(%r13),%rax
394
+ vpaddq %ymm10,%ymm2,%ymm2
395
+ addq %r12,%rax
396
+ shrq $29,%r11
397
+ vpmuludq %ymm13,%ymm14,%ymm14
398
+ vmovdqu 160-8-128(%r13),%ymm10
399
+ addq %r11,%rax
400
+ vpaddq %ymm14,%ymm3,%ymm3
401
+ vpmuludq %ymm13,%ymm11,%ymm11
402
+ vmovdqu 192-8-128(%r13),%ymm14
403
+ .byte 0x67
404
+ movq %rax,%r12
405
+ imull %ecx,%eax
406
+ vpaddq %ymm11,%ymm4,%ymm4
407
+ vpmuludq %ymm13,%ymm10,%ymm10
408
+ .byte 0xc4,0x41,0x7e,0x6f,0x9d,0x58,0x00,0x00,0x00 // vmovdqu 32*7-8-128(%r13), %ymm11
409
+ andl $0x1fffffff,%eax
410
+ vpaddq %ymm10,%ymm5,%ymm5
411
+ vpmuludq %ymm13,%ymm14,%ymm14
412
+ vmovdqu 256-8-128(%r13),%ymm10
413
+ vpaddq %ymm14,%ymm6,%ymm6
414
+ vpmuludq %ymm13,%ymm11,%ymm11
415
+ vmovdqu 288-8-128(%r13),%ymm9
416
+ vmovd %eax,%xmm0 // borrow ACC0 for Y2
417
+ imulq -128(%r13),%rax
418
+ vpaddq %ymm11,%ymm7,%ymm7
419
+ vpmuludq %ymm13,%ymm10,%ymm10
420
+ vmovdqu 32-16-128(%r13),%ymm14
421
+ vpbroadcastq %xmm0,%ymm0
422
+ vpaddq %ymm10,%ymm8,%ymm8
423
+ vpmuludq %ymm13,%ymm9,%ymm9
424
+ vmovdqu 64-16-128(%r13),%ymm11
425
+ addq %rax,%r12
426
+
427
+ vmovdqu 32-24-128(%r13),%ymm13
428
+ vpmuludq %ymm12,%ymm14,%ymm14
429
+ vmovdqu 96-16-128(%r13),%ymm10
430
+ vpaddq %ymm14,%ymm1,%ymm1
431
+ vpmuludq %ymm0,%ymm13,%ymm13
432
+ vpmuludq %ymm12,%ymm11,%ymm11
433
+ .byte 0xc4,0x41,0x7e,0x6f,0xb5,0xf0,0xff,0xff,0xff // vmovdqu 32*4-16-128(%r13), %ymm14
434
+ vpaddq %ymm1,%ymm13,%ymm13
435
+ vpaddq %ymm11,%ymm2,%ymm2
436
+ vpmuludq %ymm12,%ymm10,%ymm10
437
+ vmovdqu 160-16-128(%r13),%ymm11
438
+ .byte 0x67
439
+ vmovq %xmm13,%rax
440
+ vmovdqu %ymm13,(%rsp) // transfer %r9-%r12
441
+ vpaddq %ymm10,%ymm3,%ymm3
442
+ vpmuludq %ymm12,%ymm14,%ymm14
443
+ vmovdqu 192-16-128(%r13),%ymm10
444
+ vpaddq %ymm14,%ymm4,%ymm4
445
+ vpmuludq %ymm12,%ymm11,%ymm11
446
+ vmovdqu 224-16-128(%r13),%ymm14
447
+ vpaddq %ymm11,%ymm5,%ymm5
448
+ vpmuludq %ymm12,%ymm10,%ymm10
449
+ vmovdqu 256-16-128(%r13),%ymm11
450
+ vpaddq %ymm10,%ymm6,%ymm6
451
+ vpmuludq %ymm12,%ymm14,%ymm14
452
+ shrq $29,%r12
453
+ vmovdqu 288-16-128(%r13),%ymm10
454
+ addq %r12,%rax
455
+ vpaddq %ymm14,%ymm7,%ymm7
456
+ vpmuludq %ymm12,%ymm11,%ymm11
457
+ // vmovdqu 32*2-24-128(%r13), %ymm14 # moved below
458
+ movq %rax,%r9
459
+ imull %ecx,%eax
460
+ vpaddq %ymm11,%ymm8,%ymm8
461
+ vpmuludq %ymm12,%ymm10,%ymm10
462
+ andl $0x1fffffff,%eax
463
+ vmovd %eax,%xmm12
464
+ vmovdqu 96-24-128(%r13),%ymm11
465
+ .byte 0x67
466
+ vpaddq %ymm10,%ymm9,%ymm9
467
+ vpbroadcastq %xmm12,%ymm12
468
+
469
+ vpmuludq 64-24-128(%r13),%ymm0,%ymm14 // see above
470
+ vmovdqu 128-24-128(%r13),%ymm10
471
+ movq %rax,%rdx
472
+ imulq -128(%r13),%rax
473
+ movq 8(%rsp),%r10
474
+ vpaddq %ymm14,%ymm2,%ymm1
475
+ vpmuludq %ymm0,%ymm11,%ymm11
476
+ vmovdqu 160-24-128(%r13),%ymm14
477
+ addq %rax,%r9
478
+ movq %rdx,%rax
479
+ imulq 8-128(%r13),%rax
480
+ .byte 0x67
481
+ shrq $29,%r9
482
+ movq 16(%rsp),%r11
483
+ vpaddq %ymm11,%ymm3,%ymm2
484
+ vpmuludq %ymm0,%ymm10,%ymm10
485
+ vmovdqu 192-24-128(%r13),%ymm11
486
+ addq %rax,%r10
487
+ movq %rdx,%rax
488
+ imulq 16-128(%r13),%rax
489
+ vpaddq %ymm10,%ymm4,%ymm3
490
+ vpmuludq %ymm0,%ymm14,%ymm14
491
+ vmovdqu 224-24-128(%r13),%ymm10
492
+ imulq 24-128(%r13),%rdx // future %r12
493
+ addq %rax,%r11
494
+ leaq (%r9,%r10,1),%rax
495
+ vpaddq %ymm14,%ymm5,%ymm4
496
+ vpmuludq %ymm0,%ymm11,%ymm11
497
+ vmovdqu 256-24-128(%r13),%ymm14
498
+ movq %rax,%r10
499
+ imull %ecx,%eax
500
+ vpmuludq %ymm0,%ymm10,%ymm10
501
+ vpaddq %ymm11,%ymm6,%ymm5
502
+ vmovdqu 288-24-128(%r13),%ymm11
503
+ andl $0x1fffffff,%eax
504
+ vpaddq %ymm10,%ymm7,%ymm6
505
+ vpmuludq %ymm0,%ymm14,%ymm14
506
+ addq 24(%rsp),%rdx
507
+ vpaddq %ymm14,%ymm8,%ymm7
508
+ vpmuludq %ymm0,%ymm11,%ymm11
509
+ vpaddq %ymm11,%ymm9,%ymm8
510
+ vmovq %r12,%xmm9
511
+ movq %rdx,%r12
512
+
513
+ decl %r14d
514
+ jnz L$OOP_REDUCE_1024
515
+ leaq 448(%rsp),%r12 // size optimization
516
+ vpaddq %ymm9,%ymm13,%ymm0
517
+ vpxor %ymm9,%ymm9,%ymm9
518
+
519
+ vpaddq 288-192(%rbx),%ymm0,%ymm0
520
+ vpaddq 320-448(%r12),%ymm1,%ymm1
521
+ vpaddq 352-448(%r12),%ymm2,%ymm2
522
+ vpaddq 384-448(%r12),%ymm3,%ymm3
523
+ vpaddq 416-448(%r12),%ymm4,%ymm4
524
+ vpaddq 448-448(%r12),%ymm5,%ymm5
525
+ vpaddq 480-448(%r12),%ymm6,%ymm6
526
+ vpaddq 512-448(%r12),%ymm7,%ymm7
527
+ vpaddq 544-448(%r12),%ymm8,%ymm8
528
+
529
+ vpsrlq $29,%ymm0,%ymm14
530
+ vpand %ymm15,%ymm0,%ymm0
531
+ vpsrlq $29,%ymm1,%ymm11
532
+ vpand %ymm15,%ymm1,%ymm1
533
+ vpsrlq $29,%ymm2,%ymm12
534
+ vpermq $0x93,%ymm14,%ymm14
535
+ vpand %ymm15,%ymm2,%ymm2
536
+ vpsrlq $29,%ymm3,%ymm13
537
+ vpermq $0x93,%ymm11,%ymm11
538
+ vpand %ymm15,%ymm3,%ymm3
539
+ vpermq $0x93,%ymm12,%ymm12
540
+
541
+ vpblendd $3,%ymm9,%ymm14,%ymm10
542
+ vpermq $0x93,%ymm13,%ymm13
543
+ vpblendd $3,%ymm14,%ymm11,%ymm14
544
+ vpaddq %ymm10,%ymm0,%ymm0
545
+ vpblendd $3,%ymm11,%ymm12,%ymm11
546
+ vpaddq %ymm14,%ymm1,%ymm1
547
+ vpblendd $3,%ymm12,%ymm13,%ymm12
548
+ vpaddq %ymm11,%ymm2,%ymm2
549
+ vpblendd $3,%ymm13,%ymm9,%ymm13
550
+ vpaddq %ymm12,%ymm3,%ymm3
551
+ vpaddq %ymm13,%ymm4,%ymm4
552
+
553
+ vpsrlq $29,%ymm0,%ymm14
554
+ vpand %ymm15,%ymm0,%ymm0
555
+ vpsrlq $29,%ymm1,%ymm11
556
+ vpand %ymm15,%ymm1,%ymm1
557
+ vpsrlq $29,%ymm2,%ymm12
558
+ vpermq $0x93,%ymm14,%ymm14
559
+ vpand %ymm15,%ymm2,%ymm2
560
+ vpsrlq $29,%ymm3,%ymm13
561
+ vpermq $0x93,%ymm11,%ymm11
562
+ vpand %ymm15,%ymm3,%ymm3
563
+ vpermq $0x93,%ymm12,%ymm12
564
+
565
+ vpblendd $3,%ymm9,%ymm14,%ymm10
566
+ vpermq $0x93,%ymm13,%ymm13
567
+ vpblendd $3,%ymm14,%ymm11,%ymm14
568
+ vpaddq %ymm10,%ymm0,%ymm0
569
+ vpblendd $3,%ymm11,%ymm12,%ymm11
570
+ vpaddq %ymm14,%ymm1,%ymm1
571
+ vmovdqu %ymm0,0-128(%rdi)
572
+ vpblendd $3,%ymm12,%ymm13,%ymm12
573
+ vpaddq %ymm11,%ymm2,%ymm2
574
+ vmovdqu %ymm1,32-128(%rdi)
575
+ vpblendd $3,%ymm13,%ymm9,%ymm13
576
+ vpaddq %ymm12,%ymm3,%ymm3
577
+ vmovdqu %ymm2,64-128(%rdi)
578
+ vpaddq %ymm13,%ymm4,%ymm4
579
+ vmovdqu %ymm3,96-128(%rdi)
580
+ vpsrlq $29,%ymm4,%ymm14
581
+ vpand %ymm15,%ymm4,%ymm4
582
+ vpsrlq $29,%ymm5,%ymm11
583
+ vpand %ymm15,%ymm5,%ymm5
584
+ vpsrlq $29,%ymm6,%ymm12
585
+ vpermq $0x93,%ymm14,%ymm14
586
+ vpand %ymm15,%ymm6,%ymm6
587
+ vpsrlq $29,%ymm7,%ymm13
588
+ vpermq $0x93,%ymm11,%ymm11
589
+ vpand %ymm15,%ymm7,%ymm7
590
+ vpsrlq $29,%ymm8,%ymm0
591
+ vpermq $0x93,%ymm12,%ymm12
592
+ vpand %ymm15,%ymm8,%ymm8
593
+ vpermq $0x93,%ymm13,%ymm13
594
+
595
+ vpblendd $3,%ymm9,%ymm14,%ymm10
596
+ vpermq $0x93,%ymm0,%ymm0
597
+ vpblendd $3,%ymm14,%ymm11,%ymm14
598
+ vpaddq %ymm10,%ymm4,%ymm4
599
+ vpblendd $3,%ymm11,%ymm12,%ymm11
600
+ vpaddq %ymm14,%ymm5,%ymm5
601
+ vpblendd $3,%ymm12,%ymm13,%ymm12
602
+ vpaddq %ymm11,%ymm6,%ymm6
603
+ vpblendd $3,%ymm13,%ymm0,%ymm13
604
+ vpaddq %ymm12,%ymm7,%ymm7
605
+ vpaddq %ymm13,%ymm8,%ymm8
606
+
607
+ vpsrlq $29,%ymm4,%ymm14
608
+ vpand %ymm15,%ymm4,%ymm4
609
+ vpsrlq $29,%ymm5,%ymm11
610
+ vpand %ymm15,%ymm5,%ymm5
611
+ vpsrlq $29,%ymm6,%ymm12
612
+ vpermq $0x93,%ymm14,%ymm14
613
+ vpand %ymm15,%ymm6,%ymm6
614
+ vpsrlq $29,%ymm7,%ymm13
615
+ vpermq $0x93,%ymm11,%ymm11
616
+ vpand %ymm15,%ymm7,%ymm7
617
+ vpsrlq $29,%ymm8,%ymm0
618
+ vpermq $0x93,%ymm12,%ymm12
619
+ vpand %ymm15,%ymm8,%ymm8
620
+ vpermq $0x93,%ymm13,%ymm13
621
+
622
+ vpblendd $3,%ymm9,%ymm14,%ymm10
623
+ vpermq $0x93,%ymm0,%ymm0
624
+ vpblendd $3,%ymm14,%ymm11,%ymm14
625
+ vpaddq %ymm10,%ymm4,%ymm4
626
+ vpblendd $3,%ymm11,%ymm12,%ymm11
627
+ vpaddq %ymm14,%ymm5,%ymm5
628
+ vmovdqu %ymm4,128-128(%rdi)
629
+ vpblendd $3,%ymm12,%ymm13,%ymm12
630
+ vpaddq %ymm11,%ymm6,%ymm6
631
+ vmovdqu %ymm5,160-128(%rdi)
632
+ vpblendd $3,%ymm13,%ymm0,%ymm13
633
+ vpaddq %ymm12,%ymm7,%ymm7
634
+ vmovdqu %ymm6,192-128(%rdi)
635
+ vpaddq %ymm13,%ymm8,%ymm8
636
+ vmovdqu %ymm7,224-128(%rdi)
637
+ vmovdqu %ymm8,256-128(%rdi)
638
+
639
+ movq %rdi,%rsi
640
+ decl %r8d
641
+ jne L$OOP_GRANDE_SQR_1024
642
+
643
+ vzeroall
644
+ movq %rbp,%rax
645
+
646
+ movq -48(%rax),%r15
647
+
648
+ movq -40(%rax),%r14
649
+
650
+ movq -32(%rax),%r13
651
+
652
+ movq -24(%rax),%r12
653
+
654
+ movq -16(%rax),%rbp
655
+
656
+ movq -8(%rax),%rbx
657
+
658
+ leaq (%rax),%rsp // restore %rsp
659
+
660
+ L$sqr_1024_epilogue:
661
+ ret
662
+
663
+
664
+ .globl _rsaz_1024_mul_avx2
665
+ .private_extern _rsaz_1024_mul_avx2
666
+
667
+ .p2align 6
668
+ .alt_entry _rsaz_1024_mul_avx2
669
+ _rsaz_1024_mul_avx2:
670
+
671
+ _CET_ENDBR
672
+ leaq (%rsp),%rax
673
+
674
+ pushq %rbx
675
+
676
+ pushq %rbp
677
+
678
+ pushq %r12
679
+
680
+ pushq %r13
681
+
682
+ pushq %r14
683
+
684
+ pushq %r15
685
+
686
+ movq %rax,%rbp
687
+
688
+ vzeroall
689
+ movq %rdx,%r13 // reassigned argument
690
+ subq $64,%rsp
691
+
692
+ // unaligned 256-bit load that crosses page boundary can
693
+ // cause severe performance degradation here, so if %rsi does
694
+ // cross page boundary, swap it with %r13 [meaning that caller
695
+ // is advised to lay down %rsi and %r13 next to each other, so
696
+ // that only one can cross page boundary].
697
+ .byte 0x67,0x67
698
+ movq %rsi,%r15
699
+ andq $4095,%r15
700
+ addq $320,%r15
701
+ shrq $12,%r15
702
+ movq %rsi,%r15
703
+ cmovnzq %r13,%rsi
704
+ cmovnzq %r15,%r13
705
+
706
+ movq %rcx,%r15
707
+ subq $-128,%rsi // size optimization
708
+ subq $-128,%rcx
709
+ subq $-128,%rdi
710
+
711
+ andq $4095,%r15 // see if %rcx crosses page
712
+ addq $320,%r15
713
+ .byte 0x67,0x67
714
+ shrq $12,%r15
715
+ jz L$mul_1024_no_n_copy
716
+
717
+ // unaligned 256-bit load that crosses page boundary can
718
+ // cause severe performance degradation here, so if %rcx does
719
+ // cross page boundary, copy it to stack and make sure stack
720
+ // frame doesn't...
721
+ subq $320,%rsp
722
+ vmovdqu 0-128(%rcx),%ymm0
723
+ andq $-512,%rsp
724
+ vmovdqu 32-128(%rcx),%ymm1
725
+ vmovdqu 64-128(%rcx),%ymm2
726
+ vmovdqu 96-128(%rcx),%ymm3
727
+ vmovdqu 128-128(%rcx),%ymm4
728
+ vmovdqu 160-128(%rcx),%ymm5
729
+ vmovdqu 192-128(%rcx),%ymm6
730
+ vmovdqu 224-128(%rcx),%ymm7
731
+ vmovdqu 256-128(%rcx),%ymm8
732
+ leaq 64+128(%rsp),%rcx
733
+ vmovdqu %ymm0,0-128(%rcx)
734
+ vpxor %ymm0,%ymm0,%ymm0
735
+ vmovdqu %ymm1,32-128(%rcx)
736
+ vpxor %ymm1,%ymm1,%ymm1
737
+ vmovdqu %ymm2,64-128(%rcx)
738
+ vpxor %ymm2,%ymm2,%ymm2
739
+ vmovdqu %ymm3,96-128(%rcx)
740
+ vpxor %ymm3,%ymm3,%ymm3
741
+ vmovdqu %ymm4,128-128(%rcx)
742
+ vpxor %ymm4,%ymm4,%ymm4
743
+ vmovdqu %ymm5,160-128(%rcx)
744
+ vpxor %ymm5,%ymm5,%ymm5
745
+ vmovdqu %ymm6,192-128(%rcx)
746
+ vpxor %ymm6,%ymm6,%ymm6
747
+ vmovdqu %ymm7,224-128(%rcx)
748
+ vpxor %ymm7,%ymm7,%ymm7
749
+ vmovdqu %ymm8,256-128(%rcx)
750
+ vmovdqa %ymm0,%ymm8
751
+ vmovdqu %ymm9,288-128(%rcx) // %ymm9 is zero after vzeroall
752
+ L$mul_1024_no_n_copy:
753
+ andq $-64,%rsp
754
+
755
+ movq (%r13),%rbx
756
+ vpbroadcastq (%r13),%ymm10
757
+ vmovdqu %ymm0,(%rsp) // clear top of stack
758
+ xorq %r9,%r9
759
+ .byte 0x67
760
+ xorq %r10,%r10
761
+ xorq %r11,%r11
762
+ xorq %r12,%r12
763
+
764
+ vmovdqu L$and_mask(%rip),%ymm15
765
+ movl $9,%r14d
766
+ vmovdqu %ymm9,288-128(%rdi) // %ymm9 is zero after vzeroall
767
+ jmp L$oop_mul_1024
768
+
769
+ .p2align 5
770
+ L$oop_mul_1024:
771
+ vpsrlq $29,%ymm3,%ymm9 // correct %ymm3(*)
772
+ movq %rbx,%rax
773
+ imulq -128(%rsi),%rax
774
+ addq %r9,%rax
775
+ movq %rbx,%r10
776
+ imulq 8-128(%rsi),%r10
777
+ addq 8(%rsp),%r10
778
+
779
+ movq %rax,%r9
780
+ imull %r8d,%eax
781
+ andl $0x1fffffff,%eax
782
+
783
+ movq %rbx,%r11
784
+ imulq 16-128(%rsi),%r11
785
+ addq 16(%rsp),%r11
786
+
787
+ movq %rbx,%r12
788
+ imulq 24-128(%rsi),%r12
789
+ addq 24(%rsp),%r12
790
+ vpmuludq 32-128(%rsi),%ymm10,%ymm0
791
+ vmovd %eax,%xmm11
792
+ vpaddq %ymm0,%ymm1,%ymm1
793
+ vpmuludq 64-128(%rsi),%ymm10,%ymm12
794
+ vpbroadcastq %xmm11,%ymm11
795
+ vpaddq %ymm12,%ymm2,%ymm2
796
+ vpmuludq 96-128(%rsi),%ymm10,%ymm13
797
+ vpand %ymm15,%ymm3,%ymm3 // correct %ymm3
798
+ vpaddq %ymm13,%ymm3,%ymm3
799
+ vpmuludq 128-128(%rsi),%ymm10,%ymm0
800
+ vpaddq %ymm0,%ymm4,%ymm4
801
+ vpmuludq 160-128(%rsi),%ymm10,%ymm12
802
+ vpaddq %ymm12,%ymm5,%ymm5
803
+ vpmuludq 192-128(%rsi),%ymm10,%ymm13
804
+ vpaddq %ymm13,%ymm6,%ymm6
805
+ vpmuludq 224-128(%rsi),%ymm10,%ymm0
806
+ vpermq $0x93,%ymm9,%ymm9 // correct %ymm3
807
+ vpaddq %ymm0,%ymm7,%ymm7
808
+ vpmuludq 256-128(%rsi),%ymm10,%ymm12
809
+ vpbroadcastq 8(%r13),%ymm10
810
+ vpaddq %ymm12,%ymm8,%ymm8
811
+
812
+ movq %rax,%rdx
813
+ imulq -128(%rcx),%rax
814
+ addq %rax,%r9
815
+ movq %rdx,%rax
816
+ imulq 8-128(%rcx),%rax
817
+ addq %rax,%r10
818
+ movq %rdx,%rax
819
+ imulq 16-128(%rcx),%rax
820
+ addq %rax,%r11
821
+ shrq $29,%r9
822
+ imulq 24-128(%rcx),%rdx
823
+ addq %rdx,%r12
824
+ addq %r9,%r10
825
+
826
+ vpmuludq 32-128(%rcx),%ymm11,%ymm13
827
+ vmovq %xmm10,%rbx
828
+ vpaddq %ymm13,%ymm1,%ymm1
829
+ vpmuludq 64-128(%rcx),%ymm11,%ymm0
830
+ vpaddq %ymm0,%ymm2,%ymm2
831
+ vpmuludq 96-128(%rcx),%ymm11,%ymm12
832
+ vpaddq %ymm12,%ymm3,%ymm3
833
+ vpmuludq 128-128(%rcx),%ymm11,%ymm13
834
+ vpaddq %ymm13,%ymm4,%ymm4
835
+ vpmuludq 160-128(%rcx),%ymm11,%ymm0
836
+ vpaddq %ymm0,%ymm5,%ymm5
837
+ vpmuludq 192-128(%rcx),%ymm11,%ymm12
838
+ vpaddq %ymm12,%ymm6,%ymm6
839
+ vpmuludq 224-128(%rcx),%ymm11,%ymm13
840
+ vpblendd $3,%ymm14,%ymm9,%ymm12 // correct %ymm3
841
+ vpaddq %ymm13,%ymm7,%ymm7
842
+ vpmuludq 256-128(%rcx),%ymm11,%ymm0
843
+ vpaddq %ymm12,%ymm3,%ymm3 // correct %ymm3
844
+ vpaddq %ymm0,%ymm8,%ymm8
845
+
846
+ movq %rbx,%rax
847
+ imulq -128(%rsi),%rax
848
+ addq %rax,%r10
849
+ vmovdqu -8+32-128(%rsi),%ymm12
850
+ movq %rbx,%rax
851
+ imulq 8-128(%rsi),%rax
852
+ addq %rax,%r11
853
+ vmovdqu -8+64-128(%rsi),%ymm13
854
+
855
+ movq %r10,%rax
856
+ vpblendd $0xfc,%ymm14,%ymm9,%ymm9 // correct %ymm3
857
+ imull %r8d,%eax
858
+ vpaddq %ymm9,%ymm4,%ymm4 // correct %ymm3
859
+ andl $0x1fffffff,%eax
860
+
861
+ imulq 16-128(%rsi),%rbx
862
+ addq %rbx,%r12
863
+ vpmuludq %ymm10,%ymm12,%ymm12
864
+ vmovd %eax,%xmm11
865
+ vmovdqu -8+96-128(%rsi),%ymm0
866
+ vpaddq %ymm12,%ymm1,%ymm1
867
+ vpmuludq %ymm10,%ymm13,%ymm13
868
+ vpbroadcastq %xmm11,%ymm11
869
+ vmovdqu -8+128-128(%rsi),%ymm12
870
+ vpaddq %ymm13,%ymm2,%ymm2
871
+ vpmuludq %ymm10,%ymm0,%ymm0
872
+ vmovdqu -8+160-128(%rsi),%ymm13
873
+ vpaddq %ymm0,%ymm3,%ymm3
874
+ vpmuludq %ymm10,%ymm12,%ymm12
875
+ vmovdqu -8+192-128(%rsi),%ymm0
876
+ vpaddq %ymm12,%ymm4,%ymm4
877
+ vpmuludq %ymm10,%ymm13,%ymm13
878
+ vmovdqu -8+224-128(%rsi),%ymm12
879
+ vpaddq %ymm13,%ymm5,%ymm5
880
+ vpmuludq %ymm10,%ymm0,%ymm0
881
+ vmovdqu -8+256-128(%rsi),%ymm13
882
+ vpaddq %ymm0,%ymm6,%ymm6
883
+ vpmuludq %ymm10,%ymm12,%ymm12
884
+ vmovdqu -8+288-128(%rsi),%ymm9
885
+ vpaddq %ymm12,%ymm7,%ymm7
886
+ vpmuludq %ymm10,%ymm13,%ymm13
887
+ vpaddq %ymm13,%ymm8,%ymm8
888
+ vpmuludq %ymm10,%ymm9,%ymm9
889
+ vpbroadcastq 16(%r13),%ymm10
890
+
891
+ movq %rax,%rdx
892
+ imulq -128(%rcx),%rax
893
+ addq %rax,%r10
894
+ vmovdqu -8+32-128(%rcx),%ymm0
895
+ movq %rdx,%rax
896
+ imulq 8-128(%rcx),%rax
897
+ addq %rax,%r11
898
+ vmovdqu -8+64-128(%rcx),%ymm12
899
+ shrq $29,%r10
900
+ imulq 16-128(%rcx),%rdx
901
+ addq %rdx,%r12
902
+ addq %r10,%r11
903
+
904
+ vpmuludq %ymm11,%ymm0,%ymm0
905
+ vmovq %xmm10,%rbx
906
+ vmovdqu -8+96-128(%rcx),%ymm13
907
+ vpaddq %ymm0,%ymm1,%ymm1
908
+ vpmuludq %ymm11,%ymm12,%ymm12
909
+ vmovdqu -8+128-128(%rcx),%ymm0
910
+ vpaddq %ymm12,%ymm2,%ymm2
911
+ vpmuludq %ymm11,%ymm13,%ymm13
912
+ vmovdqu -8+160-128(%rcx),%ymm12
913
+ vpaddq %ymm13,%ymm3,%ymm3
914
+ vpmuludq %ymm11,%ymm0,%ymm0
915
+ vmovdqu -8+192-128(%rcx),%ymm13
916
+ vpaddq %ymm0,%ymm4,%ymm4
917
+ vpmuludq %ymm11,%ymm12,%ymm12
918
+ vmovdqu -8+224-128(%rcx),%ymm0
919
+ vpaddq %ymm12,%ymm5,%ymm5
920
+ vpmuludq %ymm11,%ymm13,%ymm13
921
+ vmovdqu -8+256-128(%rcx),%ymm12
922
+ vpaddq %ymm13,%ymm6,%ymm6
923
+ vpmuludq %ymm11,%ymm0,%ymm0
924
+ vmovdqu -8+288-128(%rcx),%ymm13
925
+ vpaddq %ymm0,%ymm7,%ymm7
926
+ vpmuludq %ymm11,%ymm12,%ymm12
927
+ vpaddq %ymm12,%ymm8,%ymm8
928
+ vpmuludq %ymm11,%ymm13,%ymm13
929
+ vpaddq %ymm13,%ymm9,%ymm9
930
+
931
+ vmovdqu -16+32-128(%rsi),%ymm0
932
+ movq %rbx,%rax
933
+ imulq -128(%rsi),%rax
934
+ addq %r11,%rax
935
+
936
+ vmovdqu -16+64-128(%rsi),%ymm12
937
+ movq %rax,%r11
938
+ imull %r8d,%eax
939
+ andl $0x1fffffff,%eax
940
+
941
+ imulq 8-128(%rsi),%rbx
942
+ addq %rbx,%r12
943
+ vpmuludq %ymm10,%ymm0,%ymm0
944
+ vmovd %eax,%xmm11
945
+ vmovdqu -16+96-128(%rsi),%ymm13
946
+ vpaddq %ymm0,%ymm1,%ymm1
947
+ vpmuludq %ymm10,%ymm12,%ymm12
948
+ vpbroadcastq %xmm11,%ymm11
949
+ vmovdqu -16+128-128(%rsi),%ymm0
950
+ vpaddq %ymm12,%ymm2,%ymm2
951
+ vpmuludq %ymm10,%ymm13,%ymm13
952
+ vmovdqu -16+160-128(%rsi),%ymm12
953
+ vpaddq %ymm13,%ymm3,%ymm3
954
+ vpmuludq %ymm10,%ymm0,%ymm0
955
+ vmovdqu -16+192-128(%rsi),%ymm13
956
+ vpaddq %ymm0,%ymm4,%ymm4
957
+ vpmuludq %ymm10,%ymm12,%ymm12
958
+ vmovdqu -16+224-128(%rsi),%ymm0
959
+ vpaddq %ymm12,%ymm5,%ymm5
960
+ vpmuludq %ymm10,%ymm13,%ymm13
961
+ vmovdqu -16+256-128(%rsi),%ymm12
962
+ vpaddq %ymm13,%ymm6,%ymm6
963
+ vpmuludq %ymm10,%ymm0,%ymm0
964
+ vmovdqu -16+288-128(%rsi),%ymm13
965
+ vpaddq %ymm0,%ymm7,%ymm7
966
+ vpmuludq %ymm10,%ymm12,%ymm12
967
+ vpaddq %ymm12,%ymm8,%ymm8
968
+ vpmuludq %ymm10,%ymm13,%ymm13
969
+ vpbroadcastq 24(%r13),%ymm10
970
+ vpaddq %ymm13,%ymm9,%ymm9
971
+
972
+ vmovdqu -16+32-128(%rcx),%ymm0
973
+ movq %rax,%rdx
974
+ imulq -128(%rcx),%rax
975
+ addq %rax,%r11
976
+ vmovdqu -16+64-128(%rcx),%ymm12
977
+ imulq 8-128(%rcx),%rdx
978
+ addq %rdx,%r12
979
+ shrq $29,%r11
980
+
981
+ vpmuludq %ymm11,%ymm0,%ymm0
982
+ vmovq %xmm10,%rbx
983
+ vmovdqu -16+96-128(%rcx),%ymm13
984
+ vpaddq %ymm0,%ymm1,%ymm1
985
+ vpmuludq %ymm11,%ymm12,%ymm12
986
+ vmovdqu -16+128-128(%rcx),%ymm0
987
+ vpaddq %ymm12,%ymm2,%ymm2
988
+ vpmuludq %ymm11,%ymm13,%ymm13
989
+ vmovdqu -16+160-128(%rcx),%ymm12
990
+ vpaddq %ymm13,%ymm3,%ymm3
991
+ vpmuludq %ymm11,%ymm0,%ymm0
992
+ vmovdqu -16+192-128(%rcx),%ymm13
993
+ vpaddq %ymm0,%ymm4,%ymm4
994
+ vpmuludq %ymm11,%ymm12,%ymm12
995
+ vmovdqu -16+224-128(%rcx),%ymm0
996
+ vpaddq %ymm12,%ymm5,%ymm5
997
+ vpmuludq %ymm11,%ymm13,%ymm13
998
+ vmovdqu -16+256-128(%rcx),%ymm12
999
+ vpaddq %ymm13,%ymm6,%ymm6
1000
+ vpmuludq %ymm11,%ymm0,%ymm0
1001
+ vmovdqu -16+288-128(%rcx),%ymm13
1002
+ vpaddq %ymm0,%ymm7,%ymm7
1003
+ vpmuludq %ymm11,%ymm12,%ymm12
1004
+ vmovdqu -24+32-128(%rsi),%ymm0
1005
+ vpaddq %ymm12,%ymm8,%ymm8
1006
+ vpmuludq %ymm11,%ymm13,%ymm13
1007
+ vmovdqu -24+64-128(%rsi),%ymm12
1008
+ vpaddq %ymm13,%ymm9,%ymm9
1009
+
1010
+ addq %r11,%r12
1011
+ imulq -128(%rsi),%rbx
1012
+ addq %rbx,%r12
1013
+
1014
+ movq %r12,%rax
1015
+ imull %r8d,%eax
1016
+ andl $0x1fffffff,%eax
1017
+
1018
+ vpmuludq %ymm10,%ymm0,%ymm0
1019
+ vmovd %eax,%xmm11
1020
+ vmovdqu -24+96-128(%rsi),%ymm13
1021
+ vpaddq %ymm0,%ymm1,%ymm1
1022
+ vpmuludq %ymm10,%ymm12,%ymm12
1023
+ vpbroadcastq %xmm11,%ymm11
1024
+ vmovdqu -24+128-128(%rsi),%ymm0
1025
+ vpaddq %ymm12,%ymm2,%ymm2
1026
+ vpmuludq %ymm10,%ymm13,%ymm13
1027
+ vmovdqu -24+160-128(%rsi),%ymm12
1028
+ vpaddq %ymm13,%ymm3,%ymm3
1029
+ vpmuludq %ymm10,%ymm0,%ymm0
1030
+ vmovdqu -24+192-128(%rsi),%ymm13
1031
+ vpaddq %ymm0,%ymm4,%ymm4
1032
+ vpmuludq %ymm10,%ymm12,%ymm12
1033
+ vmovdqu -24+224-128(%rsi),%ymm0
1034
+ vpaddq %ymm12,%ymm5,%ymm5
1035
+ vpmuludq %ymm10,%ymm13,%ymm13
1036
+ vmovdqu -24+256-128(%rsi),%ymm12
1037
+ vpaddq %ymm13,%ymm6,%ymm6
1038
+ vpmuludq %ymm10,%ymm0,%ymm0
1039
+ vmovdqu -24+288-128(%rsi),%ymm13
1040
+ vpaddq %ymm0,%ymm7,%ymm7
1041
+ vpmuludq %ymm10,%ymm12,%ymm12
1042
+ vpaddq %ymm12,%ymm8,%ymm8
1043
+ vpmuludq %ymm10,%ymm13,%ymm13
1044
+ vpbroadcastq 32(%r13),%ymm10
1045
+ vpaddq %ymm13,%ymm9,%ymm9
1046
+ addq $32,%r13 // %r13++
1047
+
1048
+ vmovdqu -24+32-128(%rcx),%ymm0
1049
+ imulq -128(%rcx),%rax
1050
+ addq %rax,%r12
1051
+ shrq $29,%r12
1052
+
1053
+ vmovdqu -24+64-128(%rcx),%ymm12
1054
+ vpmuludq %ymm11,%ymm0,%ymm0
1055
+ vmovq %xmm10,%rbx
1056
+ vmovdqu -24+96-128(%rcx),%ymm13
1057
+ vpaddq %ymm0,%ymm1,%ymm0 // %ymm0==%ymm0
1058
+ vpmuludq %ymm11,%ymm12,%ymm12
1059
+ vmovdqu %ymm0,(%rsp) // transfer %r9-%r12
1060
+ vpaddq %ymm12,%ymm2,%ymm1
1061
+ vmovdqu -24+128-128(%rcx),%ymm0
1062
+ vpmuludq %ymm11,%ymm13,%ymm13
1063
+ vmovdqu -24+160-128(%rcx),%ymm12
1064
+ vpaddq %ymm13,%ymm3,%ymm2
1065
+ vpmuludq %ymm11,%ymm0,%ymm0
1066
+ vmovdqu -24+192-128(%rcx),%ymm13
1067
+ vpaddq %ymm0,%ymm4,%ymm3
1068
+ vpmuludq %ymm11,%ymm12,%ymm12
1069
+ vmovdqu -24+224-128(%rcx),%ymm0
1070
+ vpaddq %ymm12,%ymm5,%ymm4
1071
+ vpmuludq %ymm11,%ymm13,%ymm13
1072
+ vmovdqu -24+256-128(%rcx),%ymm12
1073
+ vpaddq %ymm13,%ymm6,%ymm5
1074
+ vpmuludq %ymm11,%ymm0,%ymm0
1075
+ vmovdqu -24+288-128(%rcx),%ymm13
1076
+ movq %r12,%r9
1077
+ vpaddq %ymm0,%ymm7,%ymm6
1078
+ vpmuludq %ymm11,%ymm12,%ymm12
1079
+ addq (%rsp),%r9
1080
+ vpaddq %ymm12,%ymm8,%ymm7
1081
+ vpmuludq %ymm11,%ymm13,%ymm13
1082
+ vmovq %r12,%xmm12
1083
+ vpaddq %ymm13,%ymm9,%ymm8
1084
+
1085
+ decl %r14d
1086
+ jnz L$oop_mul_1024
1087
+ vpaddq (%rsp),%ymm12,%ymm0
1088
+
1089
+ vpsrlq $29,%ymm0,%ymm12
1090
+ vpand %ymm15,%ymm0,%ymm0
1091
+ vpsrlq $29,%ymm1,%ymm13
1092
+ vpand %ymm15,%ymm1,%ymm1
1093
+ vpsrlq $29,%ymm2,%ymm10
1094
+ vpermq $0x93,%ymm12,%ymm12
1095
+ vpand %ymm15,%ymm2,%ymm2
1096
+ vpsrlq $29,%ymm3,%ymm11
1097
+ vpermq $0x93,%ymm13,%ymm13
1098
+ vpand %ymm15,%ymm3,%ymm3
1099
+
1100
+ vpblendd $3,%ymm14,%ymm12,%ymm9
1101
+ vpermq $0x93,%ymm10,%ymm10
1102
+ vpblendd $3,%ymm12,%ymm13,%ymm12
1103
+ vpermq $0x93,%ymm11,%ymm11
1104
+ vpaddq %ymm9,%ymm0,%ymm0
1105
+ vpblendd $3,%ymm13,%ymm10,%ymm13
1106
+ vpaddq %ymm12,%ymm1,%ymm1
1107
+ vpblendd $3,%ymm10,%ymm11,%ymm10
1108
+ vpaddq %ymm13,%ymm2,%ymm2
1109
+ vpblendd $3,%ymm11,%ymm14,%ymm11
1110
+ vpaddq %ymm10,%ymm3,%ymm3
1111
+ vpaddq %ymm11,%ymm4,%ymm4
1112
+
1113
+ vpsrlq $29,%ymm0,%ymm12
1114
+ vpand %ymm15,%ymm0,%ymm0
1115
+ vpsrlq $29,%ymm1,%ymm13
1116
+ vpand %ymm15,%ymm1,%ymm1
1117
+ vpsrlq $29,%ymm2,%ymm10
1118
+ vpermq $0x93,%ymm12,%ymm12
1119
+ vpand %ymm15,%ymm2,%ymm2
1120
+ vpsrlq $29,%ymm3,%ymm11
1121
+ vpermq $0x93,%ymm13,%ymm13
1122
+ vpand %ymm15,%ymm3,%ymm3
1123
+ vpermq $0x93,%ymm10,%ymm10
1124
+
1125
+ vpblendd $3,%ymm14,%ymm12,%ymm9
1126
+ vpermq $0x93,%ymm11,%ymm11
1127
+ vpblendd $3,%ymm12,%ymm13,%ymm12
1128
+ vpaddq %ymm9,%ymm0,%ymm0
1129
+ vpblendd $3,%ymm13,%ymm10,%ymm13
1130
+ vpaddq %ymm12,%ymm1,%ymm1
1131
+ vpblendd $3,%ymm10,%ymm11,%ymm10
1132
+ vpaddq %ymm13,%ymm2,%ymm2
1133
+ vpblendd $3,%ymm11,%ymm14,%ymm11
1134
+ vpaddq %ymm10,%ymm3,%ymm3
1135
+ vpaddq %ymm11,%ymm4,%ymm4
1136
+
1137
+ vmovdqu %ymm0,0-128(%rdi)
1138
+ vmovdqu %ymm1,32-128(%rdi)
1139
+ vmovdqu %ymm2,64-128(%rdi)
1140
+ vmovdqu %ymm3,96-128(%rdi)
1141
+ vpsrlq $29,%ymm4,%ymm12
1142
+ vpand %ymm15,%ymm4,%ymm4
1143
+ vpsrlq $29,%ymm5,%ymm13
1144
+ vpand %ymm15,%ymm5,%ymm5
1145
+ vpsrlq $29,%ymm6,%ymm10
1146
+ vpermq $0x93,%ymm12,%ymm12
1147
+ vpand %ymm15,%ymm6,%ymm6
1148
+ vpsrlq $29,%ymm7,%ymm11
1149
+ vpermq $0x93,%ymm13,%ymm13
1150
+ vpand %ymm15,%ymm7,%ymm7
1151
+ vpsrlq $29,%ymm8,%ymm0
1152
+ vpermq $0x93,%ymm10,%ymm10
1153
+ vpand %ymm15,%ymm8,%ymm8
1154
+ vpermq $0x93,%ymm11,%ymm11
1155
+
1156
+ vpblendd $3,%ymm14,%ymm12,%ymm9
1157
+ vpermq $0x93,%ymm0,%ymm0
1158
+ vpblendd $3,%ymm12,%ymm13,%ymm12
1159
+ vpaddq %ymm9,%ymm4,%ymm4
1160
+ vpblendd $3,%ymm13,%ymm10,%ymm13
1161
+ vpaddq %ymm12,%ymm5,%ymm5
1162
+ vpblendd $3,%ymm10,%ymm11,%ymm10
1163
+ vpaddq %ymm13,%ymm6,%ymm6
1164
+ vpblendd $3,%ymm11,%ymm0,%ymm11
1165
+ vpaddq %ymm10,%ymm7,%ymm7
1166
+ vpaddq %ymm11,%ymm8,%ymm8
1167
+
1168
+ vpsrlq $29,%ymm4,%ymm12
1169
+ vpand %ymm15,%ymm4,%ymm4
1170
+ vpsrlq $29,%ymm5,%ymm13
1171
+ vpand %ymm15,%ymm5,%ymm5
1172
+ vpsrlq $29,%ymm6,%ymm10
1173
+ vpermq $0x93,%ymm12,%ymm12
1174
+ vpand %ymm15,%ymm6,%ymm6
1175
+ vpsrlq $29,%ymm7,%ymm11
1176
+ vpermq $0x93,%ymm13,%ymm13
1177
+ vpand %ymm15,%ymm7,%ymm7
1178
+ vpsrlq $29,%ymm8,%ymm0
1179
+ vpermq $0x93,%ymm10,%ymm10
1180
+ vpand %ymm15,%ymm8,%ymm8
1181
+ vpermq $0x93,%ymm11,%ymm11
1182
+
1183
+ vpblendd $3,%ymm14,%ymm12,%ymm9
1184
+ vpermq $0x93,%ymm0,%ymm0
1185
+ vpblendd $3,%ymm12,%ymm13,%ymm12
1186
+ vpaddq %ymm9,%ymm4,%ymm4
1187
+ vpblendd $3,%ymm13,%ymm10,%ymm13
1188
+ vpaddq %ymm12,%ymm5,%ymm5
1189
+ vpblendd $3,%ymm10,%ymm11,%ymm10
1190
+ vpaddq %ymm13,%ymm6,%ymm6
1191
+ vpblendd $3,%ymm11,%ymm0,%ymm11
1192
+ vpaddq %ymm10,%ymm7,%ymm7
1193
+ vpaddq %ymm11,%ymm8,%ymm8
1194
+
1195
+ vmovdqu %ymm4,128-128(%rdi)
1196
+ vmovdqu %ymm5,160-128(%rdi)
1197
+ vmovdqu %ymm6,192-128(%rdi)
1198
+ vmovdqu %ymm7,224-128(%rdi)
1199
+ vmovdqu %ymm8,256-128(%rdi)
1200
+ vzeroupper
1201
+
1202
+ movq %rbp,%rax
1203
+
1204
+ movq -48(%rax),%r15
1205
+
1206
+ movq -40(%rax),%r14
1207
+
1208
+ movq -32(%rax),%r13
1209
+
1210
+ movq -24(%rax),%r12
1211
+
1212
+ movq -16(%rax),%rbp
1213
+
1214
+ movq -8(%rax),%rbx
1215
+
1216
+ leaq (%rax),%rsp // restore %rsp
1217
+
1218
+ L$mul_1024_epilogue:
1219
+ ret
1220
+
1221
+
1222
+ .globl _rsaz_1024_red2norm_avx2
1223
+ .private_extern _rsaz_1024_red2norm_avx2
1224
+
1225
+ .p2align 5
1226
+ .alt_entry _rsaz_1024_red2norm_avx2
1227
+ _rsaz_1024_red2norm_avx2:
1228
+
1229
+ _CET_ENDBR
1230
+ subq $-128,%rsi // size optimization
1231
+ xorq %rax,%rax
1232
+ movq -128(%rsi),%r8
1233
+ movq -120(%rsi),%r9
1234
+ movq -112(%rsi),%r10
1235
+ shlq $0,%r8
1236
+ shlq $29,%r9
1237
+ movq %r10,%r11
1238
+ shlq $58,%r10
1239
+ shrq $6,%r11
1240
+ addq %r8,%rax
1241
+ addq %r9,%rax
1242
+ addq %r10,%rax
1243
+ adcq $0,%r11 // consume eventual carry
1244
+ movq %rax,0(%rdi)
1245
+ movq %r11,%rax
1246
+ movq -104(%rsi),%r8
1247
+ movq -96(%rsi),%r9
1248
+ shlq $23,%r8
1249
+ movq %r9,%r10
1250
+ shlq $52,%r9
1251
+ shrq $12,%r10
1252
+ addq %r8,%rax
1253
+ addq %r9,%rax
1254
+ adcq $0,%r10 // consume eventual carry
1255
+ movq %rax,8(%rdi)
1256
+ movq %r10,%rax
1257
+ movq -88(%rsi),%r11
1258
+ movq -80(%rsi),%r8
1259
+ shlq $17,%r11
1260
+ movq %r8,%r9
1261
+ shlq $46,%r8
1262
+ shrq $18,%r9
1263
+ addq %r11,%rax
1264
+ addq %r8,%rax
1265
+ adcq $0,%r9 // consume eventual carry
1266
+ movq %rax,16(%rdi)
1267
+ movq %r9,%rax
1268
+ movq -72(%rsi),%r10
1269
+ movq -64(%rsi),%r11
1270
+ shlq $11,%r10
1271
+ movq %r11,%r8
1272
+ shlq $40,%r11
1273
+ shrq $24,%r8
1274
+ addq %r10,%rax
1275
+ addq %r11,%rax
1276
+ adcq $0,%r8 // consume eventual carry
1277
+ movq %rax,24(%rdi)
1278
+ movq %r8,%rax
1279
+ movq -56(%rsi),%r9
1280
+ movq -48(%rsi),%r10
1281
+ movq -40(%rsi),%r11
1282
+ shlq $5,%r9
1283
+ shlq $34,%r10
1284
+ movq %r11,%r8
1285
+ shlq $63,%r11
1286
+ shrq $1,%r8
1287
+ addq %r9,%rax
1288
+ addq %r10,%rax
1289
+ addq %r11,%rax
1290
+ adcq $0,%r8 // consume eventual carry
1291
+ movq %rax,32(%rdi)
1292
+ movq %r8,%rax
1293
+ movq -32(%rsi),%r9
1294
+ movq -24(%rsi),%r10
1295
+ shlq $28,%r9
1296
+ movq %r10,%r11
1297
+ shlq $57,%r10
1298
+ shrq $7,%r11
1299
+ addq %r9,%rax
1300
+ addq %r10,%rax
1301
+ adcq $0,%r11 // consume eventual carry
1302
+ movq %rax,40(%rdi)
1303
+ movq %r11,%rax
1304
+ movq -16(%rsi),%r8
1305
+ movq -8(%rsi),%r9
1306
+ shlq $22,%r8
1307
+ movq %r9,%r10
1308
+ shlq $51,%r9
1309
+ shrq $13,%r10
1310
+ addq %r8,%rax
1311
+ addq %r9,%rax
1312
+ adcq $0,%r10 // consume eventual carry
1313
+ movq %rax,48(%rdi)
1314
+ movq %r10,%rax
1315
+ movq 0(%rsi),%r11
1316
+ movq 8(%rsi),%r8
1317
+ shlq $16,%r11
1318
+ movq %r8,%r9
1319
+ shlq $45,%r8
1320
+ shrq $19,%r9
1321
+ addq %r11,%rax
1322
+ addq %r8,%rax
1323
+ adcq $0,%r9 // consume eventual carry
1324
+ movq %rax,56(%rdi)
1325
+ movq %r9,%rax
1326
+ movq 16(%rsi),%r10
1327
+ movq 24(%rsi),%r11
1328
+ shlq $10,%r10
1329
+ movq %r11,%r8
1330
+ shlq $39,%r11
1331
+ shrq $25,%r8
1332
+ addq %r10,%rax
1333
+ addq %r11,%rax
1334
+ adcq $0,%r8 // consume eventual carry
1335
+ movq %rax,64(%rdi)
1336
+ movq %r8,%rax
1337
+ movq 32(%rsi),%r9
1338
+ movq 40(%rsi),%r10
1339
+ movq 48(%rsi),%r11
1340
+ shlq $4,%r9
1341
+ shlq $33,%r10
1342
+ movq %r11,%r8
1343
+ shlq $62,%r11
1344
+ shrq $2,%r8
1345
+ addq %r9,%rax
1346
+ addq %r10,%rax
1347
+ addq %r11,%rax
1348
+ adcq $0,%r8 // consume eventual carry
1349
+ movq %rax,72(%rdi)
1350
+ movq %r8,%rax
1351
+ movq 56(%rsi),%r9
1352
+ movq 64(%rsi),%r10
1353
+ shlq $27,%r9
1354
+ movq %r10,%r11
1355
+ shlq $56,%r10
1356
+ shrq $8,%r11
1357
+ addq %r9,%rax
1358
+ addq %r10,%rax
1359
+ adcq $0,%r11 // consume eventual carry
1360
+ movq %rax,80(%rdi)
1361
+ movq %r11,%rax
1362
+ movq 72(%rsi),%r8
1363
+ movq 80(%rsi),%r9
1364
+ shlq $21,%r8
1365
+ movq %r9,%r10
1366
+ shlq $50,%r9
1367
+ shrq $14,%r10
1368
+ addq %r8,%rax
1369
+ addq %r9,%rax
1370
+ adcq $0,%r10 // consume eventual carry
1371
+ movq %rax,88(%rdi)
1372
+ movq %r10,%rax
1373
+ movq 88(%rsi),%r11
1374
+ movq 96(%rsi),%r8
1375
+ shlq $15,%r11
1376
+ movq %r8,%r9
1377
+ shlq $44,%r8
1378
+ shrq $20,%r9
1379
+ addq %r11,%rax
1380
+ addq %r8,%rax
1381
+ adcq $0,%r9 // consume eventual carry
1382
+ movq %rax,96(%rdi)
1383
+ movq %r9,%rax
1384
+ movq 104(%rsi),%r10
1385
+ movq 112(%rsi),%r11
1386
+ shlq $9,%r10
1387
+ movq %r11,%r8
1388
+ shlq $38,%r11
1389
+ shrq $26,%r8
1390
+ addq %r10,%rax
1391
+ addq %r11,%rax
1392
+ adcq $0,%r8 // consume eventual carry
1393
+ movq %rax,104(%rdi)
1394
+ movq %r8,%rax
1395
+ movq 120(%rsi),%r9
1396
+ movq 128(%rsi),%r10
1397
+ movq 136(%rsi),%r11
1398
+ shlq $3,%r9
1399
+ shlq $32,%r10
1400
+ movq %r11,%r8
1401
+ shlq $61,%r11
1402
+ shrq $3,%r8
1403
+ addq %r9,%rax
1404
+ addq %r10,%rax
1405
+ addq %r11,%rax
1406
+ adcq $0,%r8 // consume eventual carry
1407
+ movq %rax,112(%rdi)
1408
+ movq %r8,%rax
1409
+ movq 144(%rsi),%r9
1410
+ movq 152(%rsi),%r10
1411
+ shlq $26,%r9
1412
+ movq %r10,%r11
1413
+ shlq $55,%r10
1414
+ shrq $9,%r11
1415
+ addq %r9,%rax
1416
+ addq %r10,%rax
1417
+ adcq $0,%r11 // consume eventual carry
1418
+ movq %rax,120(%rdi)
1419
+ movq %r11,%rax
1420
+ ret
1421
+
1422
+
1423
+
1424
+ .globl _rsaz_1024_norm2red_avx2
1425
+ .private_extern _rsaz_1024_norm2red_avx2
1426
+
1427
+ .p2align 5
1428
+ .alt_entry _rsaz_1024_norm2red_avx2
1429
+ _rsaz_1024_norm2red_avx2:
1430
+
1431
+ _CET_ENDBR
1432
+ subq $-128,%rdi // size optimization
1433
+ movq (%rsi),%r8
1434
+ movl $0x1fffffff,%eax
1435
+ movq 8(%rsi),%r9
1436
+ movq %r8,%r11
1437
+ shrq $0,%r11
1438
+ andq %rax,%r11 // &0x1fffffff
1439
+ movq %r11,-128(%rdi)
1440
+ movq %r8,%r10
1441
+ shrq $29,%r10
1442
+ andq %rax,%r10 // &0x1fffffff
1443
+ movq %r10,-120(%rdi)
1444
+ shrdq $58,%r9,%r8
1445
+ andq %rax,%r8
1446
+ movq %r8,-112(%rdi)
1447
+ movq 16(%rsi),%r10
1448
+ movq %r9,%r8
1449
+ shrq $23,%r8
1450
+ andq %rax,%r8 // &0x1fffffff
1451
+ movq %r8,-104(%rdi)
1452
+ shrdq $52,%r10,%r9
1453
+ andq %rax,%r9
1454
+ movq %r9,-96(%rdi)
1455
+ movq 24(%rsi),%r11
1456
+ movq %r10,%r9
1457
+ shrq $17,%r9
1458
+ andq %rax,%r9 // &0x1fffffff
1459
+ movq %r9,-88(%rdi)
1460
+ shrdq $46,%r11,%r10
1461
+ andq %rax,%r10
1462
+ movq %r10,-80(%rdi)
1463
+ movq 32(%rsi),%r8
1464
+ movq %r11,%r10
1465
+ shrq $11,%r10
1466
+ andq %rax,%r10 // &0x1fffffff
1467
+ movq %r10,-72(%rdi)
1468
+ shrdq $40,%r8,%r11
1469
+ andq %rax,%r11
1470
+ movq %r11,-64(%rdi)
1471
+ movq 40(%rsi),%r9
1472
+ movq %r8,%r11
1473
+ shrq $5,%r11
1474
+ andq %rax,%r11 // &0x1fffffff
1475
+ movq %r11,-56(%rdi)
1476
+ movq %r8,%r10
1477
+ shrq $34,%r10
1478
+ andq %rax,%r10 // &0x1fffffff
1479
+ movq %r10,-48(%rdi)
1480
+ shrdq $63,%r9,%r8
1481
+ andq %rax,%r8
1482
+ movq %r8,-40(%rdi)
1483
+ movq 48(%rsi),%r10
1484
+ movq %r9,%r8
1485
+ shrq $28,%r8
1486
+ andq %rax,%r8 // &0x1fffffff
1487
+ movq %r8,-32(%rdi)
1488
+ shrdq $57,%r10,%r9
1489
+ andq %rax,%r9
1490
+ movq %r9,-24(%rdi)
1491
+ movq 56(%rsi),%r11
1492
+ movq %r10,%r9
1493
+ shrq $22,%r9
1494
+ andq %rax,%r9 // &0x1fffffff
1495
+ movq %r9,-16(%rdi)
1496
+ shrdq $51,%r11,%r10
1497
+ andq %rax,%r10
1498
+ movq %r10,-8(%rdi)
1499
+ movq 64(%rsi),%r8
1500
+ movq %r11,%r10
1501
+ shrq $16,%r10
1502
+ andq %rax,%r10 // &0x1fffffff
1503
+ movq %r10,0(%rdi)
1504
+ shrdq $45,%r8,%r11
1505
+ andq %rax,%r11
1506
+ movq %r11,8(%rdi)
1507
+ movq 72(%rsi),%r9
1508
+ movq %r8,%r11
1509
+ shrq $10,%r11
1510
+ andq %rax,%r11 // &0x1fffffff
1511
+ movq %r11,16(%rdi)
1512
+ shrdq $39,%r9,%r8
1513
+ andq %rax,%r8
1514
+ movq %r8,24(%rdi)
1515
+ movq 80(%rsi),%r10
1516
+ movq %r9,%r8
1517
+ shrq $4,%r8
1518
+ andq %rax,%r8 // &0x1fffffff
1519
+ movq %r8,32(%rdi)
1520
+ movq %r9,%r11
1521
+ shrq $33,%r11
1522
+ andq %rax,%r11 // &0x1fffffff
1523
+ movq %r11,40(%rdi)
1524
+ shrdq $62,%r10,%r9
1525
+ andq %rax,%r9
1526
+ movq %r9,48(%rdi)
1527
+ movq 88(%rsi),%r11
1528
+ movq %r10,%r9
1529
+ shrq $27,%r9
1530
+ andq %rax,%r9 // &0x1fffffff
1531
+ movq %r9,56(%rdi)
1532
+ shrdq $56,%r11,%r10
1533
+ andq %rax,%r10
1534
+ movq %r10,64(%rdi)
1535
+ movq 96(%rsi),%r8
1536
+ movq %r11,%r10
1537
+ shrq $21,%r10
1538
+ andq %rax,%r10 // &0x1fffffff
1539
+ movq %r10,72(%rdi)
1540
+ shrdq $50,%r8,%r11
1541
+ andq %rax,%r11
1542
+ movq %r11,80(%rdi)
1543
+ movq 104(%rsi),%r9
1544
+ movq %r8,%r11
1545
+ shrq $15,%r11
1546
+ andq %rax,%r11 // &0x1fffffff
1547
+ movq %r11,88(%rdi)
1548
+ shrdq $44,%r9,%r8
1549
+ andq %rax,%r8
1550
+ movq %r8,96(%rdi)
1551
+ movq 112(%rsi),%r10
1552
+ movq %r9,%r8
1553
+ shrq $9,%r8
1554
+ andq %rax,%r8 // &0x1fffffff
1555
+ movq %r8,104(%rdi)
1556
+ shrdq $38,%r10,%r9
1557
+ andq %rax,%r9
1558
+ movq %r9,112(%rdi)
1559
+ movq 120(%rsi),%r11
1560
+ movq %r10,%r9
1561
+ shrq $3,%r9
1562
+ andq %rax,%r9 // &0x1fffffff
1563
+ movq %r9,120(%rdi)
1564
+ movq %r10,%r8
1565
+ shrq $32,%r8
1566
+ andq %rax,%r8 // &0x1fffffff
1567
+ movq %r8,128(%rdi)
1568
+ shrdq $61,%r11,%r10
1569
+ andq %rax,%r10
1570
+ movq %r10,136(%rdi)
1571
+ xorq %r8,%r8
1572
+ movq %r11,%r10
1573
+ shrq $26,%r10
1574
+ andq %rax,%r10 // &0x1fffffff
1575
+ movq %r10,144(%rdi)
1576
+ shrdq $55,%r8,%r11
1577
+ andq %rax,%r11
1578
+ movq %r11,152(%rdi)
1579
+ movq %r8,160(%rdi) // zero
1580
+ movq %r8,168(%rdi)
1581
+ movq %r8,176(%rdi)
1582
+ movq %r8,184(%rdi)
1583
+ ret
1584
+
1585
+
1586
+ .globl _rsaz_1024_scatter5_avx2
1587
+ .private_extern _rsaz_1024_scatter5_avx2
1588
+
1589
+ .p2align 5
1590
+ .alt_entry _rsaz_1024_scatter5_avx2
1591
+ _rsaz_1024_scatter5_avx2:
1592
+
1593
+ _CET_ENDBR
1594
+ vzeroupper
1595
+ vmovdqu L$scatter_permd(%rip),%ymm5
1596
+ shll $4,%edx
1597
+ leaq (%rdi,%rdx,1),%rdi
1598
+ movl $9,%eax
1599
+ jmp L$oop_scatter_1024
1600
+
1601
+ .p2align 5
1602
+ L$oop_scatter_1024:
1603
+ vmovdqu (%rsi),%ymm0
1604
+ leaq 32(%rsi),%rsi
1605
+ vpermd %ymm0,%ymm5,%ymm0
1606
+ vmovdqu %xmm0,(%rdi)
1607
+ leaq 512(%rdi),%rdi
1608
+ decl %eax
1609
+ jnz L$oop_scatter_1024
1610
+
1611
+ vzeroupper
1612
+ ret
1613
+
1614
+
1615
+
1616
+ .globl _rsaz_1024_gather5_avx2
1617
+ .private_extern _rsaz_1024_gather5_avx2
1618
+
1619
+ .p2align 5
1620
+ .alt_entry _rsaz_1024_gather5_avx2
1621
+ _rsaz_1024_gather5_avx2:
1622
+
1623
+ _CET_ENDBR
1624
+ vzeroupper
1625
+ movq %rsp,%r11
1626
+
1627
+ leaq -256(%rsp),%rsp
1628
+ andq $-32,%rsp
1629
+ leaq L$inc(%rip),%r10
1630
+ leaq -128(%rsp),%rax // control u-op density
1631
+
1632
+ vmovd %edx,%xmm4
1633
+ vmovdqa (%r10),%ymm0
1634
+ vmovdqa 32(%r10),%ymm1
1635
+ vmovdqa 64(%r10),%ymm5
1636
+ vpbroadcastd %xmm4,%ymm4
1637
+
1638
+ vpaddd %ymm5,%ymm0,%ymm2
1639
+ vpcmpeqd %ymm4,%ymm0,%ymm0
1640
+ vpaddd %ymm5,%ymm1,%ymm3
1641
+ vpcmpeqd %ymm4,%ymm1,%ymm1
1642
+ vmovdqa %ymm0,0+128(%rax)
1643
+ vpaddd %ymm5,%ymm2,%ymm0
1644
+ vpcmpeqd %ymm4,%ymm2,%ymm2
1645
+ vmovdqa %ymm1,32+128(%rax)
1646
+ vpaddd %ymm5,%ymm3,%ymm1
1647
+ vpcmpeqd %ymm4,%ymm3,%ymm3
1648
+ vmovdqa %ymm2,64+128(%rax)
1649
+ vpaddd %ymm5,%ymm0,%ymm2
1650
+ vpcmpeqd %ymm4,%ymm0,%ymm0
1651
+ vmovdqa %ymm3,96+128(%rax)
1652
+ vpaddd %ymm5,%ymm1,%ymm3
1653
+ vpcmpeqd %ymm4,%ymm1,%ymm1
1654
+ vmovdqa %ymm0,128+128(%rax)
1655
+ vpaddd %ymm5,%ymm2,%ymm8
1656
+ vpcmpeqd %ymm4,%ymm2,%ymm2
1657
+ vmovdqa %ymm1,160+128(%rax)
1658
+ vpaddd %ymm5,%ymm3,%ymm9
1659
+ vpcmpeqd %ymm4,%ymm3,%ymm3
1660
+ vmovdqa %ymm2,192+128(%rax)
1661
+ vpaddd %ymm5,%ymm8,%ymm10
1662
+ vpcmpeqd %ymm4,%ymm8,%ymm8
1663
+ vmovdqa %ymm3,224+128(%rax)
1664
+ vpaddd %ymm5,%ymm9,%ymm11
1665
+ vpcmpeqd %ymm4,%ymm9,%ymm9
1666
+ vpaddd %ymm5,%ymm10,%ymm12
1667
+ vpcmpeqd %ymm4,%ymm10,%ymm10
1668
+ vpaddd %ymm5,%ymm11,%ymm13
1669
+ vpcmpeqd %ymm4,%ymm11,%ymm11
1670
+ vpaddd %ymm5,%ymm12,%ymm14
1671
+ vpcmpeqd %ymm4,%ymm12,%ymm12
1672
+ vpaddd %ymm5,%ymm13,%ymm15
1673
+ vpcmpeqd %ymm4,%ymm13,%ymm13
1674
+ vpcmpeqd %ymm4,%ymm14,%ymm14
1675
+ vpcmpeqd %ymm4,%ymm15,%ymm15
1676
+
1677
+ vmovdqa -32(%r10),%ymm7 // .Lgather_permd
1678
+ leaq 128(%rsi),%rsi
1679
+ movl $9,%edx
1680
+
1681
+ L$oop_gather_1024:
1682
+ vmovdqa 0-128(%rsi),%ymm0
1683
+ vmovdqa 32-128(%rsi),%ymm1
1684
+ vmovdqa 64-128(%rsi),%ymm2
1685
+ vmovdqa 96-128(%rsi),%ymm3
1686
+ vpand 0+128(%rax),%ymm0,%ymm0
1687
+ vpand 32+128(%rax),%ymm1,%ymm1
1688
+ vpand 64+128(%rax),%ymm2,%ymm2
1689
+ vpor %ymm0,%ymm1,%ymm4
1690
+ vpand 96+128(%rax),%ymm3,%ymm3
1691
+ vmovdqa 128-128(%rsi),%ymm0
1692
+ vmovdqa 160-128(%rsi),%ymm1
1693
+ vpor %ymm2,%ymm3,%ymm5
1694
+ vmovdqa 192-128(%rsi),%ymm2
1695
+ vmovdqa 224-128(%rsi),%ymm3
1696
+ vpand 128+128(%rax),%ymm0,%ymm0
1697
+ vpand 160+128(%rax),%ymm1,%ymm1
1698
+ vpand 192+128(%rax),%ymm2,%ymm2
1699
+ vpor %ymm0,%ymm4,%ymm4
1700
+ vpand 224+128(%rax),%ymm3,%ymm3
1701
+ vpand 256-128(%rsi),%ymm8,%ymm0
1702
+ vpor %ymm1,%ymm5,%ymm5
1703
+ vpand 288-128(%rsi),%ymm9,%ymm1
1704
+ vpor %ymm2,%ymm4,%ymm4
1705
+ vpand 320-128(%rsi),%ymm10,%ymm2
1706
+ vpor %ymm3,%ymm5,%ymm5
1707
+ vpand 352-128(%rsi),%ymm11,%ymm3
1708
+ vpor %ymm0,%ymm4,%ymm4
1709
+ vpand 384-128(%rsi),%ymm12,%ymm0
1710
+ vpor %ymm1,%ymm5,%ymm5
1711
+ vpand 416-128(%rsi),%ymm13,%ymm1
1712
+ vpor %ymm2,%ymm4,%ymm4
1713
+ vpand 448-128(%rsi),%ymm14,%ymm2
1714
+ vpor %ymm3,%ymm5,%ymm5
1715
+ vpand 480-128(%rsi),%ymm15,%ymm3
1716
+ leaq 512(%rsi),%rsi
1717
+ vpor %ymm0,%ymm4,%ymm4
1718
+ vpor %ymm1,%ymm5,%ymm5
1719
+ vpor %ymm2,%ymm4,%ymm4
1720
+ vpor %ymm3,%ymm5,%ymm5
1721
+
1722
+ vpor %ymm5,%ymm4,%ymm4
1723
+ vextracti128 $1,%ymm4,%xmm5 // upper half is cleared
1724
+ vpor %xmm4,%xmm5,%xmm5
1725
+ vpermd %ymm5,%ymm7,%ymm5
1726
+ vmovdqu %ymm5,(%rdi)
1727
+ leaq 32(%rdi),%rdi
1728
+ decl %edx
1729
+ jnz L$oop_gather_1024
1730
+
1731
+ vpxor %ymm0,%ymm0,%ymm0
1732
+ vmovdqu %ymm0,(%rdi)
1733
+ vzeroupper
1734
+ leaq (%r11),%rsp
1735
+
1736
+ ret
1737
+
1738
+ L$SEH_end_rsaz_1024_gather5:
1739
+
1740
+ .section __DATA,__const
1741
+
1742
+ .p2align 6
1743
+ rsaz_avx2_constants:
1744
+ L$and_mask:
1745
+ .quad 0x1fffffff,0x1fffffff,0x1fffffff,0x1fffffff
1746
+ L$scatter_permd:
1747
+ .long 0,2,4,6,7,7,7,7
1748
+ L$gather_permd:
1749
+ .long 0,7,1,7,2,7,3,7
1750
+ L$inc:
1751
+ .long 0,0,0,0, 1,1,1,1
1752
+ .long 2,2,2,2, 3,3,3,3
1753
+ .long 4,4,4,4, 4,4,4,4
1754
+ .p2align 6
1755
+ .text
1756
+ #endif