Skip to content

Commit 98fb425

Browse files
Sandhya ViswanathanTheRealMDoerr
Sandhya Viswanathan
authored andcommitted
8320206: Some intrinsics/stubs missing vzeroupper on x86_64
Backport-of: 9b372e28ceb8b054118027626eb454b8a493740b
1 parent 3465179 commit 98fb425

File tree

3 files changed

+7
-0
lines changed

3 files changed

+7
-0
lines changed

src/hotspot/cpu/x86/stubGenerator_x86_64_adler.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -330,6 +330,7 @@ address StubGenerator::generate_updateBytesAdler32() {
330330
__ movq(r13, xtmp4);
331331
__ movq(r12, xtmp3);
332332

333+
__ vzeroupper();
333334
__ leave();
334335
__ ret(0);
335336

src/hotspot/cpu/x86/stubGenerator_x86_64_chacha.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -291,6 +291,9 @@ address StubGenerator::generate_chacha20Block_avx() {
291291
// registers. That length should be returned through %rax.
292292
__ mov64(rax, outlen);
293293

294+
if (outlen == 256) {
295+
__ vzeroupper();
296+
}
294297
__ leave();
295298
__ ret(0);
296299
return start;
@@ -460,6 +463,7 @@ address StubGenerator::generate_chacha20Block_avx512() {
460463
// and that length should be returned through %rax.
461464
__ mov64(rax, 1024);
462465

466+
__ vzeroupper();
463467
__ leave();
464468
__ ret(0);
465469
return start;

src/hotspot/share/opto/library_call.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1108,6 +1108,7 @@ bool LibraryCallKit::inline_countPositives() {
11081108
Node* ba_start = array_element_address(ba, offset, T_BYTE);
11091109
Node* result = new CountPositivesNode(control(), memory(TypeAryPtr::BYTES), ba_start, len);
11101110
set_result(_gvn.transform(result));
1111+
clear_upper_avx();
11111112
return true;
11121113
}
11131114

@@ -1362,6 +1363,7 @@ bool LibraryCallKit::inline_string_indexOfChar(StrIntrinsicNode::ArgEnc ae) {
13621363
set_control(_gvn.transform(region));
13631364
record_for_igvn(region);
13641365
set_result(_gvn.transform(phi));
1366+
clear_upper_avx();
13651367

13661368
return true;
13671369
}

0 commit comments

Comments
 (0)