Merge
authorcoleenp
Fri, 01 Dec 2017 14:19:16 -0500
changeset 48189 acffbbe79871
parent 48188 531ce8ceafea (current diff)
parent 48187 cd85c117a649 (diff)
child 48190 25cfedf27edc
Merge
--- 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);
   }
 }
 
--- 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.
 
--- 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;