harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Aleksey Shipilev (JIRA)" <j...@apache.org>
Subject [jira] Created: (HARMONY-4714) [drlvm][jni] JNI transition check exceptions twice
Date Fri, 31 Aug 2007 15:20:30 GMT
[drlvm][jni] JNI transition check exceptions twice

                 Key: HARMONY-4714
                 URL: https://issues.apache.org/jira/browse/HARMONY-4714
             Project: Harmony
          Issue Type: Improvement
            Reporter: Aleksey Shipilev

During JNI transition the exception flags are checked twice.

1. One check is generated in JNI lil stub (vm/vmcore/src/jit/compile.cpp:675)

    //***** Part 11: Rethrow exception
    cs = lil_parse_onto_end(cs,
                            "ld l2,[l0+%0i:ref];"
                            "jc l2!=0,_exn_raised;"
                            "ld l2,[l0+%1i:ref];"
                            "jc l2=0,_no_exn;"
                            "out platform::void;"
                            "call.noret %2i;"
                            eoo, eco, exn_rethrow);

 2. Second check is done during pop_m2n frame generation: (ex.: vm/port/src/lil/ia32/pim/m2n_ia32.cpp:259)

 static void m2n_free_local_handles() {

    // AGAIN!
    if (exn_raised()) {

    M2nFrame * m2n = m2n_get_last_frame();

So, we might throw away the exception handling from JNI lil stub, as far push_m2n is made
always during JNI transition. Much more effective is to throw away blocks from m2n_free_local_handles
and m2n_pop_local_handles, but that could affect compatibility across the m2n calls.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message