commit 4db64967c9593ce4f70f62af81bf4ecf2858c16f
Author: Oswald Buddenhagen <o...@users.sf.net>
Date:   Sun Dec 18 21:52:06 2016 +0100

    make more use of shifted_bit()
    
    technically, this introduces a redundant AND, but the compiler is smart
    enough to prove that (((A & M) ^ B) & M) == ((A ^ B) & M).

 src/common.h |    3 +++
 src/sync.c   |    4 +---
 src/util.c   |    5 -----
 3 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/common.h b/src/common.h
index b3d36ad..7138a6e 100644
--- a/src/common.h
+++ b/src/common.h
@@ -39,6 +39,9 @@ typedef unsigned int uint;
 #define __stringify(x) #x
 #define stringify(x) __stringify(x)
 
+#define shifted_bit(in, from, to) \
+       (((uint)(in) / (from > to ? from / to : 1) * (to > from ? to / from : 
1)) & to)
+
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4)
 # define ATTR_UNUSED __attribute__((unused))
 # define ATTR_NORETURN __attribute__((noreturn))
diff --git a/src/sync.c b/src/sync.c
index 06b6b85..851d61b 100644
--- a/src/sync.c
+++ b/src/sync.c
@@ -125,8 +125,6 @@ make_flags( int flags, char *buf )
 #define S_NEXPIRE      (1<<6)  /* temporary: new expiration state */
 #define S_DELETE       (1<<7)  /* ephemeral: flags propagation is a deletion */
 
-#define mvBit(in,ib,ob) ((uchar)(((uint)in) * (ob) / (ib)))
-
 typedef struct sync_rec {
        struct sync_rec *next;
        /* string_list_t *keywords; */
@@ -1675,7 +1673,7 @@ box_loaded( int sts, void *aux )
                                }
                        } else {
                                /* The trigger is an expiration transaction 
being ongoing ... */
-                               if ((t == S) && ((mvBit(srec->status, S_EXPIRE, 
S_EXPIRED) ^ srec->status) & S_EXPIRED)) {
+                               if ((t == S) && ((shifted_bit(srec->status, 
S_EXPIRE, S_EXPIRED) ^ srec->status) & S_EXPIRED)) {
                                        /* ... but the actual action derives 
from the wanted state. */
                                        if (srec->status & S_NEXPIRE)
                                                aflags |= F_DELETED;
diff --git a/src/util.c b/src/util.c
index 8ac1b1a..ca4e415 100644
--- a/src/util.c
+++ b/src/util.c
@@ -784,11 +784,6 @@ conf_wakeup( wakeup_t *tmr, int to )
        }
 }
 
-#define shifted_bit(in, from, to) \
-       (((uint)(in) & from) \
-               / (from > to ? from / to : 1) \
-               * (to > from ? to / from : 1))
-
 static void
 event_wait( void )
 {

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
isync-devel mailing list
isync-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/isync-devel

Reply via email to