# HG changeset patch # User coleenp # Date 1512155956 18000 # Node ID acffbbe798713ccc2fa4e4c06267f4f54396e68a # Parent 531ce8ceafea061501fde8c9d4db343920260a88# Parent cd85c117a649285f69e19af9c7a3cf03a38febb5 Merge diff -r 531ce8ceafea -r acffbbe79871 src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp --- a/src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp Fri Dec 01 11:26:22 2017 -0500 +++ b/src/hotspot/cpu/ppc/c1_MacroAssembler_ppc.cpp Fri Dec 01 14:19:16 2017 -0500 @@ -41,20 +41,25 @@ void C1_MacroAssembler::inline_cache_check(Register receiver, Register iCache) { const Register temp_reg = R12_scratch2; + Label Lmiss; + verify_oop(receiver); + MacroAssembler::null_check(receiver, oopDesc::klass_offset_in_bytes(), &Lmiss); load_klass(temp_reg, receiver); - if (TrapBasedICMissChecks) { + + if (TrapBasedICMissChecks && TrapBasedNullChecks) { trap_ic_miss_check(temp_reg, iCache); } else { - Label L; + Label Lok; cmpd(CCR0, temp_reg, iCache); - beq(CCR0, L); + beq(CCR0, Lok); + bind(Lmiss); //load_const_optimized(temp_reg, SharedRuntime::get_ic_miss_stub(), R0); calculate_address_from_global_toc(temp_reg, SharedRuntime::get_ic_miss_stub(), true, true, false); mtctr(temp_reg); bctr(); align(32, 12); - bind(L); + bind(Lok); } } diff -r 531ce8ceafea -r acffbbe79871 src/hotspot/cpu/s390/macroAssembler_s390.cpp --- a/src/hotspot/cpu/s390/macroAssembler_s390.cpp Fri Dec 01 11:26:22 2017 -0500 +++ b/src/hotspot/cpu/s390/macroAssembler_s390.cpp Fri Dec 01 14:19:16 2017 -0500 @@ -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. diff -r 531ce8ceafea -r acffbbe79871 src/hotspot/share/runtime/objectMonitor.cpp --- a/src/hotspot/share/runtime/objectMonitor.cpp Fri Dec 01 11:26:22 2017 -0500 +++ b/src/hotspot/share/runtime/objectMonitor.cpp Fri Dec 01 14:19:16 2017 -0500 @@ -2152,6 +2152,7 @@ _next = NULL; _prev = NULL; _notified = 0; + _notifier_tid = 0; TState = TS_RUN; _thread = thread; _event = thread->_ParkEvent;