You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Aleksey Shipilev (JIRA)" <ji...@apache.org> on 2007/08/31 17:22:32 UTC
[jira] Updated: (HARMONY-4714) [drlvm][jni] JNI transition check
exceptions twice
[ https://issues.apache.org/jira/browse/HARMONY-4714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Aleksey Shipilev updated HARMONY-4714:
--------------------------------------
Attachment: HARMONY-4714.patch
Clean patch, still not optimal
> [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
> Attachments: HARMONY-4714-dirty.patch, HARMONY-4714.patch
>
>
> 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,
> "l0=ts;"
> "ld l2,[l0+%0i:ref];"
> "jc l2!=0,_exn_raised;"
> "ld l2,[l0+%1i:ref];"
> "jc l2=0,_no_exn;"
> ":_exn_raised;"
> "m2n_save_all;"
> "out platform::void;"
> "call.noret %2i;"
> ":_no_exn;",
> eoo, eco, exn_rethrow);
> assert(cs);
> 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() {
> assert(!hythread_is_suspend_enabled());
> // AGAIN!
> if (exn_raised()) {
> exn_rethrow();
> }
> M2nFrame * m2n = m2n_get_last_frame();
> free_local_object_handles3(m2n->local_object_handles);
> }
> 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.