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