# HG changeset patch # User Christos Kotselidis # Date 1375790449 -7200 # Node ID a7b2dc8e05a09f5798939aee637c041d9712450f # Parent 19648527ec725576a78244894073b0f017f075a1 Ordinal check for unsafe load lowering diff -r 19648527ec72 -r a7b2dc8e05a0 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Mon Aug 05 10:44:46 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Tue Aug 06 14:00:49 2013 +0200 @@ -636,11 +636,11 @@ graph.replaceFixedWithFixed(storeIndexed, memoryWrite); } else if (n instanceof UnsafeLoadNode) { - if (tool.getLoweringType() != LoweringType.BEFORE_GUARDS) { + if (tool.getLoweringType().ordinal() > LoweringType.BEFORE_GUARDS.ordinal()) { UnsafeLoadNode load = (UnsafeLoadNode) n; assert load.kind() != Kind.Illegal; boolean compressible = (!load.object().isNullConstant() && load.accessKind() == Kind.Object); - if (addReadBarrier(load, tool)) { + if (addReadBarrier(load)) { unsafeLoadSnippets.lower(load, tool); } else { IndexedLocationNode location = IndexedLocationNode.create(ANY_LOCATION, load.accessKind(), load.displacement(), load.offset(), graph, 1); @@ -849,9 +849,9 @@ } } - private static boolean addReadBarrier(UnsafeLoadNode load, LoweringTool tool) { + private static boolean addReadBarrier(UnsafeLoadNode load) { return useG1GC() && load.object().kind() == Kind.Object && load.accessKind() == Kind.Object && !load.object().objectStamp().alwaysNull() && load.object().objectStamp().type() != null && - !(load.object().objectStamp().type().isArray()) && tool.getLoweringType() == LoweringType.BEFORE_GUARDS; + !(load.object().objectStamp().type().isArray()); } private static ReadNode createReadVirtualMethod(StructuredGraph graph, Kind wordKind, ValueNode hub, ResolvedJavaMethod method) {