[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Question about RetStmt




Hi there,

I have sent a mail about Jimple's "RetStmt" two monthes ago. known 
that it is no longer used in Jimple, I neglect it in my program. 
However today, I do find an instance of RetStmt, which caused my 
program crashed. Is there anything I should be aware about RetStmt?
Thanks.



Appendix:


The original JAVA method:   (part of Scene.java in JVM98 benchmark)
---------------------------------------------------------------------------------
    private int LoadScene(String filename) {
	synchronized(syncObject) { 
	    return LoadSceneOrig(filename);    
	}
    }
---------------------------------------------------------------------------------



The translated Jimple code (incorporating a RetStmt):
---------------------------------------------------------------------------------
    private int LoadScene(java.lang.String)
    {
        address a0;
        java.lang.Throwable r4;
        spec.benchmarks._205_raytrace.Scene r0;
        int i1, i0;
        java.lang.String r3, r2, r1;

        r0 := @this;
        r3 := @parameter0;
        r2 =
[spec.benchmarks._205_raytrace.Scene.syncObject:java.lang.String];
        r1 = r2;
        entermonitor r2;

     label0:
        i1 = specialinvoke
r0.[spec.benchmarks._205_raytrace.Scene.LoadSceneOrig(java.lang.String):int](r3);
        i0 = i1;
        a0 = &nextnextstmt;
        goto label2;

        return i0;

     label1:
        r4 := @caughtexception;
        exitmonitor r1;
        throw r4;

     label2:
        exitmonitor r1;
        ret a0;

        .catch java.lang.Throwable from label0 to label1 with label1
    }
---------------------------------------------------------------------------------