Mercurial > hg > graal-compiler
changeset 22530:3f620444d73f
Allow explicit exceptions for arraylength
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Fri, 28 Aug 2015 11:18:35 -0700 |
parents | 8cf9fa4368de |
children | ce2b71115ade |
files | graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java |
diffstat | 2 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Wed Aug 26 15:20:51 2015 -0700 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BciBlockMapping.java Fri Aug 28 11:18:35 2015 -0700 @@ -563,6 +563,7 @@ case BALOAD: case CALOAD: case SALOAD: + case ARRAYLENGTH: case PUTFIELD: case GETFIELD: { ExceptionDispatchBlock handler = handleExceptions(blockMap, bci);
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Wed Aug 26 15:20:51 2015 -0700 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/BytecodeParser.java Fri Aug 28 11:18:35 2015 -0700 @@ -3619,7 +3619,8 @@ } private void genArrayLength() { - frameState.push(Kind.Int, append(genArrayLength(frameState.pop(Kind.Object)))); + ValueNode array = emitExplicitExceptions(frameState.pop(Kind.Object), null); + frameState.push(Kind.Int, append(genArrayLength(array))); } public ResolvedJavaMethod getMethod() {