<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><a href="https://bugs.openjdk.java.net/browse/JDK-8139524" class="">https://bugs.openjdk.java.net/browse/JDK-8139524</a><div class=""><br class=""></div><div class="">The fix is to handle the BarrierSet kind correctly.</div><div class=""><br class=""></div><div class=""><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(45, 230, 33);" class="">diff -r 0ca52fb7d980 src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(195, 55, 32);" class="">--- a/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java<span class="Apple-tab-span" style="white-space:pre">  </span>Tue Sep 29 17:01:37 2015 +0000</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(52, 189, 38);" class="">+++ b/src/jdk.vm.ci/share/classes/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotVMConfig.java<span class="Apple-tab-span" style="white-space:pre">   </span>Tue Oct 13 08:47:05 2015 -1000</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(52, 187, 199);" class="">@@ -86,13 +86,11 @@ public class HotSpotVMConfig {</div><p style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; min-height: 14px;" class=""> <br class="webkit-block-placeholder"></p><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">         final long barrierSetAddress = UNSAFE.getAddress(universeCollectedHeap + collectedHeapBarrierSetOffset);</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">         final int kind = UNSAFE.getInt(barrierSetAddress + barrierSetFakeRttiOffset + fakeRttiConcreteTagOffset);</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(195, 55, 32);" class="">-        if ((kind == barrierSetCardTableModRef) || (kind == barrierSetCardTableExtension) || (kind == barrierSetG1SATBCT) || (kind == barrierSetG1SATBCTLogging)) {</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(52, 189, 38);" class="">+        if ((kind == barrierSetCardTableModRef) || (kind == barrierSetCardTableForRS) || (kind == barrierSetCardTableExtension) || (kind == barrierSetG1SATBCT) || (kind == barrierSetG1SATBCTLogging)) {</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             final long base = UNSAFE.getAddress(barrierSetAddress + cardTableModRefBSByteMapBaseOffset);</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             assert base != 0 : "unexpected byte_map_base: " + base;</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             cardtableStartAddress = base;</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             cardtableShift = cardTableModRefBSCardShift;</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(195, 55, 32);" class="">-        } else if (kind == barrierSetCardTableForRS) {</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco; color: rgb(195, 55, 32);" class="">-            throw JVMCIError.unimplemented();</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">         } else if (kind == barrierSetModRef) {</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             // No post barriers</div><div style="margin: 0px; font-size: 10px; line-height: normal; font-family: Monaco;" class="">             cardtableStartAddress = 0;</div></div><div class=""><br class=""></div></body></html>