-#define hash_stable(p, num, base) \
- hash_any_stable((p), (num)*sizeof(*(p)), (base))
+#define hash_stable(p, num, base) \
+ (sizeof(*(p)) == 8 ? hash_stable_64((p), (num), (base)) \
+ : sizeof(*(p)) == 4 ? hash_stable_32((p), (num), (base)) \
+ : sizeof(*(p)) == 2 ? hash_stable_16((p), (num), (base)) \
+ : sizeof(*(p)) == 1 ? hash_stable_8((p), (num), (base)) \
+ : hash_stable_fail((p), (num), sizeof(*(p)), (base)))