RFR: 8000489: older builds of hsdis don't work anymore after 6879063

Yumin Qi yumin.qi at oracle.com
Mon Oct 29 10:35:09 PDT 2012


   I haven't considered new JVM work with old hsdis. Will change 
disassemble.cpp to check:

   first decode_instructions_virtual exists, use it. If not, next check 
if decode_instructions exists, then use it.
As you expected, it will look like

                  /  new hsdis -> decode_instructions -> 
    old VM
                  \  old hsdis  -> decode_instructions

                     /  new hsdis -> decode_instructions_virtual
    new VM
                     \  old hsdis ->   decode_instructions


On 10/29/2012 9:57 AM, John Rose wrote:
> On Oct 25, 2012, at 1:16 PM, Yumin Qi wrote:
>>  To John's question, it doesn't require changes to disassembler.cpp:
>>  new version ---> decode_instructions_virtual
>>  old version   ---> decode_instructions ---> decode_instructions_virtual
>>  tested with b01 (JDK8) with new hsdis-i386.so.
> I think we are aiming to make all four combinations work:  {old JVM , 
> new JVM} x { old hsdis , new hsdis }.
> For this to work, there must be "tolerance" in both the JVM and hsdis 
> for old code.  That's why I was looking for a change to 
> disassembler.cpp, so that old hsdis modules will still work.
> In particular, the older builds of hsdis won't work properly unless 
> the new JVM looks for the old hsdis entry point (if it fails to find 
> the new hsdis entry point, of course).
> Basically, I am expecting that if the new JVM fails to find 
> hsdis`decode_instructions_virtual, it will look for 
> hsdis`decode_instructions instead, and will call that latter function 
> with the (fewer) arguments that it expected.
> Am I missing something here?
> — John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/attachments/20121029/ab018a2e/attachment.html 

More information about the hotspot-compiler-dev mailing list