# define NEED_FIND_LIMIT
# endif
-#if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__))
+#if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc) || defined(__powerpc__))
# include <machine/trap.h>
# if !defined(PCR)
# define NEED_FIND_LIMIT
}
# endif
-# if defined(FREEBSD) && (defined(I386) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR)
+# if defined(FREEBSD) && (defined(I386) || defined(X86_64) || defined(powerpc) || defined(__powerpc__)) && !defined(PCR)
/* Its unclear whether this should be identical to the above, or */
/* whether it should apply to non-X86 architectures. */
/* For now we don't assume that there is always an empty page after */
/* This is the address that caused the fault */
#if defined(POWERPC)
- addr = (char*) exc_state.dar;
+ addr = (char*) exc_state. THREAD_FLD(dar);
#elif defined (I386) || defined (X86_64)
- addr = (char*) exc_state.faultvaddr;
+ addr = (char*) exc_state. THREAD_FLD(faultvaddr);
#else
# error FIXME for non POWERPC/I386
#endif