Skip to content

Commit 9ee3ccf

Browse files
Smita KamathSandhya Viswanathan
authored andcommitted
8279045: Intrinsics missing vzeroupper instruction
Reviewed-by: neliasso, sviswanathan, kvn
1 parent 84d3333 commit 9ee3ccf

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/hotspot/cpu/x86/stubGenerator_x86_64.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4138,6 +4138,7 @@ class StubGenerator: public StubCodeGenerator {
41384138
const Register len = c_rarg3; // src len (must be multiple of blocksize 16)
41394139
__ enter(); // required for proper stackwalking of RuntimeStub frame
41404140
__ aesecb_encrypt(from, to, key, len);
4141+
__ vzeroupper();
41414142
__ leave(); // required for proper stackwalking of RuntimeStub frame
41424143
__ ret(0);
41434144
return start;
@@ -4153,6 +4154,7 @@ class StubGenerator: public StubCodeGenerator {
41534154
const Register len = c_rarg3; // src len (must be multiple of blocksize 16)
41544155
__ enter(); // required for proper stackwalking of RuntimeStub frame
41554156
__ aesecb_decrypt(from, to, key, len);
4157+
__ vzeroupper();
41564158
__ leave(); // required for proper stackwalking of RuntimeStub frame
41574159
__ ret(0);
41584160
return start;
@@ -4452,6 +4454,7 @@ class StubGenerator: public StubCodeGenerator {
44524454
__ movptr(avx512_subkeyHtbl, rsp);
44534455

44544456
__ aesgcm_encrypt(in, len, ct, out, key, state, subkeyHtbl, avx512_subkeyHtbl, counter);
4457+
__ vzeroupper();
44554458

44564459
__ movq(rsp, rbp);
44574460
__ pop(rbp);
@@ -4571,6 +4574,7 @@ class StubGenerator: public StubCodeGenerator {
45714574
#endif
45724575
__ push(rbx);
45734576
__ aesctr_encrypt(from, to, key, counter, len_reg, used, used_addr, saved_encCounter_start);
4577+
__ vzeroupper();
45744578
// Restore state before leaving routine
45754579
__ pop(rbx);
45764580
#ifdef _WIN64
@@ -5191,6 +5195,7 @@ address generate_cipherBlockChaining_decryptVectorAESCrypt() {
51915195
__ evpxorq(RK14, RK14, RK14, Assembler::AVX_512bit);
51925196

51935197
__ BIND(Lcbc_exit);
5198+
__ vzeroupper();
51945199
__ pop(rbx);
51955200
#ifdef _WIN64
51965201
__ movl(rax, len_mem);
@@ -7066,6 +7071,7 @@ address generate_avx_ghash_processBlocks() {
70667071
__ shrdl(tmp4, tmp3);
70677072
__ movl(Address(newArr, nIdx, Address::times_4), tmp4);
70687073
__ BIND(Exit);
7074+
__ vzeroupper();
70697075
// Restore callee save registers.
70707076
__ pop(tmp5);
70717077
#ifdef _WINDOWS
@@ -7187,6 +7193,7 @@ address generate_avx_ghash_processBlocks() {
71877193
__ movl(Address(newArr, idx, Address::times_4), tmp3);
71887194

71897195
__ BIND(Exit);
7196+
__ vzeroupper();
71907197
// Restore callee save registers.
71917198
__ pop(tmp5);
71927199
#ifdef _WINDOWS

0 commit comments

Comments
 (0)