8320206: Some intrinsics/stubs missing vzeroupper on x86_64
Reviewed-by: kvn, jbhateja
This commit is contained in:
parent
b5a7562bd1
commit
9b372e28ce
@ -330,6 +330,7 @@ address StubGenerator::generate_updateBytesAdler32() {
|
|||||||
__ movq(r13, xtmp4);
|
__ movq(r13, xtmp4);
|
||||||
__ movq(r12, xtmp3);
|
__ movq(r12, xtmp3);
|
||||||
|
|
||||||
|
__ vzeroupper();
|
||||||
__ leave();
|
__ leave();
|
||||||
__ ret(0);
|
__ ret(0);
|
||||||
|
|
||||||
|
@ -291,6 +291,9 @@ address StubGenerator::generate_chacha20Block_avx() {
|
|||||||
// registers. That length should be returned through %rax.
|
// registers. That length should be returned through %rax.
|
||||||
__ mov64(rax, outlen);
|
__ mov64(rax, outlen);
|
||||||
|
|
||||||
|
if (outlen == 256) {
|
||||||
|
__ vzeroupper();
|
||||||
|
}
|
||||||
__ leave();
|
__ leave();
|
||||||
__ ret(0);
|
__ ret(0);
|
||||||
return start;
|
return start;
|
||||||
@ -460,6 +463,7 @@ address StubGenerator::generate_chacha20Block_avx512() {
|
|||||||
// and that length should be returned through %rax.
|
// and that length should be returned through %rax.
|
||||||
__ mov64(rax, 1024);
|
__ mov64(rax, 1024);
|
||||||
|
|
||||||
|
__ vzeroupper();
|
||||||
__ leave();
|
__ leave();
|
||||||
__ ret(0);
|
__ ret(0);
|
||||||
return start;
|
return start;
|
||||||
|
@ -1112,6 +1112,7 @@ bool LibraryCallKit::inline_countPositives() {
|
|||||||
Node* ba_start = array_element_address(ba, offset, T_BYTE);
|
Node* ba_start = array_element_address(ba, offset, T_BYTE);
|
||||||
Node* result = new CountPositivesNode(control(), memory(TypeAryPtr::BYTES), ba_start, len);
|
Node* result = new CountPositivesNode(control(), memory(TypeAryPtr::BYTES), ba_start, len);
|
||||||
set_result(_gvn.transform(result));
|
set_result(_gvn.transform(result));
|
||||||
|
clear_upper_avx();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1366,6 +1367,7 @@ bool LibraryCallKit::inline_string_indexOfChar(StrIntrinsicNode::ArgEnc ae) {
|
|||||||
set_control(_gvn.transform(region));
|
set_control(_gvn.transform(region));
|
||||||
record_for_igvn(region);
|
record_for_igvn(region);
|
||||||
set_result(_gvn.transform(phi));
|
set_result(_gvn.transform(phi));
|
||||||
|
clear_upper_avx();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user