harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexei Fedotov" <alexei.fedo...@gmail.com>
Subject Re: [verifier] question about RI behavior
Date Tue, 20 Mar 2007 11:32:51 GMT
Hello,
Mikhail, Egor, Pavel,

Thank you for sharing your opinions. This really helps to keep things
in order. BTW, I never tried to use J9 as RI for a verifier, and this
is a good idea indeed.

With best wishes, Alexei

On 3/19/07, Pavel Ozhdikhin <pavel.ozhdikhin@gmail.com> wrote:
> On 3/19/07, Mikhail Loenko <mloenko@gmail.com> wrote:
> >
> > I tried it.
> >
> > JRockit prints the same error as RI, but J9 digests it fine.
> > Harmony JIT fires an assertion.
> >
> > Hi JIT folks, would you share your vision whether this class correct or
> > not?
>
>
>
>  To my best knowledge the test does not violate the VM spec.
>
> It looks like we have a bug in Jitrino.JET which fails to compile this test.
> Jitrino.OPT and interpreter successfully pass it.
>
> If RI has a bug in their verifier then the DRLVM is "allowed" to have this
> bug in the verifier as well. :) However, if we use '-noverify' option RI
> passes the test, so we still need to fix Jitrino.JET to avoid the crash.
>
> Thank you,
> Pavel
>
>
> Thanks,
> > Mikhail
> >
> > 2007/3/19, Mikhail Loenko <mloenko@gmail.com>:
> > > 16 Mar 2007 16:05:18 +0300, Egor Pasko <egor.pasko@gmail.com>:
> > > > On the 0x29B day of Apache Harmony Alexei Fedotov wrote:
> > > > > Mikhail, folks,
> > > > > Let me attract a collective Harmony brain to the problem. Does
> > anyone
> > > > > have any idea why the following code doesn't pass verification on
> > RI?
> > > >
> > > > looks like a bug :)
> > >
> > > Agreed
> > >
> > > BTW, how other VMs behave? JRockit, J9?
> > >
> > > Thanks,
> > > Mikhail
> > >
> > > >
> > > > > Thanks, Alexei
> > > > >
> > > > > .class public SubSub
> > > > > .super java/lang/Object
> > > > > .method public <init>()V
> > > > >     aload_0
> > > > >     invokespecial java/lang/Object/<init>()V
> > > > >     return
> > > > > .end method
> > > > >
> > > > > ;
> > > > > ; Subroutine is called from the other subroutine and
> > > > > ; from the top level code.
> > > > > ;
> > > > > .method public static main([Ljava/lang/String;)V
> > > > >     .limit stack 1
> > > > >     .limit locals 2
> > > > >
> > > > >     jsr LabelSub
> > > > >     jsr LabelSubSub
> > > > >     return
> > > > > LabelSub:
> > > > >     astore 1
> > > > >     jsr LabelSubSub
> > > > >     ret 1
> > > > > LabelSubSub:
> > > > >     astore 0
> > > > >     ret 0
> > > > > .end method
> > > > >
> > > > >
> > > > > $ java -jar c:/bin/jasmin-1.1/jasmin.jar SubSub.jj
> > > > > Generated: SubSub.class
> > > > > $ java -cp . SubSub
> > > > > java.lang.VerifyError: (class: SubSub, method: testSubSub signature:
> > > > > ()V) Illegal return from subroutine
> > > > > $
> > > > >
> > > > >
> > > > > --
> > > > > With best regards,
> > > > > Alexei,
> > > > > ESSD, Intel
> > > > >
> > > >
> > > > --
> > > > Egor Pasko
> > > >
> > > >
> > >
> >
>


-- 
With best regards,
Alexei,
ESSD, Intel

Mime
View raw message