Missing invokehandle handling in bytecodeInterpreter.cpp
Christian Thalinger
christian.thalinger at oracle.com
Wed Aug 8 14:04:05 PDT 2012
On Aug 7, 2012, at 3:19 PM, Roman Kennke wrote:
> Am Donnerstag, den 02.08.2012, 12:55 +0200 schrieb Roman Kennke:
>>>> Am Dienstag, den 31.07.2012, 17:28 -0700 schrieb Christian Thalinger:
>>>>> On Jul 31, 2012, at 8:24 AM, Roman Kennke wrote:
>>>>>
>>>>>> Am Dienstag, den 31.07.2012, 14:19 +0200 schrieb Roman Kennke:
>>>>>>> Hi there,
>>>>>>>
>>>>>>> I am currently (trying to) get the Hotspot-Zero port in shape for MLVM.
>>>>>>> I am running into a road block here:
>>>>>>>
>>>>>>> # Internal Error
>>>>>>> (/home/rkennke/src/openjdk/hotspot-comp/hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp:2464), pid=18585, tid=140737337317120
>>>>>>> # fatal error: Unimplemented opcode 232 = invokehandle
>>>>>>>
>>>>>>> Looking at bytecodeInterpreter.cpp it seem to simply not handle
>>>>>>> invokehandle. I would like to add this, but I don't know what exactly
>>>>>>> this bytecode is supposed to do. Could you give me pointers to the
>>>>>>> necessary information or provide some help with this? (Or maybe I am
>>>>>>> doing something wrong here, and should not arrive there at all?)
>>>>>>
>>>>>> I disabled the invokevirtual->invokehandle rewriting for now (this
>>>>>> should be safe/correct, right?), and it brings me further into my
>>>>>> unimplemented handler for vmIntrinsics::_invokeBasic. Need to figure out
>>>>>> what this is supposed to do (any hints about this one?)..
>>>>>
>>>>> You can't disable the rewriting and run JSR 292 code. That simply won't work. Look at one of the implementations of TemplateTable::_invokehandle and try to do the same in the C++ interpreter.
>>>>>
>>>>> -- Chris
>>
>> Ok, I think I made some progress, but now got stuck again.
>
> Alright, I think I figured everything out. Implemented interpreter
> bytecode handler for invokehandle and basically rewrote the
> invokedynamic handler, and implemented the intrinsics for invokeBasic,
> linkToStatic, linkToSpecial, linkToVirtual and linkToInterface and it
> works (i.e. passes jtreg testcases for java/lang/invoke). I will make
> the code available soon (as soon as it's cleaned up, probably after my
> vacation, last week of August).
That's great! Sorry I couldn't reply.
-- Chris
>
> Cheers,
> Roman
>
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
More information about the mlvm-dev
mailing list