#define NEW_SIMD_CODE
-#include "include/constants.h"
-#include "include/kernel_vendor.h"
+#include "inc_hash_constants.h"
+#include "inc_vendor.cl"
#define DGST_R0 3
#define DGST_R1 7
#define DGST_R2 2
#define DGST_R3 6
-#include "include/kernel_functions.c"
-#include "OpenCL/types_ocl.c"
-#include "OpenCL/common.c"
-#include "include/rp_kernel.h"
-#include "OpenCL/rp.c"
-#include "OpenCL/simd.c"
+#include "inc_hash_functions.cl"
+#include "inc_types.cl"
+#include "inc_common.cl"
+#include "inc_rp.h"
+#include "inc_rp.cl"
+#include "inc_simd.cl"
__constant u32 k_sha256[64] =
{
#define SHA256_EXPAND_S(x,y,z,w) (SHA256_S1_S (x) + y + SHA256_S0_S (z) + w)
-static void sha256_transform (u32x digest[8], const u32x w[16])
+void sha256_transform (u32x digest[8], const u32x w[16])
{
u32x a = digest[0];
u32x b = digest[1];
ROUND_STEP (0);
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i += 16)
{
ROUND_EXPAND (); ROUND_STEP (i);
digest[7] += h;
}
-static void sha256_transform_z (u32x digest[8])
+void sha256_transform_z (u32x digest[8])
{
u32x a = digest[0];
u32x b = digest[1];
ROUND_STEP_Z (0);
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i += 16)
{
ROUND_STEP_Z (i);
digest[7] += h;
}
-static void sha256_transform_s (u32x digest[8], __local u32 *w)
+void sha256_transform_s (u32x digest[8], __local u32 *w)
{
u32x a = digest[0];
u32x b = digest[1];
ROUND_STEP_S (0);
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i += 16)
{
ROUND_STEP_S (i);
{
w_s1[15] = 0 | salt_buf0 >> 16;
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i++)
{
w_s1[i] = SHA256_EXPAND_S (w_s1[i - 2], w_s1[i - 7], w_s1[i - 15], w_s1[i - 16]);
w_s2[ 2] = salt_buf2 << 16 | 0;
w_s2[15] = (510 + 8) * 8;
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i++)
{
w_s2[i] = SHA256_EXPAND_S (w_s2[i - 2], w_s2[i - 7], w_s2[i - 15], w_s2[i - 16]);
{
w_s1[15] = 0 | salt_buf0 >> 16;
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i++)
{
w_s1[i] = SHA256_EXPAND_S (w_s1[i - 2], w_s1[i - 7], w_s1[i - 15], w_s1[i - 16]);
w_s2[ 2] = salt_buf2 << 16 | 0;
w_s2[15] = (510 + 8) * 8;
+ #ifdef _unroll
#pragma unroll
+ #endif
for (int i = 16; i < 64; i++)
{
w_s2[i] = SHA256_EXPAND_S (w_s2[i - 2], w_s2[i - 7], w_s2[i - 15], w_s2[i - 16]);