8222397: x86_32 tests with UseSHA1Intrinsics SEGV due to garbled registers
Reviewed-by: kvn, dsamersoff
--- a/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp Mon Apr 15 18:22:08 2019 +0200
+++ b/src/hotspot/cpu/x86/stubGenerator_x86_32.cpp Mon Apr 15 18:22:10 2019 +0200
@@ -2968,9 +2968,8 @@
__ enter();
__ subptr(rsp, 8 * wordSize);
- if (multi_block) {
- __ push(limit);
- }
+ handleSOERegisters(true /*saving*/);
+
__ movptr(buf, buf_param);
__ movptr(state, state_param);
if (multi_block) {
@@ -2981,9 +2980,7 @@
__ fast_sha1(abcd, e0, e1, msg0, msg1, msg2, msg3, shuf_mask,
buf, state, ofs, limit, rsp, multi_block);
- if (multi_block) {
- __ pop(limit);
- }
+ handleSOERegisters(false /*restoring*/);
__ addptr(rsp, 8 * wordSize);
__ leave();
__ ret(0);