Review Request: Zero and Shark fixes
Dr Andrew John Hughes
ahughes at redhat.com
Thu Mar 31 11:24:41 PDT 2011
On 19:20 Thu 31 Mar , Dr Andrew John Hughes wrote:
> 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/
Sorry for the top-post; stupid broken Gmail client... Didn't realise I had
this mail in my RH inbox too.
Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
Support Free Java!
Contribute to GNU Classpath and IcedTea
PGP Key: F5862A37 (https://keys.indymedia.org/)
Fingerprint = EA30 D855 D50F 90CD F54D 0698 0713 C3ED F586 2A37
More information about the hotspot-compiler-dev