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