Mercurial > hg > graal-compiler
changeset 2669:405e7947a940
Fixed RegisterFinalizer stateBefore.
author | Thomas Wuerthinger <thomas@wuerthinger.net> |
---|---|
date | Thu, 12 May 2011 16:55:03 +0200 |
parents | 440ceca8e3d7 |
children | 50b181d88c9f |
files | graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java |
diffstat | 2 files changed, 4 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Wed May 11 18:16:01 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/gen/LIRGenerator.java Thu May 12 16:55:03 2011 +0200 @@ -994,18 +994,10 @@ return operand; } - private FrameState stateBeforeRegisterFinalizer(RegisterFinalizer rf) { - Value object = rf.object(); - FrameStateBuilder builder = new FrameStateBuilder(compilation.method, rf.graph()); - builder.initializeFrom(rf.stateAfter()); - builder.push(object.kind, object); - return builder.create(rf.bci()); - } - @Override public void visitRegisterFinalizer(RegisterFinalizer x) { CiValue receiver = load(x.object()); - LIRDebugInfo info = stateFor(x, stateBeforeRegisterFinalizer(x)); + LIRDebugInfo info = stateFor(x, x.stateBefore()); callRuntime(CiRuntimeCall.RegisterFinalizer, info, receiver); setNoResult(x); }
--- a/graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java Wed May 11 18:16:01 2011 +0200 +++ b/graal/GraalCompiler/src/com/sun/c1x/graph/GraphBuilder.java Thu May 12 16:55:03 2011 +0200 @@ -812,7 +812,9 @@ if (needsCheck) { // append a call to the finalizer registration - append(new RegisterFinalizer(frameState.loadLocal(0), graph)); + RegisterFinalizer r = new RegisterFinalizer(frameState.loadLocal(0), graph); + append(r); + r.setStateBefore(frameState.create(bci())); C1XMetrics.InlinedFinalizerChecks++; } }