Mercurial > hg > graal-jvmci-8
changeset 18523:57880e95102e
avoid initialization order issues when asserting array scale index invariants
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 26 Nov 2014 11:29:24 +0100 |
parents | 2fa2460f99b3 |
children | c538c2c6b7e2 99e5d0a7600e |
files | graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotGraalRuntime.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/replacements/HotSpotReplacementsUtil.java |
diffstat | 2 files changed, 14 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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());