< prev index next >

src/hotspot/share/opto/matcher.cpp

Print this page

        

@@ -1,7 +1,7 @@
 /*
- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -2249,10 +2249,18 @@
       // Now hack a few special opcodes
       switch( n->Opcode() ) {       // Handle some opcodes special
       case Op_StorePConditional:
       case Op_StoreIConditional:
       case Op_StoreLConditional:
+#if INCLUDE_SHENANDOAHGC
+      case Op_ShenandoahCompareAndExchangeP:
+      case Op_ShenandoahCompareAndExchangeN:
+      case Op_ShenandoahWeakCompareAndSwapP:
+      case Op_ShenandoahWeakCompareAndSwapN:
+      case Op_ShenandoahCompareAndSwapP:
+      case Op_ShenandoahCompareAndSwapN:
+#endif
       case Op_CompareAndExchangeB:
       case Op_CompareAndExchangeS:
       case Op_CompareAndExchangeI:
       case Op_CompareAndExchangeL:
       case Op_CompareAndExchangeP:

@@ -2492,10 +2500,18 @@
     // Op_Fastunlock previously appeared in the Op_* list below.
     // With the advent of 1-0 lock operations we're no longer guaranteed
     // that a monitor exit operation contains a serializing instruction.
 
     if (xop == Op_MemBarVolatile ||
+#if INCLUDE_SHENANDOAHGC
+        xop == Op_ShenandoahCompareAndExchangeP ||
+        xop == Op_ShenandoahCompareAndExchangeN ||
+        xop == Op_ShenandoahWeakCompareAndSwapP ||
+        xop == Op_ShenandoahWeakCompareAndSwapN ||
+        xop == Op_ShenandoahCompareAndSwapN ||
+        xop == Op_ShenandoahCompareAndSwapP ||
+#endif
         xop == Op_CompareAndExchangeB ||
         xop == Op_CompareAndExchangeS ||
         xop == Op_CompareAndExchangeI ||
         xop == Op_CompareAndExchangeL ||
         xop == Op_CompareAndExchangeP ||
< prev index next >