I sounds like auto detection is failing again, override it: --noenable-mls should do it.
I can't push a patch right now so keep reporting any issues. Thanks, Rodolph. On 22 July 2014 15:08, Dirk Grabbert <dirk.grabb...@gmail.com> wrote: > Ok, I'm able to start the example shell right now. But I got the next > problem. > > Trying to run a js-script brings up an illegal instruction caused by > "mls". I think it's generated by the JIT, right? > > The script I'm trying to run is a "port" of the dhrystone test (source: > http://jsperf.com/pystone-js): > > var LOOPS = 500000; > > var Ident1 = 1, > Ident2 = 2, > Ident3 = 3, > Ident4 = 4, > Ident5 = 5; > > var TRUE = 1, > FALSE = 0; > > var IntGlob = 0; > var BoolGlob = FALSE; > var Char1Glob = '\0'; > var Char2Glob = '\0'; > var Array1Glob = new Array(51); > > for (var i = 0; i < Array1Glob.length; ++i) { > Array1Glob[i] = 0 > } > > var Array2Glob = Array1Glob.map(function(n) { > return Array1Glob.slice(); > }); > > var PtrGlb = null; > var PtrGlbNext = null; > > var strings = { > someString:"DHRYSTONE PROGRAM, SOME STRING", > fstString:"DHRYSTONE PROGRAM, 1'ST STRING", > sndString:"DHRYSTONE PROGRAM, 2'ND STRING" > }; > > function main(){ > Proc0(); > } > > function Record(PtrComp, Discr, EnumComp, IntComp, StringComp) { > this.PtrComp = PtrComp || null; > this.Discr = Discr || 0; > this.EnumComp = EnumComp || 0; > this.IntComp = IntComp || 0; > this.StringComp = StringComp || 0; > } > > function structassign(d,s){ > d.PtrComp = s.PtrComp; > d.Discr = s.Discr; > d.EnumComp = s.EnumComp; > d.IntComp = s.IntComp; > d.StringComp = s.StringComp; > } > > function clock(){ > return new Date().valueOf() / 1000.0 > } > > function Proc0(){ > var CharIndex; > var starttime, benchtime, nulltime; > > var starttime = clock(); > for(var i = 0; i < LOOPS; ++i); > nulltime = clock() - starttime; > > PtrGlbNext = new Record(); > PtrGlb = new Record(); > PtrGlb.PtrComp = PtrGlbNext; > PtrGlb.Discr = Ident1; > PtrGlb.EnumComp = Ident3; > PtrGlb.IntComp = 40; > PtrGlb.StringComp = "DHRYSTONE PROGRAM, SOME STRING"; // im Original wird > hier ein strcpy angewandt > var String1Loc = "DHRYSTONE PROGRAM, 1'ST STRING"; > > Array2Glob[8][7] = 10; > > /* start timer */ > starttime = clock(); > for(var i = 0; i < LOOPS; ++i){ > Proc5(); > Proc4(); > IntLoc1 = 2; > IntLoc2 = 3; > var String2Loc = "DHRYSTONE PROGRAM, 2'ND STRING"; // im Original wird > hier ein strcpy angewandt > var EnumLoc = Ident2; > BoolGlob = !Func2(String1Loc, String2Loc); > > while(IntLoc1 < IntLoc2){ > IntLoc3 = 5 * IntLoc1 - IntLoc2; > Proc7(IntLoc1, IntLoc2, IntLoc3); > ++IntLoc1; > } > > Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3); > Proc1(PtrGlb); > > for (CharIndex = 'A'; CharIndex <= Char2Glob; CharIndex = > String.fromCharCode(CharIndex.charCodeAt(0) + 1)){ // string to int to > string convertion required by js > if (EnumLoc == Func1(CharIndex, 'C')) > EnumLoc = Proc6(Ident1); > } > > IntLoc3 = IntLoc2 * IntLoc1; > IntLoc2 = IntLoc3 / IntLoc1; > IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1; > IntLoc1 = Proc2(IntLoc1); // nicht by-reference ? > } > > benchtime = clock() - starttime - nulltime; > print("JsPystone() time for " + LOOPS + " passes = " + benchtime); > print("This machine benchmarks at " + (LOOPS / benchtime) + " > pystones/second"); > // console.log("JsPystone() time for " + LOOPS + " passes = " + > benchtime); > // console.log("This machine benchmarks at " + (LOOPS / benchtime) + " > pystones/second"); > } > > function Proc1(PtrParIn){ > var NextRecord = PtrParIn.PtrComp; > > structassign(NextRecord, PtrGlb); > PtrParIn.IntComp = 5; > NextRecord.IntComp = PtrParIn.IntComp; > NextRecord.PtrComp = PtrParIn.PtrComp; > Proc3(NextRecord.PtrComp); > > if(NextRecord.PtrComp == Ident1){ > NextRecord.IntComp = 6; > NextRecord.EnumComp = Proc6(PtrParIn.EnumComp); > NextRecord.PtrComp = PtrGlb.PtrComp; > NextRecord.IntComp = Proc7(NextRecord.IntComp, 10); > } else structassign(PtrParIn, NextRecord); > > NextRecord.PtrComp = null; > > return PtrParIn; > } > > function Proc2(IntParIO){ > var IntLoc, EnumLoc; > > IntLoc = IntParIO + 10; > for(;;){ > if (Char1Glob == 'A'){ > --IntLoc; > IntParIO = IntLoc - IntGlob; > EnumLoc = Ident1; > } > if (EnumLoc == Ident1) > break; > } > } > > function Proc3(PtrParOut){ > if (PtrGlb !== null) { > PtrParOut = PtrGlb.PtrComp; > } else { > IntGlob = 100; > } > PtrGlb.IntComp = Proc7(10, IntGlob); > return PtrParOut; > } > > function Proc4(){ > var BoolLoc = Char1Glob == 'A'; > BoolLoc |= BoolGlob; > Char2Glob = 'B'; > } > > function Proc5(){ > Char1Glob = 'A'; > BoolGlob = FALSE; > } > > function Proc6(EnumParIn, EnumParOut){ > var EnumParOut = EnumParIn; > if(!Func3(EnumParIn)) > EnumParOut = Ident4; > switch (EnumParIn){ > case Ident1: > EnumParOut = Ident1; > break; > case Ident2: > if (IntGlob > 100){ > EnumParOut = Ident1; > } else EnumParOut = Ident4; > break; > case Ident3: > EnumParOut = Ident2; > break; > case Ident4: > break; > case Ident5: > EnumParOut = Ident3; > } > return EnumParOut; > } > > function Proc7(IntParI1, IntParI2, IntParOut){ > var IntLoc = IntParI1 + 2; > IntParOut = IntParI2 + IntLoc; > > return IntParOut; > } > > function Proc8(Array1Par, Array2Par, IntParI1, IntParI2) { > var IntLoc = IntParI1 + 5; > Array1Par[IntLoc] = IntParI2; > Array1Par[IntLoc + 1] = Array1Par[IntLoc]; > Array1Par[IntLoc + 30] = IntLoc; > // for IntIndex in range(IntLoc, IntLoc+2): > for (var IntIndex = IntLoc; IntIndex < IntLoc + 2; ++IntIndex) { > Array2Par[IntLoc][IntIndex] = IntLoc; > } > Array2Par[IntLoc][IntLoc - 1] = Array2Par[IntLoc][IntLoc - 1] + 1; > Array2Par[IntLoc + 20][IntLoc] = Array1Par[IntLoc]; > IntGlob = 5; > } > > function Func1(CharPar1, CharPar2) { > var CharLoc1 = CharPar1; > var CharLoc2 = CharLoc1; > if (CharLoc2 != CharPar2) { > return Ident1; > } else { > return Ident2; > } > } > > function Func2(StrParI1, StrParI2) { > var IntLoc = 1; > while (IntLoc <= 1) { > if (Func1(StrParI1[IntLoc], StrParI2[IntLoc + 1]) == Ident1) { > var CharLoc = 'A'; > IntLoc = IntLoc + 1; > } > } > if (CharLoc >= 'W' && CharLoc <= 'Z') { > IntLoc = 7; > } > if (CharLoc == 'X') { > return TRUE; > } else { > if (StrParI1 > StrParI2) { > IntLoc = IntLoc + 7 > return TRUE; > } else { > return FALSE; > } > } > } > > function Func3(EnumParIn) { > var EnumLoc = EnumParIn; > if (EnumLoc == Ident3) return TRUE; > return FALSE; > } > > main(); > > > -- > -- > v8-users mailing list > v8-users@googlegroups.com > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.