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
> 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.
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
Support Free Java!
Contribute to GNU Classpath and the OpenJDK
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