Request for reviews (XL): 6939134: JSR 292 adjustments to method handle invocation
John Rose
john.r.rose at oracle.com
Wed Apr 21 23:03:09 PDT 2010
As suggested, I moved the adapter_conversion_ops_supported_mask into methodHandles_<arch>.cpp.
Christian, I have you down as a reviewer. Let me know if you want me to adjust it in any way to prepare for your changes. For example, I could split the methodHandles_<arch>.hpp files so you don't have to put sparc-specific stuff into methodHandles.hpp.
And, if there are no more comments on this change, I'll push it.
-- John
On Apr 7, 2010, at 6:28 AM, Christian Thalinger wrote:
> On Tue, 2010-04-06 at 11:16 -0700, John Rose wrote:
>> On Apr 6, 2010, at 8:41 AM, Christian Thalinger wrote:
>>
>>> On Wed, 2010-03-31 at 12:46 -0700, John Rose wrote:
>>>> Christian's comments, plus the move mentioned below, are incorporated in the updated webrev:
>>>> http://cr.openjdk.java.net/~jrose/6939134/hs-webrev.01
>>>
>>> I guess we also need a SPARC version of
>>> MethodHandles::adapter_conversion_ops_supported_mask. Should we add
>>> that one here or with one of my SPARC changes?
>>
>> Whichever way makes sense to you is fine with me. I suggest you merge
>> the SPARC support with my changes, and if there is something (like the
>> mask) which belongs in my changes, send me a diff and I'll add it in.
>
> It seems only the following one is required. I pushed the SPARC C1 and
> C2 patches to the MLVM repository today so you can also give it a try.
>
> diff --git a/src/cpu/sparc/vm/methodHandles_sparc.cpp b/src/cpu/sparc/vm/methodHandles_sparc.cpp
> --- a/src/cpu/sparc/vm/methodHandles_sparc.cpp
> +++ b/src/cpu/sparc/vm/methodHandles_sparc.cpp
> @@ -289,6 +289,23 @@
> #endif // PRODUCT
>
>
> +// which conversion op types are implemented here?
> +int MethodHandles::adapter_conversion_ops_supported_mask() {
> + return ((1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_ONLY)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_RETYPE_RAW)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_CHECK_CAST)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_PRIM_TO_PRIM)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_REF_TO_PRIM)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_SWAP_ARGS)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_ROT_ARGS)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_DUP_ARGS)
> + |(1<<sun_dyn_AdapterMethodHandle::OP_DROP_ARGS)
> + //|(1<<sun_dyn_AdapterMethodHandle::OP_SPREAD_ARGS) //BUG!
> + );
> + // FIXME: MethodHandlesTest gets a crash if we enable OP_SPREAD_ARGS.
> +}
> +
> +
> //------------------------------------------------------------------------------
> // MethodHandles::generate_method_handle_stub
> //
>
>
More information about the hotspot-compiler-dev
mailing list