{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752655162,
"reponame":"openssl",
"desc":"OpenSSL",
"owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://warmcat.com/repo/openssl",
"f":3,
"items": [
{"schema":"libjg2-1",
"cid":"1a5df03ddd6e6b3989326a5f38e024aa",
"commit": {"type":"commit",
"time": 1510173916,
"time_ofs": 60,
"oid_tree": { "oid": "738ea44a85df4e37720dc48a6a9e8fb6da93f415", "alias": []},
"oid":{ "oid": "d6ee8f3dc4414cd97bd63b801f8644f0ff8a1f17", "alias": []},
"msg": "OPENSSL_ia32cap: reserve for new extensions.",
"sig_commit": { "git_time": { "time": 1510173916, "offset": 60 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" },
"sig_author": { "git_time": { "time": 1509908597, "offset": 60 }, "name": "Andy Polyakov", "email": "appro@openssl.org", "md5": "50bd64fa2a792cbbf679fa16213a3b2a" }},
"body": "OPENSSL_ia32cap: reserve for new extensions.\n\nReviewed-by: Rich Salz \u003crsalz@openssl.org\u003e\n"
,
"diff": "diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c\nindex eb24b27..c2bd219 100644\n--- a/crypto/cryptlib.c\n+++ b/crypto/cryptlib.c\n@@ -61,16 +61,26 @@ void OPENSSL_cpuid_setup(void)\n }\n \n if ((env \u003d strchr(env, ':'))) {\n- unsigned int vecx;\n+ IA32CAP vecx;\n env++;\n off \u003d (env[0] \u003d\u003d '~') ? 1 : 0;\n- vecx \u003d strtoul(env + off, NULL, 0);\n- if (off)\n- OPENSSL_ia32cap_P[2] \u0026\u003d ~vecx;\n- else\n- OPENSSL_ia32cap_P[2] \u003d vecx;\n+# if defined(_WIN32)\n+ if (!sscanf(env + off, \u0022%I64i\u0022, \u0026vecx))\n+ vecx \u003d strtoul(env + off, NULL, 0);\n+# else\n+ if (!sscanf(env + off, \u0022%lli\u0022, (long long *)\u0026vecx))\n+ vecx \u003d strtoul(env + off, NULL, 0);\n+# endif\n+ if (off) {\n+ OPENSSL_ia32cap_P[2] \u0026\u003d ~(unsigned int)vecx;\n+ OPENSSL_ia32cap_P[3] \u0026\u003d ~(unsigned int)(vecx \u003e\u003e 32);\n+ } else {\n+ OPENSSL_ia32cap_P[2] \u003d (unsigned int)vecx;\n+ OPENSSL_ia32cap_P[3] \u003d (unsigned int)(vecx \u003e\u003e 32);\n+ }\n } else {\n OPENSSL_ia32cap_P[2] \u003d 0;\n+ OPENSSL_ia32cap_P[3] \u003d 0;\n }\n } else {\n vec \u003d OPENSSL_ia32_cpuid(OPENSSL_ia32cap_P);\ndiff --git a/crypto/x86_64cpuid.pl b/crypto/x86_64cpuid.pl\nindex f228c24..7c8952e 100644\n--- a/crypto/x86_64cpuid.pl\n+++ b/crypto/x86_64cpuid.pl\n@@ -68,7 +68,7 @@ OPENSSL_ia32_cpuid:\n .cfi_register\t%rbx,%r8\n \n \txor\t%eax,%eax\n-\tmov\t%eax,8(%rdi)\t\t# clear extended feature flags\n+\tmov\t%rax,8(%rdi)\t\t# clear extended feature flags\n \tcpuid\n \tmov\t%eax,%r11d\t\t# max value for standard query level\n \n@@ -187,6 +187,7 @@ OPENSSL_ia32_cpuid:\n \tand\t\u005c$0xfff7ffff,%ebx\t# clear ADCX/ADOX flag\n .Lnotknights:\n \tmov\t%ebx,8(%rdi)\t\t# save extended feature flags\n+\tmov\t%ecx,12(%rdi)\n .Lno_extended_info:\n \n \tbt\t\u005c$27,%r9d\t\t# check OSXSAVE bit\ndiff --git a/doc/man3/OPENSSL_ia32cap.pod b/doc/man3/OPENSSL_ia32cap.pod\nindex 7c5fde3..e4f5037 100644\n--- a/doc/man3/OPENSSL_ia32cap.pod\n+++ b/doc/man3/OPENSSL_ia32cap.pod\n@@ -110,6 +110,10 @@ a.k.a. AVX512IFMA extension;\n \n \u003ditem bit #64+31 denoting availability of AVX512VL extension;\n \n+\u003ditem bit #64+41 denoting availability of VAES extension;\n+\n+\u003ditem bit #64+42 denoting availability of VPCLMULQDQ extension;\n+\n \u003dback\n \n To control this extended capability word use ':' as delimiter when\n@@ -130,6 +134,7 @@ requirements are summarized in below table:\n ADCX/ADOX | 2.23 | 2.10 | 3.3\n AVX512 | 2.25 | 2.11.8 | see NOTES\n AVX512IFMA | 2.26 | 2.11.8 | see NOTES\n+ VAES | n/a | n/a |\n \n \u003dhead1 NOTES\n \n","s":{"c":1752655162,"u": 38591}}
],"g": 39978,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}