Review Request: Zero JSR 292 support

Christian Thalinger christian.thalinger at oracle.com
Tue Apr 12 02:31:20 PDT 2011


On Apr 11, 2011, at 7:47 PM, Christian Thalinger wrote:
> On Apr 11, 2011, at 3:16 PM, Gary Benson wrote:
>> Christian Thalinger wrote:
>>> On Apr 5, 2011, at 3:46 PM, Gary Benson wrote:
>>>> Christian Thalinger wrote:
>>>>> On Apr 4, 2011, at 10:34 AM, Gary Benson wrote:
>>>>>> John Rose wrote:
>>>>>>> On Apr 1, 2011, at 7:33 AM, Gary Benson wrote:
>>>>>>>> This webrev adds support for JSR 292 to Zero:
>>>>>>>> 
>>>>>>>> http://cr.openjdk.java.net/~gbenson/zero-jsr292-01/
>>>>>>> 
>>>>>>> Most impressive!  I think this matches the following
>>>>>>> previously filed bug:
>>>>>>> 
>>>>>>> 6829195  JSR 292 needs to support the C++ interpreter
>>>>>> 
>>>>>> Partially, yes, in that it implements invokedynamic and
>>>>>> fast_aldc* in the bytecode interpreter.  For the sparc or x86
>>>>>> ports you would also need to write the method handle entries
>>>>>> and add frame manager support for the call_method_handle
>>>>>> message.
>>>>> 
>>>>> How much work would that be?
>>>> 
>>>> I'm not sure.  Actually, thinking about it, the method handle
>>>> entries are already there (the template and C++ interpreters have
>>>> the same ABI, no?)  You could check by trying to run the method
>>>> handles tests.  If that's the case, the only extra bit is adding
>>>> support for call_method_handle.  There's a potential trap,
>>>> however, in that the calls to
>>>> InterpreterRuntime::resolve_invokedynamic and
>>>> InterpreterRuntime::resolve_ldc from BytecodeInterpreter::run
>>>> enter VM mode and end up reentering the C++ interpreter.  I don't
>>>> know that the assembly language ports can handle this.  They're
>>>> certainly written to avoid it, but that might be simply because
>>>> BytecodeInterpreter::run has a huge stack frame and they didn't
>>>> want too many of those on the stack.  If it is a problem I have
>>>> some partially written code that would work around this but once
>>>> I realised Zero didn't need it I stopped working on it.
>>> 
>>> I'm not exactly sure how to proceed here.  Should we try to
>>> implement the missing parts of 6829195 or should we file a
>>> separate bug for Zero and push this?
>> 
>> I wouldn't want to make direct x86 and sparc support for this
>> a prerequisite for the Zero code going in.  If it's possible to
>> commit as a partial fix for 6829195 then we could do that, but
>> if partial fixes aren't possible then maybe make a new bug and
>> do it that way.
> 
> Partial fixes are not possible, we need a new CR for that.   I will take care of it tomorrow.

7035870: JSR 292: Zero support

-- Christian


More information about the mlvm-dev mailing list