RFR (S) : 8025260 : Methodhandles/JSR292: NullPointerException (NPE) thrown instead of AbstractMethodError (AME)

David Chase david.r.chase at oracle.com
Thu Sep 26 17:42:19 PDT 2013

updated webrev: http://cr.openjdk.java.net/~drchase/8025260/webrev.01/

pseudocode provided,
indentation corrected,
sparc code rearranged,
labels renamed (on Sparc and x86)

Retested in Sparc and x86, including -Xcomp and -Xint .


On 2013-09-26, at 4:48 PM, John Rose <john.r.rose at oracle.com> wrote:

> On Sep 26, 2013, at 12:22 PM, David Chase <david.r.chase at oracle.com> wrote:
>> On 2013-09-26, at 2:30 PM, John Rose <john.r.rose at oracle.com> wrote:
>>> That is, push the compare-null-and-branch code into this conditional:
>>> if (!for_compiler_entry && JvmtiExport::can_post_interpreter_events()) {
>>> The goal here is that vanilla compiled code should have a fast path that is as compact as possible.  Interpreted or "VerifyThread" code does not need to be compact.
>> That is, you want two copies of the test, one for the compiled case that is short, the other for the interpreted case that is potentially longer (and more general purpose) -- but this is a sparc-only issue, on Intel, branches is branches?
> You had to ask!  Actually, x86 has jccb which is slightly preferable when it applies.  (The short branches on sparc are, I think, provide relatively more benefit on that CPU.)
> Note that verify_method_pointer might some day expand to lots of code, which will break jccb.  It is good to use jccb when possible; the cost of this is to watch carefully what you are jumping over, and avoid the optimization when "verify" stuff gets in the way.  I would give it a try, but it's optional.
> — John

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20130926/5bec096d/signature.asc 

More information about the hotspot-compiler-dev mailing list