8192818: [s390]: restoring register contents calculates wrong value
Reviewed-by: goetz, mdoerr
--- 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.