var xor0: u32;
var xor1: u32;
- /******************************************************************
- * ROUND(0) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(0) *
+ ****************************************************************************/
/**
- * ROUND 0.1
- * G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3);
+ * r=0, i=0, a=v[0-1], b=v[8-9], c=v[16-17], d=v[24-25]
*/
+
// a = a + b;
o0 = v0 + v8;
o1 = v1 + v9;
- /******************************************************************
- * ROUND(1) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(1) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u);
- /******************************************************************
- * ROUND(2) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(2) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m0, m1);
- /******************************************************************
- * ROUND(3) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(3) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m6, m7, m2, m3);
- /******************************************************************
- * ROUND(4) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(4) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m0, m1);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
- /******************************************************************
- * ROUND(5) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(5) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m4, m5, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
- /******************************************************************
- * ROUND(6) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(6) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m2, m3, 0u, 0u);
- /******************************************************************
- * ROUND(7) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(7) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
- /******************************************************************
- * ROUND(8) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(8) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u);
- /******************************************************************
- * ROUND(9) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(9) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m4, m5);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m8, m9);
- /******************************************************************
- * ROUND(10) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(10) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m4, m5, m6, m7);
- /******************************************************************
- * ROUND(11) *
- ******************************************************************/
+ /****************************************************************************
+ * ROUND(11) *
+ ****************************************************************************/
G(&v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u);
G(&v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u);
- /******************************************************************
- * NONCE CHECK *
- ******************************************************************/
+ /****************************************************************************
+ * NONCE CHECK *
+ ****************************************************************************/
/**
* Set nonce if it passes the threshold and no other thread has set it