diff options
Diffstat (limited to 'includes/Regs.h')
| -rw-r--r-- | includes/Regs.h | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/includes/Regs.h b/includes/Regs.h index 6524c8f669..0f974ec4ad 100644 --- a/includes/Regs.h +++ b/includes/Regs.h @@ -22,14 +22,6 @@ #ifndef REGS_H #define REGS_H -#if defined(HAVE_FRAMEWORK_GMP) -#include <GMP/gmp.h> -#elif defined(HAVE_LIB_GMP) -#include <gmp.h> -#else -#include "gmp.h" // Needs MP_INT definition -#endif - /* * Spark pools: used to store pending sparks * (THREADED_RTS & PARALLEL_HASKELL only) @@ -79,6 +71,11 @@ typedef union { StgTSOPtr t; } StgUnion; +// Urgh.. we don't know the size of an MP_INT here because we haven't +// #included gmp.h. We should really autoconf this, but GMP may not +// be available at ./configure time if we're building it (GMP) locally. +#define MP_INT_WORDS 3 + /* * This is the table that holds shadow-locations for all the STG * registers. The shadow locations are used when: @@ -117,11 +114,11 @@ typedef struct StgRegTable_ { // rmp_tmp1..rmp_result2 are only used in THREADED_RTS builds to // avoid per-thread temps in bss, but currently always incldue here // so we just run mkDerivedConstants once - StgWord rmp_tmp_w; - MP_INT rmp_tmp1; - MP_INT rmp_tmp2; - MP_INT rmp_result1; - MP_INT rmp_result2; + StgWord rmp_tmp_w[MP_INT_WORDS]; + StgWord rmp_tmp1[MP_INT_WORDS]; + StgWord rmp_tmp2[MP_INT_WORDS]; + StgWord rmp_result1[MP_INT_WORDS]; + StgWord rmp_result2[MP_INT_WORDS]; StgWord rRet; // holds the return code of the thread StgSparkPool rSparks; /* per-task spark pool */ } StgRegTable; |
