# HG changeset patch # User Doug Simon # Date 1416997764 -3600 # Node ID 57880e95102e8e57b8559f584a2a7bef2ef62109 # Parent 2fa2460f99b38aa36bef30a1dee5c155a430cc97 avoid initialization order issues when asserting array scale index invariants diff -r 2fa2460f99b3 -r 57880e95102e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Wed Nov 26 10:26:24 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java Wed Nov 26 11:29:24 2014 +0100 @@ -154,9 +154,23 @@ BenchmarkCounters.initialize(toVM); + assert checkArrayIndexScaleInvariants(); + runtimeStartTime = System.nanoTime(); } + private boolean checkArrayIndexScaleInvariants() { + assert getArrayIndexScale(Kind.Byte) == 1; + assert getArrayIndexScale(Kind.Boolean) == 1; + assert getArrayIndexScale(Kind.Char) == 2; + assert getArrayIndexScale(Kind.Short) == 2; + assert getArrayIndexScale(Kind.Int) == 4; + assert getArrayIndexScale(Kind.Long) == 8; + assert getArrayIndexScale(Kind.Float) == 4; + assert getArrayIndexScale(Kind.Double) == 8; + return true; + } + public static class Options { // @formatter:off diff -r 2fa2460f99b3 -r 57880e95102e graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java Wed Nov 26 10:26:24 2014 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java Wed Nov 26 11:29:24 2014 +0100 @@ -788,17 +788,6 @@ return config().layoutHelperElementTypePrimitiveInPlace(); } - static { - assert arrayIndexScale(Kind.Byte) == 1; - assert arrayIndexScale(Kind.Boolean) == 1; - assert arrayIndexScale(Kind.Char) == 2; - assert arrayIndexScale(Kind.Short) == 2; - assert arrayIndexScale(Kind.Int) == 4; - assert arrayIndexScale(Kind.Long) == 8; - assert arrayIndexScale(Kind.Float) == 4; - assert arrayIndexScale(Kind.Double) == 8; - } - static int computeHashCode(Object x) { Word mark = loadWordFromObject(x, markOffset());