8222397: x86_32 tests with UseSHA1Intrinsics SEGV due to garbled registers
authorshade
Mon, 15 Apr 2019 18:22:10 +0200
changeset 54534 66f5241da404
parent 54533 9219624244a6
child 54535 377dcf569920
8222397: x86_32 tests with UseSHA1Intrinsics SEGV due to garbled registers Reviewed-by: kvn, dsamersoff
src/hotspot/cpu/x86/stubGenerator_x86_32.cpp
--- 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);