/*
- * Copyright (C) 1995-2007 University of Karlsruhe. All right reserved.
+ * Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
*
* This file is part of libFirm.
*
#ifndef FIRM_ADT_HASHPTR_H
#define FIRM_ADT_HASHPTR_H
-#include "firm_config.h"
-#include "compiler.h"
+#include "../begin.h"
#define _FIRM_FNV_OFFSET_BASIS 2166136261U
#define _FIRM_FNV_FNV_PRIME 16777619U
/* Computing x * _FIRM_FNV_FNV_PRIME */
#define _FIRM_FNV_TIMES_PRIME(x) ((x) * _FIRM_FNV_FNV_PRIME)
-static INLINE unsigned firm_fnv_hash(const unsigned char *data, unsigned bytes)
+static inline unsigned firm_fnv_hash(const unsigned char *data, unsigned bytes)
{
unsigned i;
unsigned hash = _FIRM_FNV_OFFSET_BASIS;
return hash;
}
-static INLINE unsigned firm_fnv_hash_str(const char *data)
+static inline unsigned firm_fnv_hash_str(const char *data)
{
unsigned i;
unsigned hash = _FIRM_FNV_OFFSET_BASIS;
*/
#define HASH_PTR(ptr) ((unsigned)(((char *) (ptr) - (char *)0) >> 3))
+static inline unsigned hash_ptr(const void *ptr)
+{
+ return HASH_PTR(ptr);
+}
+
/**
* Hash a string.
* @param str The string (can be const).
#pragma warning(disable:4307)
#endif /* _MSC_VER */
-static INLINE unsigned _hash_combine(unsigned x, unsigned y)
+static inline unsigned _hash_combine(unsigned x, unsigned y)
{
- unsigned hash = _FIRM_FNV_TIMES_PRIME(_FIRM_FNV_OFFSET_BASIS);
- hash ^= x;
- hash = _FIRM_FNV_TIMES_PRIME(hash);
- hash ^= y;
- return hash;
+ unsigned hash = _FIRM_FNV_TIMES_PRIME(_FIRM_FNV_OFFSET_BASIS);
+ hash ^= x;
+ hash = _FIRM_FNV_TIMES_PRIME(hash);
+ hash ^= y;
+ return hash;
}
#ifdef _MSC_VER
*/
#define HASH_COMBINE(a,b) _hash_combine(a, b)
+#include "../end.h"
+
#endif