# HG changeset patch # User Gilles Duboscq # Date 1383904817 -3600 # Node ID dd856c84a75c38edee5c0c3e17d146e1b80f2c9b # Parent c6b7f982e949f0e15257122603144b8d4a9f7a7d Mask the speculation id correctly in HotSpotMetaAccessProvider.encodeDeoptActionAndReason diff -r c6b7f982e949 -r dd856c84a75c 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 11:12:20 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/meta/HotSpotMetaAccessProvider.java Fri Nov 08 11:00:17 2013 +0100 @@ -90,7 +90,9 @@ public Constant encodeDeoptActionAndReason(DeoptimizationAction action, DeoptimizationReason reason, short speculationId) { int actionValue = convertDeoptAction(action); int reasonValue = convertDeoptReason(reason); - Constant c = Constant.forInt(~((speculationId << DEBUG_SHIFT) | (reasonValue << REASON_SHIFT) | (actionValue << ACTION_SHIFT))); + int speculationValue = speculationId & DEBUG_MASK; + Constant c = Constant.forInt(~((speculationValue << DEBUG_SHIFT) | (reasonValue << REASON_SHIFT) | (actionValue << ACTION_SHIFT))); + assert c.asInt() < 0; return c; }