/* src/vm/jit/linenumbertable.c - linenumber handling stuff
Copyright (C) 2007
- CACAOVM - Verein zu Foerderung der freien virtuellen Machine CACAO
+ CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO
This file is part of CACAO.
# include "vmcore/statistics.h"
#endif
+#if defined(__S390__)
+# define ADDR_MASK(type, x) ((type)((uintptr_t)(x) & 0x7FFFFFFF))
+#else
+# define ADDR_MASK(type, x) (x)
+#endif
/* linenumbertable_create ******************************************************
/* Fill the linenumber table entries in reverse order, so the
search can be forward. */
- pv = code->entrypoint;
+ pv = ADDR_MASK(uint8_t *, code->entrypoint);
for (le = list_last_unsynced(l); le != NULL;
le = list_prev_unsynced(l, le), lnte++) {
{
linenumbertable_entry_t *lntinline; /* special entry for inlined method */
+ pc = ADDR_MASK(void *, pc);
+
for (; lntsize > 0; lntsize--, lnte++) {
/* Note: In case of inlining this may actually compare the pc
against a methodinfo *, yielding a non-sensical