don't steal %ebx for the GC on x86: it's also used by PIC
authorSimon Marlow <marlowsd@gmail.com>
Fri, 25 Jul 2008 12:29:21 +0000 (12:29 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Fri, 25 Jul 2008 12:29:21 +0000 (12:29 +0000)
rts/sm/GCThread.h

index d4376f7..1b5c5d4 100644 (file)
@@ -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 */