# HG changeset patch # User Gilles Duboscq # Date 1383909015 -3600 # Node ID 895f31682b88e015bf3d75f169e14d5c1daf6497 # Parent 605c69ce3b352fc75cf556637ae5f3e6ce7bf112 Make the speculation id an int and allow for more bits to be set in the HotSpot implementation (which currently silently discards unsupported high bit). diff -r 605c69ce3b35 -r 895f31682b88 graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java --- a/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java Fri Nov 08 12:04:35 2013 +0100 +++ b/graal/com.oracle.graal.api.meta/src/com/oracle/graal/api/meta/MetaAccessProvider.java Fri Nov 08 12:10:15 2013 +0100 @@ -74,7 +74,7 @@ * * @return the encoded value as an integer */ - Constant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, short speculationId); + Constant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, int speculationId); DeoptimizationReason decodeDeoptReason(Constant constant); diff -r 605c69ce3b35 -r 895f31682b88 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Fri Nov 08 12:04:35 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Fri Nov 08 12:10:15 2013 +0100 @@ -84,10 +84,10 @@ private static final int REASON_SHIFT = 3; private static final int REASON_MASK = 0x1f; private static final int DEBUG_SHIFT = 8; - private static final int DEBUG_MASK = 0xffff; + private static final int DEBUG_MASK = 0x7fffff; @Override - public Constant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, short speculationId) { + public Constant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, int speculationId) { int actionValue = convertDeoptAction(action); int reasonValue = convertDeoptReason(reason); int speculationValue = speculationId & DEBUG_MASK; diff -r 605c69ce3b35 -r 895f31682b88 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Fri Nov 08 12:04:35 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/DeoptimizeNode.java Fri Nov 08 12:10:15 2013 +0100 @@ -31,13 +31,13 @@ private final DeoptimizationAction action; private final DeoptimizationReason reason; - private final short speculationId; + private final int speculationId; public DeoptimizeNode(DeoptimizationAction action, DeoptimizationReason reason) { this(action, reason, (short) 0); } - public DeoptimizeNode(DeoptimizationAction action, DeoptimizationReason reason, short speculationId) { + public DeoptimizeNode(DeoptimizationAction action, DeoptimizationReason reason, int speculationId) { assert action != null; assert reason != null; this.action = action; diff -r 605c69ce3b35 -r 895f31682b88 graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java --- a/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Fri Nov 08 12:04:35 2013 +0100 +++ b/graal/com.oracle.graal.phases.common/src/com/oracle/graal/phases/common/GuardLoweringPhase.java Fri Nov 08 12:10:15 2013 +0100 @@ -154,7 +154,7 @@ StructuredGraph graph = guard.graph(); AbstractBeginNode fastPath = graph.add(new BeginNode()); @SuppressWarnings("deprecation") - DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason(), (short) (useGuardIdAsSpeculationId ? guard.getId() : 0))); + DeoptimizeNode deopt = graph.add(new DeoptimizeNode(guard.action(), guard.reason(), useGuardIdAsSpeculationId ? guard.getId() : 0)); AbstractBeginNode deoptBranch = AbstractBeginNode.begin(deopt); AbstractBeginNode trueSuccessor; AbstractBeginNode falseSuccessor;