Provide a flip128 helper to simplify big endian flipping.
diff --git a/cgminer.c b/cgminer.c
index cf43719..50b36a3 100644
--- a/cgminer.c
+++ b/cgminer.c
@@ -2440,9 +2440,7 @@ static bool submit_upstream_work(struct work *work, CURL *curl, bool resubmit)
cgpu = get_thr_cgpu(thr_id);
#ifdef __BIG_ENDIAN__
- int swapcounter = 0;
- for (swapcounter = 0; swapcounter < 32; swapcounter++)
- (((uint32_t*) (work->data))[swapcounter]) = swab32(((uint32_t*) (work->data))[swapcounter]);
+ flip128(work->data, work->data);
#endif
/* build hex string */
diff --git a/miner.h b/miner.h
index 2d2e709..243b4d2 100644
--- a/miner.h
+++ b/miner.h
@@ -660,6 +660,16 @@ static inline void flip80(void *dest_p, const void *src_p)
dest[i] = swab32(src[i]);
}
+static inline void flip128(void *dest_p, const void *src_p)
+{
+ uint32_t *dest = dest_p;
+ const uint32_t *src = src_p;
+ int i;
+
+ for (i = 0; i < 32; i++)
+ dest[i] = swab32(src[i]);
+}
+
extern void quit(int status, const char *format, ...);
static inline void mutex_lock(pthread_mutex_t *lock)