node = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key ^ x;
z = 1U << (node->node.bit & 31);
node = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key ^ x;
z = 1U << (node->node.bit & 31);
old = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(old->node.branches.b[0], 0);
- __builtin_prefetch(old->node.branches.b[1], 0);
+ eb_prefetch(old->node.branches.b[0], 0);
+ eb_prefetch(old->node.branches.b[1], 0);
old_node_bit = old->node.bit;
old = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(old->node.branches.b[0], 0);
- __builtin_prefetch(old->node.branches.b[1], 0);
+ eb_prefetch(old->node.branches.b[0], 0);
+ eb_prefetch(old->node.branches.b[1], 0);
old_node_bit = old->node.bit;
node = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key ^ x;
z = 1ULL << (node->node.bit & 63);
node = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key ^ x;
z = 1ULL << (node->node.bit & 63);
old = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(old->node.branches.b[0], 0);
- __builtin_prefetch(old->node.branches.b[1], 0);
+ eb_prefetch(old->node.branches.b[0], 0);
+ eb_prefetch(old->node.branches.b[1], 0);
old_node_bit = old->node.bit;
old = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(old->node.branches.b[0], 0);
- __builtin_prefetch(old->node.branches.b[1], 0);
+ eb_prefetch(old->node.branches.b[0], 0);
+ eb_prefetch(old->node.branches.b[1], 0);
old_node_bit = old->node.bit;
b = *(unsigned char *)x;
side = 1 << node_bit;
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
k = node->key[pos];
b0 = node->node.branches.b[0];
}
}
+/* __builtin_prefetch() appears in gcc-3.1 documentation */
+#if !defined(eb_prefetch)
+# if defined(__GNUC__) && ((__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)))
+# define eb_prefetch(a,b) __builtin_prefetch(a,b)
+# else
+# define eb_prefetch(a,b) do { } while (0)
+# endif
+#endif
+
/**************************************\
* Public functions, for the end-user *
node = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key;
z = 1U << (node->node.bit & 31);
node = container_of(eb_untag(troot, EB_NODE),
struct eb32_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key;
z = 1U << (node->node.bit & 31);
node = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key;
z = 1ULL << (node->node.bit & 63);
node = container_of(eb_untag(troot, EB_NODE),
struct eb64_node, node.branches);
- __builtin_prefetch(node->node.branches.b[0], 0);
- __builtin_prefetch(node->node.branches.b[1], 0);
+ eb_prefetch(node->node.branches.b[0], 0);
+ eb_prefetch(node->node.branches.b[1], 0);
y = node->key;
z = 1ULL << (node->node.bit & 63);