ARM: JSR 292 MethodHandle support

Andrew Haley aph at redhat.com
Wed Apr 11 06:13:50 PDT 2012


On 04/11/2012 01:16 PM, Andrew Dinn wrote:

>   * cppInterpreter_arm.S line 3141 (of patched file)
> 
>      ldr     r0, [r8, #ISTATE_THREAD]
> 
> should be
> 
>      ldr     r0, [istate, #ISTATE_THREAD]

OK.

>   * cppInterpreter_arm.S line 3099 (of patched file)
> 
>      bl      _ZN14CppInterpreter21process_method_handleEP7oopDescP6Thread
> 
> this is not strictly an API method of CppInterpreter but it is unlikely 
> to disappear so it is probably ok to co-opt it

CppInterpreter_arm.S is really part of CppInterpreter; it's not
unreasonable to use internal methods.

>   * cppInterpreter_arm.S line 3155 (of patched file)
> 
>      // Common code for fast_aldc_w and fast_aldc_w
> 
> this should read
> 
>      // Common code for fast_aldc and fast_aldc_w

OK.

>   * thumb2.cpp line 6587 (of patched file)
> 
> the JITted code for invokedynamic just calls out to the interpreter
> 
>    Thumb2_Exit(jinfo, H_EXIT_TO_INTERPRETER, bci, stackdepth)
> 
> This means the VM interprets the current method from this point on. so 
> it might be worth revising this later to do the work in JITted code and 
> allow JIT execution to continue.

Definitely.

> Build Problems
> --------------
> 
>   * cppInterpreter_arm.S line 3087 (of patched file)
> 
> This line was originally provided as
> 
>      bl     _ZN25java_lang_invoke_CallSite22target_offset_in_bytesEv
> 
> However, this failed to compile -- I think because 
> java_lang_invoke_CallSite::target_offset_in_bytes() is defined inline in 
> a header file and the compiler did not generate an out of line callable 
> function.
> 
> This was fixed by Andrew Haley by defining a wrapper function 
> Helper_target_offset_in_bytes in asm_helper.c and calling the wrapper 
> from the asm
> 
>     bl      Helper_target_offset_in_bytes

OK, applied.

None of the other problems are anything to do with this patch, so
we should handle them separately.

Andrew.



More information about the distro-pkg-dev mailing list