--- old/src/hotspot/cpu/s390/macroAssembler_s390.cpp 2017-11-30 17:11:21.441833000 +0100 +++ new/src/hotspot/cpu/s390/macroAssembler_s390.cpp 2017-11-30 17:11:21.015818000 +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.