Create a __constant array for use within diablo kernel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
diff --git a/diablo121016.cl b/diablo121016.cl
index 7b3738b..f1b6c57 100644
--- a/diablo121016.cl
+++ b/diablo121016.cl
@@ -39,6 +39,89 @@
#define ZMa(a, b, c) bitselect((z)a, (z)b, (z)c ^ (z)a)
#endif
+__constant uint K[] = {
+ 0xd807aa98U,
+ 0x12835b01U,
+ 0x243185beU,
+ 0x550c7dc3U,
+ 0x72be5d74U,
+ 0x80deb1feU,
+ 0x9bdc06a7U,
+ 0xc19bf3f4U,
+ 0x0fc19dc6U,
+ 0x240ca1ccU,
+ 0x80000000U, // 10
+ 0x2de92c6fU,
+ 0x4a7484aaU,
+ 0x00000280U,
+ 0x5cb0a9dcU,
+ 0x76f988daU,
+ 0x983e5152U,
+ 0xa831c66dU,
+ 0xb00327c8U,
+ 0xbf597fc7U,
+ 0xc6e00bf3U, // 20
+ 0x00A00055U,
+ 0xd5a79147U,
+ 0x06ca6351U,
+ 0x14292967U,
+ 0x27b70a85U,
+ 0x2e1b2138U,
+ 0x4d2c6dfcU,
+ 0x53380d13U,
+ 0x650a7354U,
+ 0x766a0abbU, // 30
+ 0x81c2c92eU,
+ 0x92722c85U,
+ 0xa2bfe8a1U,
+ 0xa81a664bU,
+ 0xc24b8b70U,
+ 0xc76c51a3U,
+ 0xd192e819U,
+ 0xd6990624U,
+ 0xf40e3585U,
+ 0x106aa070U, // 40
+ 0x19a4c116U,
+ 0x1e376c08U,
+ 0x2748774cU,
+ 0x34b0bcb5U,
+ 0x391c0cb3U,
+ 0x4ed8aa4aU,
+ 0x5b9cca4fU,
+ 0x682e6ff3U,
+ 0x748f82eeU,
+ 0x78a5636fU, // 50
+ 0x84c87814U,
+ 0x8cc70208U,
+ 0x90befffaU,
+ 0xa4506cebU,
+ 0xbef9a3f7U,
+ 0xc67178f2U,
+ 0x98c7e2a2U,
+ 0x90bb1e3cU,
+ 0x510e527fU,
+ 0x9b05688cU, // 60
+ 0xfc08884dU,
+ 0x3c6ef372U,
+ 0x50c6645bU,
+ 0x6a09e667U,
+ 0xbb67ae85U,
+ 0x3ac42e24U,
+ 0xd21ea4fdU,
+ 0x59f111f1U,
+ 0x923f82a4U,
+ 0xab1c5ed5U, // 70
+ 0x5807aa98U,
+ 0xc19bf274U,
+ 0xe49b69c1U,
+ 0x00a00000U,
+ 0xefbe4786U,
+ 0x00000100U,
+ 0x11002000U,
+ 0x00400022U,
+ 0x136032EDU
+};
+
#define ZR25(n) ((Zrotr((n), 25) ^ Zrotr((n), 14) ^ ((n) >> 3U)))
#define ZR15(n) ((Zrotr((n), 15) ^ Zrotr((n), 13) ^ ((n) >> 10U)))
#define ZR26(n) ((Zrotr((n), 26) ^ Zrotr((n), 21) ^ Zrotr((n), 7)))