aboutsummaryrefslogtreecommitdiff
path: root/boehm-gc
diff options
context:
space:
mode:
authorAnthony Green <green@cygnus.com>1999-06-17 23:22:51 +0000
committerAnthony Green <green@gcc.gnu.org>1999-06-17 23:22:51 +0000
commit37b454bd0ba567f9987565c1ea44934f59961325 (patch)
treeeb4c0748c18bee26e4ee402c5b5585273499d78a /boehm-gc
parent00e595499eaffdc9a3eca7b710adc32e73c44853 (diff)
downloadgcc-37b454bd0ba567f9987565c1ea44934f59961325.zip
gcc-37b454bd0ba567f9987565c1ea44934f59961325.tar.gz
gcc-37b454bd0ba567f9987565c1ea44934f59961325.tar.bz2
mach_dep.c (GC_push_regs): FreeBSD-elf support (from Carlo Dapor <carlo@vis.ethz.ch>).
* mach_dep.c (GC_push_regs): FreeBSD-elf support (from Carlo Dapor <carlo@vis.ethz.ch>). From-SVN: r27580
Diffstat (limited to 'boehm-gc')
-rw-r--r--boehm-gc/ChangeLog5
-rw-r--r--boehm-gc/mach_dep.c6
2 files changed, 8 insertions, 3 deletions
diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 423fe71..1ef0f9a 100644
--- a/boehm-gc/ChangeLog
+++ b/boehm-gc/ChangeLog
@@ -1,3 +1,8 @@
+1999-06-17 Anthony Green <green@cygnus.com>
+
+ * mach_dep.c (GC_push_regs): FreeBSD-elf support (from
+ Carlo Dapor <carlo@vis.ethz.ch>).
+
1999-05-05 Gilles Zunino <Gilles.Zunino@hei.fr>
* configure.in: Switch from irix threads to posix threads
diff --git a/boehm-gc/mach_dep.c b/boehm-gc/mach_dep.c
index e6087d9..09a7988 100644
--- a/boehm-gc/mach_dep.c
+++ b/boehm-gc/mach_dep.c
@@ -170,7 +170,7 @@ void GC_push_regs()
# if defined(I386) &&!defined(OS2) &&!defined(SVR4) &&!defined(MSWIN32) \
&& !defined(SCO) && !defined(SCO_ELF) && !(defined(LINUX) \
- && defined(__ELF__)) && !defined(DOS4GW)
+ && defined(__ELF__)) && !defined(DOS4GW) && !defined(FREEBSD)
/* I386 code, generic code does not appear to work */
/* It does appear to work under OS2, and asms dont */
/* This is used for some 38g UNIX variants and for CYGWIN32 */
@@ -183,8 +183,8 @@ void GC_push_regs()
asm("pushl %ebx"); asm("call _GC_push_one"); asm("addl $4,%esp");
# endif
-# if defined(I386) && defined(LINUX) && defined(__ELF__)
- /* This is modified for Linux with ELF (Note: _ELF_ only) */
+# if defined(I386) && (defined(LINUX) || defined(FREEBSD)) && defined(__ELF__)
+ /* This is modified for Linux/FreeBSD with ELF (Note: _ELF_ only) */
asm("pushl %eax"); asm("call GC_push_one"); asm("addl $4,%esp");
asm("pushl %ecx"); asm("call GC_push_one"); asm("addl $4,%esp");
asm("pushl %edx"); asm("call GC_push_one"); asm("addl $4,%esp");