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.

Reply via email to