Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37840817
en ru br
Репозитории ALT

Группа :: Офис
Пакет: bfgminer

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: bfgminer-5.5.0-altivec.patch
Скачать


diff --git a/bfgminer/sha256_altivec_4way.c b/bfgminer/sha256_altivec_4way.c
index 0a52feb..f3ca11a 100644
--- a/bfgminer/sha256_altivec_4way.c
+++ b/bfgminer/sha256_altivec_4way.c
@@ -20,7 +20,7 @@
 #include <string.h>
 #include <assert.h>
 
-//#include <altivec.h>
+#include <altivec.h>
 #include <stdint.h>
 #include <stdio.h>
 
@@ -58,17 +58,17 @@ static inline vector unsigned int Maj(const vector unsigned int b, const vector
 
 /* RotateRight(x, n) := RotateLeft(x, 32-n) */
 /* SHA256 Functions */
-#define BIGSIGMA0_256(x)    (vec_xor(vec_xor(vec_rl((x), (vector unsigned int)(32-2)),vec_rl((x), (vector unsigned int)(32-13))),vec_rl((x), (vector unsigned int)(32-22))))
-#define BIGSIGMA1_256(x)    (vec_xor(vec_xor(vec_rl((x), (vector unsigned int)(32-6)),vec_rl((x), (vector unsigned int)(32-11))),vec_rl((x), (vector unsigned int)(32-25))))
+#define BIGSIGMA0_256(x)    (vec_xor(vec_xor(vec_rl((x), (vector unsigned int){32-2}),vec_rl((x), (vector unsigned int){32-13})),vec_rl((x), (vector unsigned int){32-22})))
+#define BIGSIGMA1_256(x)    (vec_xor(vec_xor(vec_rl((x), (vector unsigned int){32-6}),vec_rl((x), (vector unsigned int){32-11})),vec_rl((x), (vector unsigned int){32-25})))
 
-#define SIGMA0_256(x)       (vec_xor(vec_xor(vec_rl((x), (vector unsigned int)(32- 7)),vec_rl((x), (vector unsigned int)(32-18))), vec_sr((x), (vector unsigned int)(3 ))))
-#define SIGMA1_256(x)       (vec_xor(vec_xor(vec_rl((x), (vector unsigned int)(32-17)),vec_rl((x), (vector unsigned int)(32-19))), vec_sr((x), (vector unsigned int)(10))))
+#define SIGMA0_256(x)       (vec_xor(vec_xor(vec_rl((x), (vector unsigned int){32- 7}),vec_rl((x), (vector unsigned int){32-18})), vec_sr((x), (vector unsigned int){3 })))
+#define SIGMA1_256(x)       (vec_xor(vec_xor(vec_rl((x), (vector unsigned int){32-17}),vec_rl((x), (vector unsigned int){32-19})), vec_sr((x), (vector unsigned int){10})))
 
 #define add4(x0, x1, x2, x3) vec_add(vec_add(x0, x1),vec_add( x2,x3))
 #define add5(x0, x1, x2, x3, x4) vec_add(add4(x0, x1, x2, x3), x4)
 
 #define SHA256ROUND(a, b, c, d, e, f, g, h, i, w)                       \
-    T1 = add5(h, BIGSIGMA1_256(e), Ch(e, f, g), (vector unsigned int)(sha256_consts[i],sha256_consts[i],sha256_consts[i],sha256_consts[i]), w);   \
+    T1 = add5(h, BIGSIGMA1_256(e), Ch(e, f, g), ((vector unsigned int){sha256_consts[i],sha256_consts[i],sha256_consts[i],sha256_consts[i]}), w);   \
     d = vec_add(d, T1);                                           \
     h = vec_add(T1, vec_add(BIGSIGMA0_256(a), Maj(a, b, c)));
 
@@ -99,7 +99,7 @@ bool ScanHash_altivec_4way(struct thr_info * const thr, struct work * const work
 
 	*nNonce_p = nonce;
 
-        DoubleBlockSHA256(pdata, phash1, pmidstate, thash, pSHA256InitState);
+        DoubleBlockSHA256(pdata, hash1, pmidstate, thash, pSHA256InitState);
 
         for (j = 0; j < NPAR; j++)
         {
@@ -146,43 +146,43 @@ static void DoubleBlockSHA256(const void* pin, void* pad, const void *pre, unsig
     vector unsigned int nonce, preNonce;
 
     /* nonce offset for vector */
-    vector unsigned int offset = (vector unsigned int)(0, 1, 2, 3);
+    vector unsigned int offset = (vector unsigned int){0, 1, 2, 3};
 
-    preNonce = vec_add((vector unsigned int)(In[3],In[3],In[3],In[3]), offset);
+    preNonce = vec_add((vector unsigned int){In[3],In[3],In[3],In[3]}, offset);
 
    for(k = 0; k<NPAR; k+=4)
    {
-        w0 = (vector unsigned int)(In[0],In[0],In[0],In[0]);
-        w1 = (vector unsigned int)(In[1],In[1],In[1],In[1]);
-        w2 = (vector unsigned int)(In[2],In[2],In[2],In[2]);
-        //w3 = (vector unsigned int)(In[3],In[3],In[3],In[3]); nonce will be later hacked into the hash
-        w4 = (vector unsigned int)(In[4],In[4],In[4],In[4]);
-        w5 = (vector unsigned int)(In[5],In[5],In[5],In[5]);
-        w6 = (vector unsigned int)(In[6],In[6],In[6],In[6]);
-        w7 = (vector unsigned int)(In[7],In[7],In[7],In[7]);
-        w8 = (vector unsigned int)(In[8],In[8],In[8],In[8]);
-        w9 = (vector unsigned int)(In[9],In[9],In[9],In[9]);
-        w10 = (vector unsigned int)(In[10],In[10],In[10],In[10]);
-        w11 = (vector unsigned int)(In[11],In[11],In[11],In[11]);
-        w12 = (vector unsigned int)(In[12],In[12],In[12],In[12]);
-        w13 = (vector unsigned int)(In[13],In[13],In[13],In[13]);
-        w14 = (vector unsigned int)(In[14],In[14],In[14],In[14]);
-        w15 = (vector unsigned int)(In[15],In[15],In[15],In[15]);
+        w0 = (vector unsigned int){In[0],In[0],In[0],In[0]};
+        w1 = (vector unsigned int){In[1],In[1],In[1],In[1]};
+        w2 = (vector unsigned int){In[2],In[2],In[2],In[2]};
+        //w3 = (vector unsigned int){In[3],In[3],In[3],In[3]}; nonce will be later hacked into the hash
+        w4 = (vector unsigned int){In[4],In[4],In[4],In[4]};
+        w5 = (vector unsigned int){In[5],In[5],In[5],In[5]};
+        w6 = (vector unsigned int){In[6],In[6],In[6],In[6]};
+        w7 = (vector unsigned int){In[7],In[7],In[7],In[7]};
+        w8 = (vector unsigned int){In[8],In[8],In[8],In[8]};
+        w9 = (vector unsigned int){In[9],In[9],In[9],In[9]};
+        w10 = (vector unsigned int){In[10],In[10],In[10],In[10]};
+        w11 = (vector unsigned int){In[11],In[11],In[11],In[11]};
+        w12 = (vector unsigned int){In[12],In[12],In[12],In[12]};
+        w13 = (vector unsigned int){In[13],In[13],In[13],In[13]};
+        w14 = (vector unsigned int){In[14],In[14],In[14],In[14]};
+        w15 = (vector unsigned int){In[15],In[15],In[15],In[15]};
 
         /* hack nonce into lowest byte of w3 */
-	nonce = vec_add(preNonce, (vector unsigned int)(k,k,k,k));
+	nonce = vec_add(preNonce, (vector unsigned int){k,k,k,k});
 
         w3 = nonce;
         //printf ("W3: %08vlx\n", w3);
 
-        a = (vector unsigned int)(hPre[0],hPre[0],hPre[0],hPre[0]);
-        b = (vector unsigned int)(hPre[1],hPre[1],hPre[1],hPre[1]);
-        c = (vector unsigned int)(hPre[2],hPre[2],hPre[2],hPre[2]);
-        d = (vector unsigned int)(hPre[3],hPre[3],hPre[3],hPre[3]);
-        e = (vector unsigned int)(hPre[4],hPre[4],hPre[4],hPre[4]);
-        f = (vector unsigned int)(hPre[5],hPre[5],hPre[5],hPre[5]);
-        g = (vector unsigned int)(hPre[6],hPre[6],hPre[6],hPre[6]);
-        h = (vector unsigned int)(hPre[7],hPre[7],hPre[7],hPre[7]);
+        a = (vector unsigned int){hPre[0],hPre[0],hPre[0],hPre[0]};
+        b = (vector unsigned int){hPre[1],hPre[1],hPre[1],hPre[1]};
+        c = (vector unsigned int){hPre[2],hPre[2],hPre[2],hPre[2]};
+        d = (vector unsigned int){hPre[3],hPre[3],hPre[3],hPre[3]};
+        e = (vector unsigned int){hPre[4],hPre[4],hPre[4],hPre[4]};
+        f = (vector unsigned int){hPre[5],hPre[5],hPre[5],hPre[5]};
+        g = (vector unsigned int){hPre[6],hPre[6],hPre[6],hPre[6]};
+        h = (vector unsigned int){hPre[7],hPre[7],hPre[7],hPre[7]};
 
         SHA256ROUND(a, b, c, d, e, f, g, h, 0, w0);
         SHA256ROUND(h, a, b, c, d, e, f, g, 1, w1);
@@ -301,7 +301,7 @@ static void DoubleBlockSHA256(const void* pin, void* pad, const void *pre, unsig
         SHA256ROUND(b, c, d, e, f, g, h, a, 63, w15);
 
 #define store_load(x, i, dest) \
-        T1 = (vector unsigned int)((hPre)[i],(hPre)[i],(hPre)[i],(hPre)[i]); \
+        T1 = (vector unsigned int){(hPre)[i],(hPre)[i],(hPre)[i],(hPre)[i]}; \
         dest = vec_add(T1, x);
 
         store_load(a, 0, w0);
@@ -315,23 +315,23 @@ static void DoubleBlockSHA256(const void* pin, void* pad, const void *pre, unsig
 
         /* end of first SHA256 round */
 
-        w8 = (vector unsigned int)(Pad[8],Pad[8],Pad[8],Pad[8]);
-        w9 = (vector unsigned int)(Pad[9],Pad[9],Pad[9],Pad[9]);
-        w10 = (vector unsigned int)(Pad[10],Pad[10],Pad[10],Pad[10]);
-        w11 = (vector unsigned int)(Pad[11],Pad[11],Pad[11],Pad[11]);
-        w12 = (vector unsigned int)(Pad[12],Pad[12],Pad[12],Pad[12]);
-        w13 = (vector unsigned int)(Pad[13],Pad[13],Pad[13],Pad[13]);
-        w14 = (vector unsigned int)(Pad[14],Pad[14],Pad[14],Pad[14]);
-        w15 = (vector unsigned int)(Pad[15],Pad[15],Pad[15],Pad[15]);
-
-        a = (vector unsigned int)(hInit[0],hInit[0],hInit[0],hInit[0]);
-        b = (vector unsigned int)(hInit[1],hInit[1],hInit[1],hInit[1]);
-        c = (vector unsigned int)(hInit[2],hInit[2],hInit[2],hInit[2]);
-        d = (vector unsigned int)(hInit[3],hInit[3],hInit[3],hInit[3]);
-        e = (vector unsigned int)(hInit[4],hInit[4],hInit[4],hInit[4]);
-        f = (vector unsigned int)(hInit[5],hInit[5],hInit[5],hInit[5]);
-        g = (vector unsigned int)(hInit[6],hInit[6],hInit[6],hInit[6]);
-        h = (vector unsigned int)(hInit[7],hInit[7],hInit[7],hInit[7]);
+        w8 = (vector unsigned int){Pad[8],Pad[8],Pad[8],Pad[8]};
+        w9 = (vector unsigned int){Pad[9],Pad[9],Pad[9],Pad[9]};
+        w10 = (vector unsigned int){Pad[10],Pad[10],Pad[10],Pad[10]};
+        w11 = (vector unsigned int){Pad[11],Pad[11],Pad[11],Pad[11]};
+        w12 = (vector unsigned int){Pad[12],Pad[12],Pad[12],Pad[12]};
+        w13 = (vector unsigned int){Pad[13],Pad[13],Pad[13],Pad[13]};
+        w14 = (vector unsigned int){Pad[14],Pad[14],Pad[14],Pad[14]};
+        w15 = (vector unsigned int){Pad[15],Pad[15],Pad[15],Pad[15]};
+
+        a = (vector unsigned int){hInit[0],hInit[0],hInit[0],hInit[0]};
+        b = (vector unsigned int){hInit[1],hInit[1],hInit[1],hInit[1]};
+        c = (vector unsigned int){hInit[2],hInit[2],hInit[2],hInit[2]};
+        d = (vector unsigned int){hInit[3],hInit[3],hInit[3],hInit[3]};
+        e = (vector unsigned int){hInit[4],hInit[4],hInit[4],hInit[4]};
+        f = (vector unsigned int){hInit[5],hInit[5],hInit[5],hInit[5]};
+        g = (vector unsigned int){hInit[6],hInit[6],hInit[6],hInit[6]};
+        h = (vector unsigned int){hInit[7],hInit[7],hInit[7],hInit[7]};
 
         SHA256ROUND(a, b, c, d, e, f, g, h, 0, w0);
         SHA256ROUND(h, a, b, c, d, e, f, g, 1, w1);
@@ -455,7 +455,7 @@ static void DoubleBlockSHA256(const void* pin, void* pad, const void *pre, unsig
 
         /* store resulsts directly in thash */
 #define store_2(x,i)  \
-        w0 = (vector unsigned int)(hInit[i],hInit[i],hInit[i],hInit[i]); \
+        w0 = (vector unsigned int){hInit[i],hInit[i],hInit[i],hInit[i]}; \
         vec_st(vec_add(w0, x), 0 ,&thash[i][k]);
 
         store_2(a, 0);
 
дизайн и разработка: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
текущий майнтейнер: Michael Shigorin