summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
authorBen.Lippmeier@anu.edu.au <unknown>2009-01-05 03:07:58 +0000
committerBen.Lippmeier@anu.edu.au <unknown>2009-01-05 03:07:58 +0000
commite50364a5a8e5d736445cd8e5b10a813ec0a5a2e0 (patch)
tree8ef5fceda89573eedfff8eeecfe0f0d831fa718b /rts
parent9efc323b5b57a0b4d50008c942a90a45dc51ee2d (diff)
downloadhaskell-e50364a5a8e5d736445cd8e5b10a813ec0a5a2e0.tar.gz
Don't pin a register for gc_thread on SPARC.
This makes the build work again.
Diffstat (limited to 'rts')
-rw-r--r--rts/sm/GCThread.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/rts/sm/GCThread.h b/rts/sm/GCThread.h
index d6af2b1571..1d0a05ce44 100644
--- a/rts/sm/GCThread.h
+++ b/rts/sm/GCThread.h
@@ -195,7 +195,14 @@ extern gc_thread **gc_threads;
#define GLOBAL_REG_DECL(type,name,reg) register type name REG(reg);
-#if defined(REG_Base) && !defined(i386_HOST_ARCH)
+#if defined(sparc_HOST_ARCH)
+// Don't use REG_base or R1 for gct on SPARC because they're getting clobbered
+// by something else. Not sure what yet. -- BL 2009/01/03
+
+extern __thread gc_thread* gct;
+#define DECLARE_GCT __thread gc_thread* gct;
+
+#elif defined(REG_Base) && !defined(i386_HOST_ARCH)
// on i386, REG_Base is %ebx which is also used for PIC, so we don't
// want to steal it