Fix broken #ifdef in types_ocl.c
[hashcat.git] / OpenCL / types_ocl.c
index 17e3d69..dfd3fd6 100644 (file)
@@ -33,9 +33,6 @@ typedef VTYPE(uint,   VECT_SIZE) u32x;
 typedef VTYPE(ulong,  VECT_SIZE) u64x;
 #endif
 
-// this one needs to die
-#define allx(r) r
-
 static inline u32 l32_from_64_S (u64 a)
 {
   const u32 r = (u32) (a);
@@ -199,11 +196,9 @@ static inline u32 rotl32_S (const u32 a, const u32 n)
 
 static inline u64 rotr64_S (const u64 a, const u32 n)
 {
-  #if DEVICE_TYPE == DEVICE_TYPE_CPU
-
-  const u64 r = rotate (a, (u64) 64 - n);
+  #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
 
-  #else
+  #ifdef cl_amd_media_ops
 
   const u32 a0 = h32_from_64_S (a);
   const u32 a1 = l32_from_64_S (a);
@@ -213,6 +208,16 @@ static inline u64 rotr64_S (const u64 a, const u32 n)
 
   const u64 r = hl32_to_64_S (t0, t1);
 
+  #else
+
+  const u64 r = rotate (a, (u64) 64 - n);
+
+  #endif
+
+  #else
+
+  const u64 r = rotate (a, (u64) 64 - n);
+
   #endif
 
   return r;
@@ -255,11 +260,9 @@ static inline u32x rotl32 (const u32x a, const u32 n)
 
 static inline u64x rotr64 (const u64x a, const u32 n)
 {
-  #if DEVICE_TYPE == DEVICE_TYPE_CPU
-
-  const u64x r = rotate (a, (u64) 64 - n);
+  #if (DEVICE_TYPE == DEVICE_TYPE_GPU)
 
-  #else
+  #ifdef cl_amd_media_ops
 
   const u32x a0 = h32_from_64 (a);
   const u32x a1 = l32_from_64 (a);
@@ -269,6 +272,16 @@ static inline u64x rotr64 (const u64x a, const u32 n)
 
   const u64x r = hl32_to_64 (t0, t1);
 
+  #else
+
+  const u64x r = rotate (a, (u64) 64 - n);
+
+  #endif
+
+  #else
+
+  const u64x r = rotate (a, (u64) 64 - n);
+
   #endif
 
   return r;
@@ -281,12 +294,34 @@ static inline u64x rotl64 (const u64x a, const u32 n)
 
 static inline u32 __bfe (const u32 a, const u32 b, const u32 c)
 {
+  #ifdef cl_amd_media_ops2
+
   return amd_bfe (a, b, c);
+
+  #else
+
+  #define BIT(x)      (1 << (x))
+  #define BIT_MASK(x) (BIT (x) - 1)
+  #define BFE(x,y,z)  (((x) >> (y)) & BIT_MASK (z))
+
+  return BFE (a, b, c);
+
+  #endif
 }
 
 static inline u32 amd_bytealign_S (const u32 a, const u32 b, const u32 c)
 {
+  #ifdef cl_amd_media_ops
+
   return amd_bytealign (a, b, c);
+
+  #else
+
+  const u64 tmp = ((((u64) a) << 32) | ((u64) b)) >> ((c & 3) * 8);
+
+  return (u32) (tmp);
+
+  #endif
 }
 #endif