summaryrefslogtreecommitdiff
path: root/rts/sm/GCThread.h
diff options
context:
space:
mode:
authorSimon Marlow <marlowsd@gmail.com>2008-07-25 12:29:21 +0000
committerSimon Marlow <marlowsd@gmail.com>2008-07-25 12:29:21 +0000
commit2ad3ac2baca1c6fd0d69f3417fa62ae10cffcf49 (patch)
treeffa74f2073e2b6b73e0c81bd19e3b8effa3a38d7 /rts/sm/GCThread.h
parentc6453def7dcfd8bd9468f488edef6083d37eec87 (diff)
downloadhaskell-2ad3ac2baca1c6fd0d69f3417fa62ae10cffcf49.tar.gz
don't steal %ebx for the GC on x86: it's also used by PIC
Diffstat (limited to 'rts/sm/GCThread.h')
-rw-r--r--rts/sm/GCThread.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/rts/sm/GCThread.h b/rts/sm/GCThread.h
index d4376f77a7..1b5c5d4291 100644
--- a/rts/sm/GCThread.h
+++ b/rts/sm/GCThread.h
@@ -196,7 +196,9 @@ extern gc_thread **gc_threads;
#define GLOBAL_REG_DECL(type,name,reg) register type name REG(reg);
-#if defined(REG_Base)
+#if 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
GLOBAL_REG_DECL(gc_thread*, gct, REG_Base)
#define DECLARE_GCT /* nothing */