changeset 48061:c722887b75a2

8192818: [s390]: restoring register contents calculates wrong value Reviewed-by: goetz, mdoerr
author lucy
date Fri, 01 Dec 2017 17:09:43 +0100
parents d5610f86423f
children cd85c117a649
files src/hotspot/cpu/s390/macroAssembler_s390.cpp
diffstat 1 files changed, 1 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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.