projects
/
cacao.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged revisions 7940-8026 via svnmerge from
[cacao.git]
/
src
/
threads
/
critical.c
diff --git
a/src/threads/critical.c
b/src/threads/critical.c
index a0d459561cd3dfb34687ac45b48e2fa63bc33567..5dda6b4c1c4303e3e8adbf3928dd43aaf8593e42 100644
(file)
--- a/
src/threads/critical.c
+++ b/
src/threads/critical.c
@@
-86,17
+86,28
@@
static s4 critical_comparator(const void *treenode, const void *node)
treecsn = treenode;
csn = node;
treecsn = treenode;
csn = node;
+#ifdef __S390__
+# define ADDR_MASK(x) ((u1 *)((s4)(x) & 0x7FFFFFFF))
+#else
+# define ADDR_MASK(x) (x)
+#endif
+
/* compare for avl_find if we have found an entry */
/* compare for avl_find if we have found an entry */
- if ((treecsn->start <= csn->start) && (csn->start < treecsn->end))
+ if (
+ (ADDR_MASK(treecsn->start) <= ADDR_MASK(csn->start)) &&
+ (ADDR_MASK(csn->start) < ADDR_MASK(treecsn->end))
+ )
return 0;
/* these are for walking the tree */
return 0;
/* these are for walking the tree */
- if (
treecsn->start < csn->start
)
+ if (
ADDR_MASK(treecsn->start) < ADDR_MASK(csn->start)
)
return -1;
else
return 1;
return -1;
else
return 1;
+
+#undef ADDR_MASK
}
}