8192818: [s390]: restoring register contents calculates wrong value
authorlucy
Fri, 01 Dec 2017 17:09:43 +0100
changeset 48186 c722887b75a2
parent 48185 d5610f86423f
child 48187 cd85c117a649
8192818: [s390]: restoring register contents calculates wrong value Reviewed-by: goetz, mdoerr
src/hotspot/cpu/s390/macroAssembler_s390.cpp
--- a/src/hotspot/cpu/s390/macroAssembler_s390.cpp	Fri Dec 01 17:03:07 2017 +0100
+++ b/src/hotspot/cpu/s390/macroAssembler_s390.cpp	Fri Dec 01 17:09:43 2017 +0100
@@ -5041,6 +5041,7 @@
     z_bru(VectorDone);
 
     bind(VectorBreak);
+      add2reg(Rsrc, -min_vcnt*2);          // Fix Rsrc. Rsrc was already updated, but Rdst and Rix are not.
       z_sll(Rix, log_min_vcnt);            // # chars processed so far in VectorLoop, excl. current iteration.
       z_sr(Z_R0, Rix);                     // correct # chars processed in total.