Hotspot Zero patch for invokedynamic

David Holmes david.holmes at oracle.com
Tue May 8 21:35:07 PDT 2012


Andrew, Chris,

Can you please check:

http://cr.openjdk.java.net/~dholmes/7167406/webrev/

and confirm the attribution is correct. If so I will submit this to JPRT.

Does this need to go into the 7u train as well?

David

On 9/05/2012 1:30 PM, Chris Phillips @ T O wrote:
> Hi David,
>
> Yes, I have reviewed and applied it. Its OK for Zero, it fixes problems
> encountered in JSR 292 testing.
>
> Cheers!
> Chris
>
>
> On 08/05/12 09:00 PM, David Holmes wrote:
>> Hi Andrew,
>>
>> Is there some other Zero developer who can act as reviewer for this?
>> Preferably someone with an OpenJDK username so it can be recorded in
>> the changeset.
>>
>> Thanks,
>> David
>>
>> On 9/05/2012 1:08 AM, Andrew Dinn wrote:
>>> Enclosed below are details of a patch to the hsx/hotspot-main tree. The
>>> patch fixes some errors which manifested in the Zero ARM code when
>>> running the TCK tests which exercise method handles. This patch has
>>> already been applied to the iced tea 7-2.1 hotspot hg repository and
>>> found to correct the errors when retested on ARM. However, since the
>>> changes actually apply to Zero code (none of which is not ARM-specific)
>>> I think it really ought to be included in the hotspot tree.
>>>
>>> I would be grateful if someone would agree to sponsor this patch for
>>> inclusion into the relevant hotspot repo(s).
>>>
>>> n.b. I originally posted this last week with a full webrev attached but
>>> the note was held (for all I know still may be held) awaiting moderation
>>> because of the size of the attachment. I will happily forward the webrev
>>> to whoever is willing to sponsor this patch.
>>>
>>> regards,
>>>
>>>
>>> Andrew Dinn
>>> -----------
>>> Principal Software Engineer
>>> Red Hat UK Ltd
>>> Registered in UK and Wales under Company Registration No. 3798903
>>> Directors: Michael Cunningham (USA), Mark Hegarty (Ireland), Matt Parson
>>> (USA), Charlie Peters (USA)
>>>
>>> index.html
>>> ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
>>> Code Review for hotspot
>>> Prepared by: "Andrew Dinn " on Fri May 4 17:40:58 BST 2012
>>> Workspace: /ssd/home/adinn/redhat/openjdk/hsx/hotspot-main/hotspot
>>> Compare against: http://hg.openjdk.java.net/hsx/hotspot-main//hotspot
>>> Compare against version: 3292
>>> Summary of changes: 19 lines changed: 19 ins; 0 del; 0 mod; 1565 unchg
>>> Patch of changes: hotspot.patch
>>> ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
>>> hotspot.patch:
>>> ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
>>> --- old/src/cpu/zero/vm/cppInterpreter_zero.cpp 2012-05-04
>>> 17:40:57.837805644 +0100
>>> +++ new/src/cpu/zero/vm/cppInterpreter_zero.cpp 2012-05-04
>>> 17:40:57.756806657 +0100
>>> @@ -1026,6 +1026,16 @@
>>> java_lang_invoke_AdapterMethodHandle::vmargslot(method_handle);
>>> oop arg = VMSLOTS_OBJECT(arg_slot);
>>> jvalue arg_value;
>>> + if (arg == NULL) {
>>> + // queue a nullpointer exception for the caller
>>> + stack->set_sp(calculate_unwind_sp(stack, method_handle));
>>> + CALL_VM_NOCHECK_NOFIX(
>>> + throw_exception(
>>> + thread, vmSymbols::java_lang_NullPointerException()));
>>> + // NB all oops trashed!
>>> + assert(HAS_PENDING_EXCEPTION, "should do");
>>> + return;
>>> + }
>>> BasicType arg_type = java_lang_boxing_object::get_value(arg,
>>> &arg_value);
>>> if (arg_type == T_LONG || arg_type == T_DOUBLE) {
>>> intptr_t *unwind_sp = calculate_unwind_sp(stack, method_handle);
>>> @@ -1112,6 +1122,15 @@
>>> case T_SHORT:
>>> return;
>>> }
>>> + // INT results sometimes need narrowing
>>> + case T_BOOLEAN:
>>> + case T_CHAR:
>>> + case T_BYTE:
>>> + case T_SHORT:
>>> + switch (src_rtype) {
>>> + case T_INT:
>>> + return;
>>> + }
>>> }
>>>
>>> tty->print_cr("unhandled conversion:");
>>> ----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
>>
>>
>


More information about the hotspot-dev mailing list