dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnet/engine cvm_arith.c,1.14,1.15


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnet/engine cvm_arith.c,1.14,1.15
Date: Sat, 07 Jun 2003 06:57:15 -0400

Update of /cvsroot/dotgnu-pnet/pnet/engine
In directory subversions:/tmp/cvs-serv18123/engine

Modified Files:
        cvm_arith.c 
Log Message:


Move some long shift's out of line to prevent register spills on
some i386 variants (apply patch from Gopal).


Index: cvm_arith.c
===================================================================
RCS file: /cvsroot/dotgnu-pnet/pnet/engine/cvm_arith.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -r1.14 -r1.15
*** cvm_arith.c 20 Apr 2003 07:43:21 -0000      1.14
--- cvm_arith.c 7 Jun 2003 10:57:10 -0000       1.15
***************
*** 320,323 ****
--- 320,341 ----
  }
  
+ static void LShiftLeft(CVMWord *a, ILUInt32 shiftBy)
+ {
+       ILInt64 tempa = ReadLong(a);
+       WriteLong(a, tempa << shiftBy);
+ }
+ 
+ static void LShiftRight(CVMWord *a, ILUInt32 shiftBy)
+ {
+       ILInt64 tempa = ReadLong(a);
+       WriteLong(a, tempa >> shiftBy);
+ }
+ 
+ static void LUShiftRight(CVMWord *a, ILUInt32 shiftBy)
+ {
+       ILUInt64 tempa = ReadULong(a);
+       WriteULong(a, tempa >> shiftBy);
+ }
+ 
  #elif defined(IL_CVM_LOCALS)
  
***************
*** 2036,2042 ****
  {
        /* Long shift left */
!       WriteLong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]),
!               ReadLong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)])) <<
!           (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);
  }
--- 2054,2059 ----
  {
        /* Long shift left */
!       LShiftLeft(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]) ,
!                               (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);
  }
***************
*** 2067,2072 ****
  {
        /* Long shift right */
!       WriteLong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]),
!               ReadLong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)])) >>
            (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);
--- 2084,2088 ----
  {
        /* Long shift right */
!       LShiftRight(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]) ,
            (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);
***************
*** 2097,2102 ****
  {
        /* Unsigned long shift right */
!       WriteULong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]),
!               ReadULong(&(stacktop[-(CVM_WORDS_PER_LONG + 1)])) >>
            (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);
--- 2113,2117 ----
  {
        /* Unsigned long shift right */
!       LUShiftRight(&(stacktop[-(CVM_WORDS_PER_LONG + 1)]),
            (stacktop[-1].uintValue & 0x3F));
        MODIFY_PC_AND_STACK(CVM_LEN_NONE, -1);





reply via email to

[Prev in Thread] Current Thread [Next in Thread]