# HG changeset patch # User Doug Simon # Date 1435589109 -7200 # Node ID 1ca46ed9e31a12c6e2c277ef7cfce5c2e634e066 # Parent 919ea5f6486ac7a3e759d635c1f239f7dc644f8c give error handling code in crypto substitutions a low probability diff -r 919ea5f6486a -r 1ca46ed9e31a graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AESCryptSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AESCryptSubstitutions.java Mon Jun 29 14:22:03 2015 +0200 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/AESCryptSubstitutions.java Mon Jun 29 16:45:09 2015 +0200 @@ -24,11 +24,12 @@ import static com.oracle.graal.hotspot.HotSpotBackend.*; import static com.oracle.graal.hotspot.replacements.HotSpotReplacementsUtil.*; +import static com.oracle.graal.nodes.extended.BranchProbabilityNode.*; import static com.oracle.graal.word.Word.*; +import static jdk.internal.jvmci.code.UnsignedMath.*; import java.lang.reflect.*; -import jdk.internal.jvmci.code.*; import jdk.internal.jvmci.common.*; import jdk.internal.jvmci.meta.*; import sun.misc.*; @@ -92,7 +93,7 @@ * Perform null and array bounds checks for arguments to a cipher operation. */ static void checkArgs(byte[] in, int inOffset, byte[] out, int outOffset) { - if (UnsignedMath.aboveThan(inOffset + AES_BLOCK_SIZE, in.length) || UnsignedMath.aboveThan(outOffset + AES_BLOCK_SIZE, out.length)) { + if (probability(VERY_SLOW_PATH_PROBABILITY, aboveThan(inOffset + AES_BLOCK_SIZE, in.length) || aboveThan(outOffset + AES_BLOCK_SIZE, out.length))) { DeoptimizeNode.deopt(DeoptimizationAction.None, DeoptimizationReason.RuntimeConstraint); } }