Hotspot Zero patch for invokedynamic
David Holmes
david.holmes at oracle.com
Tue May 8 18:00:27 PDT 2012
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