Review Request: Zero and Shark fixes

Dr Andrew John Hughes gnu_andrew at member.fsf.org
Thu Mar 31 11:20:05 PDT 2011


Errr... what ARM interpreter rewrite?

On 31/03/2011, Gary Benson <gbenson at redhat.com> wrote:
> Dr Andrew John Hughes wrote:
>> On 31/03/2011, Gary Benson <gbenson at redhat.com> wrote:
>> > Ok, I looked a little further into 3.  The root cause was this:
>> >
>> >   changeset: 1611:136b78722a08
>> >   user:      jrose
>> >   date:      Wed Jun 09 18:50:45 2010 -0700
>> >   summary:   6939203: JSR 292 needs method handle constants
>> >
>> > It two new internal instructions, _fast_aldc and _fast_aldc_w, but
>> > it added them *before* _return_register_finalizer, which broke the
>> > instructions table in bytecodeInterpreter.cpp.  It meant that when
>> > the C++ interpreter saw _return_register_finalizer it would
>> > execute opc_default, which should have thrown an error but for the
>> > piece of the ARM interpreter which hid the error by rewriting the
>> > instruction to a plain _return.  I didn't see it before because I
>> > was doing debug builds, and the C++ interpreter only uses the
>> > instructions table for product builds.
>> >
>> > The bottom line is, if you see _fast_aldc in bytecodes.hpp then
>> > Zero won't work correctly without this patch.
>>
>> Ok, that change is in hs19 and thus OpenJDK6 already:
>>
>> $ hg log -R ../../jdk6/hotspot -k 6939203
>> changeset:   1805:136b78722a08
>> parent:      1795:49fac4acd688
>> user:        jrose
>> date:        Wed Jun 09 18:50:45 2010 -0700
>> summary:     6939203: JSR 292 needs method handle constants
>>
>> I'm still wary that the fix is untested, but my main worry (that
>> it fixed a newer change that wasn't in hs20) is alleviated.
>>
>> If Zero is broken without this, it needs to go in the 1.9 (hs19
>> non-default), 1.10 (hs19 default, hs20 non-default) and HEAD (hs20
>> default, hs19 non-default) branches of IcedTea6.
>
> If it really is in there (ie bytecodes.hpp contains _fast_aldc) then
> removing the ARM interpreter rewrite will cause the VM to instantly
> abort.
>
> Removal of the ARM interpreter rewrite is not necessary for this fix
> to work, but it'd be nice if it doesn't break other stuff.  The fact
> this bug has persisted for so long is because the ARM interpreter
> code has hidden it.
>
> Cheers,
> Gary
>
> --
> http://gbenson.net/
>


-- 
Andrew :-)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

Support Free Java!
Contribute to GNU Classpath and the OpenJDK
http://www.gnu.org/software/classpath
http://openjdk.java.net

PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA  7927 142C 2591 94EF D9D8


More information about the hotspot-compiler-dev mailing list