< prev index next >

src/hotspot/share/opto/lcm.cpp

Print this page
rev 50905 : Move Shenandoah stubs generation into ShenandoahBarrierSetAssembler
rev 50906 : [mq]: stubgen-v2.patch

@@ -32,10 +32,14 @@
 #include "opto/cfgnode.hpp"
 #include "opto/machnode.hpp"
 #include "opto/runtime.hpp"
 #include "opto/chaitin.hpp"
 #include "runtime/sharedRuntime.hpp"
+#include "utilities/macros.hpp"
+#if INCLUDE_SHENANDOAHGC
+#include "gc/shenandoah/shenandoahBarrierSetAssembler.hpp"
+#endif
 
 // Optimization - Graph Style
 
 // Check whether val is not-null-decoded compressed oop,
 // i.e. will grab into the base of the heap if it represents NULL.

@@ -891,17 +895,19 @@
     MachCallStaticJavaNode* mcallstaticjava = (MachCallStaticJavaNode*) mcall;
     if (mcallstaticjava->_method_handle_invoke)
       proj->_rout.OR(Matcher::method_handle_invoke_SP_save_mask());
   }
 
-  if (UseShenandoahGC && mcall->entry_point() == StubRoutines::shenandoah_wb_C()) {
+#if INCLUDE_SHENANDOAHGC
+  if (UseShenandoahGC && (ShenandoahWriteBarrier || ShenandoahStoreValEnqueueBarrier) && mcall->entry_point() == ShenandoahBarrierSetAssembler::shenandoah_wb_C()) {
     assert(op == Op_CallLeafNoFP, "shenandoah_wb_C should be called with Op_CallLeafNoFP");
     add_call_kills(proj, regs, save_policy, exclude_soe, true);
-  } else {
+  } else
+#endif
+  {
     add_call_kills(proj, regs, save_policy, exclude_soe, false);
   }
-
   return node_cnt;
 }
 
 void PhaseCFG::push_ready_nodes(Node* n, Node* m, Block* block, GrowableArray<int>& ready_cnt, Node_List& worklist, uint max_idx, int c) {
   if (get_block_for_node(m) != block) {
< prev index next >