From a0350df95da5212ba60bdd1f16eaa49e3b502158 Mon Sep 17 00:00:00 2001
From: green <green@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Thu, 17 Jun 1999 23:22:51 +0000
Subject: [PATCH] 	* mach_dep.c (GC_push_regs): FreeBSD-elf support (from
 	Carlo Dapor <carlo@vis.ethz.ch>).

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@27580 138bc75d-0d04-0410-961f-82ee72b054a4
---
 boehm-gc/ChangeLog  | 5 +++++
 boehm-gc/mach_dep.c | 6 +++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/boehm-gc/ChangeLog b/boehm-gc/ChangeLog
index 423fe711fbe7..1ef0f9aba951 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 e6087d946844..09a79883fdf9 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");
-- 
GitLab