# HG changeset patch # User Christos Kotselidis # Date 1370860095 -7200 # Node ID 3743ac6347ddd7e2c6de5b4b972347f3f4e64fd3 # Parent 01dd93600d02bd02f7ef359d8a2990d69a8e9c08 Small refactoring and comment addition diff -r 01dd93600d02 -r 3743ac6347dd 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 Jun 10 12:18:36 2013 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotRuntime.java Mon Jun 10 12:28:15 2013 +0200 @@ -612,7 +612,10 @@ UnsafeLoadNode load = (UnsafeLoadNode) n; assert load.kind() != Kind.Illegal; IndexedLocationNode location = IndexedLocationNode.create(ANY_LOCATION, load.accessKind(), load.displacement(), load.offset(), graph, 1); - ReadNode memoryRead = graph.add(new ReadNode(load.object(), location, load.stamp(), WriteBarrierType.NONE, (!load.object().isNullConstant() && load.accessKind() == Kind.Object))); + // Unsafe Accesses to the metaspace or to any + // absolute address do not perform uncompression. + boolean compress = (!load.object().isNullConstant() && load.accessKind() == Kind.Object); + ReadNode memoryRead = graph.add(new ReadNode(load.object(), location, load.stamp(), WriteBarrierType.NONE, compress)); // An unsafe read must not floating outside its block as may float above an explicit // null check on its object. memoryRead.setGuard(AbstractBeginNode.prevBegin(load));