diff options
author | Simon Marlow <marlowsd@gmail.com> | 2008-07-25 12:29:21 +0000 |
---|---|---|
committer | Simon Marlow <marlowsd@gmail.com> | 2008-07-25 12:29:21 +0000 |
commit | 2ad3ac2baca1c6fd0d69f3417fa62ae10cffcf49 (patch) | |
tree | ffa74f2073e2b6b73e0c81bd19e3b8effa3a38d7 /rts | |
parent | c6453def7dcfd8bd9468f488edef6083d37eec87 (diff) | |
download | haskell-2ad3ac2baca1c6fd0d69f3417fa62ae10cffcf49.tar.gz |
don't steal %ebx for the GC on x86: it's also used by PIC
Diffstat (limited to 'rts')
-rw-r--r-- | rts/sm/GCThread.h | 4 |
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 */ |