Mercurial > hg > graal-jvmci-8
changeset 23990:2e9d95cef56b
Replaced Array.get(...) with manually inlined code.
author | Christian Haeubl <christian.haeubl@oracle.com> |
---|---|
date | Fri, 27 Jan 2017 11:29:16 +0100 |
parents | 115d4e0d7b87 |
children | 4913d70f630b |
files | jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java |
diffstat | 1 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Thu Jan 26 13:02:37 2017 +0100 +++ b/jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java Fri Jan 27 11:29:16 2017 +0100 @@ -98,7 +98,25 @@ Object element = ((Object[]) a)[index]; return HotSpotObjectConstantImpl.forObject(element); } else { - return JavaConstant.forBoxedPrimitive(Array.get(a, index)); + if (a instanceof int[]) { + return JavaConstant.forInt(((int[]) a)[index]); + } else if (a instanceof char[]) { + return JavaConstant.forChar(((char[]) a)[index]); + } else if (a instanceof byte[]) { + return JavaConstant.forByte(((byte[]) a)[index]); + } else if (a instanceof long[]) { + return JavaConstant.forLong(((long[]) a)[index]); + } else if (a instanceof short[]) { + return JavaConstant.forShort(((short[]) a)[index]); + } else if (a instanceof float[]) { + return JavaConstant.forFloat(((float[]) a)[index]); + } else if (a instanceof double[]) { + return JavaConstant.forDouble(((double[]) a)[index]); + } else if (a instanceof boolean[]) { + return JavaConstant.forBoolean(((boolean[]) a)[index]); + } else { + throw new JVMCIError("Should not reach here"); + } } }