diff --git a/C/tracer.c b/C/tracer.c index c63bcf400..3cbb52861 100644 --- a/C/tracer.c +++ b/C/tracer.c @@ -150,7 +150,8 @@ check_area(void) } */ -PredEntry *old_p = NULL; +PredEntry *old_p[10000]; +Term old_x1[10000], old_x2[10000], old_x3[10000]; void low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) @@ -163,14 +164,19 @@ low_level_trace(yap_low_level_port port, PredEntry *pred, CELL *args) LOCK(Yap_heap_regs->low_level_trace_lock); sc = Yap_heap_regs; vsc_count++; - old_p = pred; if (LCL0[-30]) { - UNLOCK(Yap_heap_regs->low_level_trace_lock); + UNLOCK(Yap_heap_regs->low_level_trace_lock); + old_p[worker_id] = pred; + old_x2[worker_id] = ARG2; + old_x1[worker_id] = ARG1; + old_x3[worker_id] = ARG3; return; } - if (FALSE && vsc_count == 59855LL) { - jmp_deb(1); - } + jmp_deb(worker_id); + old_p[worker_id] = pred; + old_x2[worker_id] = ARG2; + old_x1[worker_id] = ARG1; + old_x3[worker_id] = ARG3; #ifdef COMMENTED //*(H0+(0xb65f2850-0xb64b2008)/sizeof(CELL))==0xc || //0x4fd4d diff --git a/H/Yap.h b/H/Yap.h index fe267bc91..c22bae14c 100644 --- a/H/Yap.h +++ b/H/Yap.h @@ -10,7 +10,7 @@ * File: Yap.h.m4 * * mods: * * comments: main header file for YAP * -* version: $Id: Yap.h,v 1.23 2007-06-29 01:33:35 vsc Exp $ * +* version: $Id: Yap.h,v 1.24 2008-01-25 00:21:28 vsc Exp $ * *************************************************************************/ #include "config.h" @@ -237,7 +237,10 @@ extern char Yap_Option[20]; #define MMAP_ADDR 0x40000000 #elif mips #define MMAP_ADDR 0x02000000 -#elif __APPLE__ +#elif __APPLE__ && __LP64__ +// this address is high enough that it is likely not to confuse Apple's malloc debugger; lowest possible is 0x100200000 +#define MMAP_ADDR 0x200000000 +#elif __APPLE__ && !__LP64__ #define MMAP_ADDR 0x20000000 #else #define MMAP_ADDR 0x08800000 @@ -635,7 +638,7 @@ typedef enum if you place things in the lower addresses (power to the libc people). */ -#if (defined(_AIX) || defined(_WIN32) || defined(__APPLE__) || defined(sparc) || defined(__sparc) || defined(mips) || defined(__FreeBSD__) || defined(_POWER) || defined(__POWERPC__) || defined(__linux__) || defined(IN_SECOND_QUADRANT) || defined(__CYGWIN__)) +#if (defined(_AIX) || (defined(__APPLE__) && !defined(__LP64__)) || defined(_WIN32) || defined(sparc) || defined(__sparc) || defined(mips) || defined(__FreeBSD__) || defined(_POWER) || defined(__POWERPC__) || defined(__linux__) || defined(IN_SECOND_QUADRANT) || defined(__CYGWIN__)) #define USE_LOW32_TAGS 1 #endif @@ -833,7 +836,7 @@ FunctorOfTerm (Term t) } -#if USE_SYSTEM_MALLOC || USE_DL_MALLOC +#if (USE_SYSTEM_MALLOC || USE_DL_MALLOC) && !__LP64__ #if USE_LOW32_TAGS inline EXTERN Term MkAtomTerm (Atom); diff --git a/changes-5.1.html b/changes-5.1.html index 0e5c27cc3..428ec96f3 100644 --- a/changes-5.1.html +++ b/changes-5.1.html @@ -17,6 +17,7 @@