From: Chris Duncan Date: Tue, 7 Jan 2025 02:31:04 +0000 (-0800) Subject: Replace v[d] indexes with pointers. X-Git-Url: https://zoso.dev/?a=commitdiff_plain;h=29af9bfe8a939a2eeb65a3d4636cf22321be0722;p=libnemo.git Replace v[d] indexes with pointers. --- diff --git a/src/lib/workers/powgpu.ts b/src/lib/workers/powgpu.ts index 5200107..873b044 100644 --- a/src/lib/workers/powgpu.ts +++ b/src/lib/workers/powgpu.ts @@ -251,124 +251,124 @@ export class PowGpu extends WorkerInterface { * Twelve rounds of mixing as part of BLAKE2b compression step */ // ROUND(0) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, m0, m1, m2, m3); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m4, m5, m6, m7); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, m8, m9, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m4, m5, m6, m7); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m8, m9, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u); // ROUND(1) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m8, m9, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, m2, m3, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, m0, m1, m4, m5); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, m6, m7); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, m2, m3, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, m0, m1, m4, m5); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m6, m7); // ROUND(2) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, m0, m1); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, m4, m5); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, m6, m7, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, m2, m3); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, m8, m9); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m0, m1); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m4, m5); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, m6, m7, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, m2, m3); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m8, m9); // ROUND(3) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m6, m7, m2, m3); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, m4, m5, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, m8, m9, m0, m1); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m6, m7, m2, m3); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, m4, m5, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m8, m9, m0, m1); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u); // ROUND(4) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, m0, m1); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, m4, m5, m8, m9); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, m2, m3); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, m6, m7, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m0, m1); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m4, m5, m8, m9); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, m2, m3); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m6, m7, 0u, 0u); // ROUND(5) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, m4, m5, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, m0, m1, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, m6, m7); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, m8, m9, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, m2, m3, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m4, m5, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m0, m1, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, m6, m7); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, m8, m9, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m2, m3, 0u, 0u); // ROUND(6) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m2, m3, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, m8, m9, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, m0, m1, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, m6, m7); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, m4, m5); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m2, m3, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, m8, m9, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, m0, m1, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, m6, m7); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, m4, m5); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u); // ROUND(7) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, m2, m3); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, m6, m7, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, m0, m1); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, m8, m9); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, m4, m5, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m2, m3); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, m6, m7, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, m0, m1); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, m8, m9); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, m4, m5, 0u, 0u); // ROUND(8) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, m6, m7); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, m0, m1, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, m4, m5); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, m2, m3, m8, m9); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, m6, m7); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, m0, m1, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, m4, m5); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m2, m3, m8, m9); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u); // ROUND(9) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, m4, m5); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, 0u, 0u, m8, m9); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, m2, m3, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, m6, m7, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, m0, m1); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, m4, m5); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, 0u, 0u, m8, m9); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, m2, m3, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, m6, m7, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m0, m1); // ROUND(10) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, m0, m1, m2, m3); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m4, m5, m6, m7); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, m8, m9, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, 0u, 0u, 0u, 0u); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, m0, m1, m2, m3); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m4, m5, m6, m7); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, m8, m9, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, 0u, 0u); // ROUND(11) - G(&v, &v0, &v1, &v8, &v9, &v16, &v17, 24u, 0u, 0u, 0u, 0u); - G(&v, &v2, &v3, &v10, &v11, &v18, &v19, 26u, m8, m9, 0u, 0u); - G(&v, &v4, &v5, &v12, &v13, &v20, &v21, 28u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v14, &v15, &v22, &v23, 30u, 0u, 0u, 0u, 0u); - G(&v, &v0, &v1, &v10, &v11, &v20, &v21, 30u, m2, m3, 0u, 0u); - G(&v, &v2, &v3, &v12, &v13, &v22, &v23, 24u, m0, m1, m4, m5); - G(&v, &v4, &v5, &v14, &v15, &v16, &v17, 26u, 0u, 0u, 0u, 0u); - G(&v, &v6, &v7, &v8, &v9, &v18, &v19, 28u, 0u, 0u, m6, m7); + G(&v, &v0, &v1, &v8, &v9, &v16, &v17, &v24, &v25, 0u, 0u, 0u, 0u); + G(&v, &v2, &v3, &v10, &v11, &v18, &v19, &v26, &v27, m8, m9, 0u, 0u); + G(&v, &v4, &v5, &v12, &v13, &v20, &v21, &v28, &v29, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v14, &v15, &v22, &v23, &v30, &v31, 0u, 0u, 0u, 0u); + G(&v, &v0, &v1, &v10, &v11, &v20, &v21, &v30, &v31, m2, m3, 0u, 0u); + G(&v, &v2, &v3, &v12, &v13, &v22, &v23, &v24, &v25, m0, m1, m4, m5); + G(&v, &v4, &v5, &v14, &v15, &v16, &v17, &v26, &v27, 0u, 0u, 0u, 0u); + G(&v, &v6, &v7, &v8, &v9, &v18, &v19, &v28, &v29, 0u, 0u, m6, m7); /** * Set nonce if it passes the threshold and no other thread has set it