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

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

[dotgnu-pnet-commits] libjit ChangeLog jit/jit-rules-x86.ins


From: Aleksey Demakov
Subject: [dotgnu-pnet-commits] libjit ChangeLog jit/jit-rules-x86.ins
Date: Thu, 06 Jul 2006 12:04:07 +0000

CVSROOT:        /sources/dotgnu-pnet
Module name:    libjit
Changes by:     Aleksey Demakov <avd>   06/07/06 12:04:07

Modified files:
        .              : ChangeLog 
        jit            : jit-rules-x86.ins 

Log message:
        fix division by power of two

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libjit/ChangeLog?cvsroot=dotgnu-pnet&r1=1.241&r2=1.242
http://cvs.savannah.gnu.org/viewcvs/libjit/jit/jit-rules-x86.ins?cvsroot=dotgnu-pnet&r1=1.10&r2=1.11

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/ChangeLog,v
retrieving revision 1.241
retrieving revision 1.242
diff -u -b -r1.241 -r1.242
--- ChangeLog   4 Jul 2006 17:28:07 -0000       1.241
+++ ChangeLog   6 Jul 2006 12:04:07 -0000       1.242
@@ -1,3 +1,7 @@
+2006-07-06  Aleksey Demakov  <address@hidden>
+
+       * jit/jit-rules-x86.ins: fix division by power of two.
+
 2006-07-05  Aleksey Demakov  <address@hidden>
 
        * configure.in: make new register allocator the default.

Index: jit/jit-rules-x86.ins
===================================================================
RCS file: /sources/dotgnu-pnet/libjit/jit/jit-rules-x86.ins,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- jit/jit-rules-x86.ins       2 Jul 2006 23:01:24 -0000       1.10
+++ jit/jit-rules-x86.ins       6 Jul 2006 12:04:07 -0000       1.11
@@ -554,8 +554,8 @@
        }
        [reg, imm, if("(((jit_nuint)$2) & (((jit_nuint)$2) - 1)) == 0")] -> {
                /* x & (x - 1) is equal to zero if x is a power of 2  */
-               jit_nuint shift, value;
-               for(shift = 0, value = $2; value; value >>= 1)
+               jit_nuint shift, value = $2 >> 1;
+               for(shift = 0; value; value >>= 1)
                {
                    ++shift;
                }
@@ -594,12 +594,12 @@
        }
        [reg, imm, if("(((jit_nuint)$2) & (((jit_nuint)$2) - 1)) == 0")] -> {
                /* x & (x - 1) is equal to zero if x is a power of 2  */
-               jit_nuint shift, value;
-               for(shift = 0, value = $2; value; value >>= 1)
+               jit_nuint shift, value = $2 >> 1;
+               for(shift = 0; value; value >>= 1)
                {
                    ++shift;
                }
-               x86_shift_reg_imm(inst, X86_SAR, $1, shift);
+               x86_shift_reg_imm(inst, X86_SHR, $1, shift);
        }
        [reg("eax"), imm, scratch("?", "edx")] -> {
                x86_mov_reg_imm(inst, $3, $2);




reply via email to

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