Thanks for help again. I didn't run into more problems until now. It seems, that /proc/cpuinfo changed since kernel 3.9.3 for the ARM.
Am Dienstag, 22. Juli 2014 16:34:18 UTC+2 schrieb Rodolph Perfetta: > > 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 <[email protected] <javascript:>> > 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 >> [email protected] <javascript:> >> 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 [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- -- v8-users mailing list [email protected] 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
