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.

Reply via email to