added support for MINMATCH=3 on big endian architecture

changed ZSTD_HASHLOG3_MIN to 2 (4 bytes for MINMACH > 3)
diff --git a/lib/mem.h b/lib/mem.h
index a369033..ceafd57 100644
--- a/lib/mem.h
+++ b/lib/mem.h
@@ -187,17 +187,6 @@
 
 #endif /* MEM_FORCE_MEMORY_ACCESS */
 
-
-MEM_STATIC U32 MEM_readMINMATCH(const void* memPtr, U32 length)
-{
-    switch (length)
-    {
-    default :
-    case 4 : return MEM_read32(memPtr);
-    case 3 : return MEM_read32(memPtr)<<8;
-    }
-}
-
 MEM_STATIC U16 MEM_readLE16(const void* memPtr)
 {
     if (MEM_isLittleEndian())
@@ -286,6 +275,20 @@
         MEM_writeLE64(memPtr, (U64)val);
 }
 
+ /* function safe only for comparisons */
+MEM_STATIC U32 MEM_readMINMATCH(const void* memPtr, U32 length)
+{
+    switch (length)
+    {
+    default :
+    case 4 : return MEM_read32(memPtr);
+    case 3 : if (MEM_isLittleEndian())
+                return MEM_read32(memPtr)<<8;
+             else
+                return MEM_read32(memPtr)>>8;
+    }
+}
+
 #if defined (__cplusplus)
 }
 #endif