Hotspot Zero patch for invokedynamic

David Holmes david.holmes at oracle.com
Wed May 9 15:39:46 PDT 2012


This has now been pushed to hs24 (for JDK8) and hs23.2 (for 7u).

David

On 9/05/2012 8:18 PM, Chris Phillips @ T O wrote:
> Hi David,
> Looks OK to me...
> I think it should go into 7u also.
>
> Cheers!
> Chris
>
> On 09/05/12 12:35 AM, David Holmes wrote:
>> 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