From 802a7124a6ea704da5fccdf9b7d09772d46995c1 Mon Sep 17 00:00:00 2001
From: David Jones
Date: Thu, 1 Mar 2007 19:30:53 +0000
Subject: Mps: using common stackscan code for freebsd/darwin.
Copied from Perforce
Change: 161874
ServerID: perforce.ravenbrook.com
---
mps/code/fri4gc.gmk | 2 +-
mps/code/ssfri3.c | 100 ----------------------------------------------------
2 files changed, 1 insertion(+), 101 deletions(-)
delete mode 100644 mps/code/ssfri3.c
(limited to 'mps/code')
diff --git a/mps/code/fri4gc.gmk b/mps/code/fri4gc.gmk
index 60f312f65eb..adeb3f222a4 100644
--- a/mps/code/fri4gc.gmk
+++ b/mps/code/fri4gc.gmk
@@ -8,7 +8,7 @@ PFM = fri4gc
PFMDEFS = -D_REENTRANT
MPMPF = lockfr.c thfri4.c pthrdext.c vmfr.c \
- protfr.c protfri3.c prmcan.c ssfri3.c span.c
+ protfr.c protfri3.c prmcan.c ssixi3.c span.c
SWPF = than.c vmfr.c protsw.c prmcan.c ssan.c
LIBS = -lm -pthread
diff --git a/mps/code/ssfri3.c b/mps/code/ssfri3.c
deleted file mode 100644
index 1a40225911b..00000000000
--- a/mps/code/ssfri3.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ssfri3.c: FREEBSD/INTEL STACK SCANNING
- *
- * $Id$
- * Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
- *
- * This scans the stack and fixes the registers which may contain
- * roots. See .
- *
- * The registers edi, esi, ebx are the registers defined to be preserved
- * across function calls and therefore may contain roots.
- * These are pushed on the stack for scanning.
- *
- * SOURCES
- *
- * .source.callees.saves: Set of callee-saved registers taken from
- * CALL_USED_REGISTERS in /config/i386/i386.h.
- *
- * ASSUMPTIONS
- *
- * .assume.align: The stack pointer is assumed to be aligned on a word
- * boundary.
- *
- * .assume.asm.stack: The compiler must not do wacky things with the
- * stack pointer around a call since we need to ensure that the
- * callee-save regs are visible during TraceScanArea.
- *
- * .assume.asm.order: The volatile modifier should prevent movement
- * of code, which might break .assume.asm.stack.
- *
- */
-
-
-#include "mpm.h"
-
-SRCID(ssfri3, "$Id$");
-
-/* .assume.asm.order */
-#define ASMV(x) __asm__ volatile (x)
-
-
-Res StackScan(ScanState ss, Addr *stackBot)
-{
- Addr *stackTop;
- Res res;
-
- /* .assume.asm.stack */
- ASMV("push %ebx"); /* These registers are callee-saved */
- ASMV("push %esi"); /* and so may contain roots. They are pushed */
- ASMV("push %edi"); /* for scanning. See .source.callees.saves. */
- ASMV("mov %%esp, %0" : "=r" (stackTop) :); /* stackTop = esp */
-
- AVER(AddrIsAligned((Addr)stackTop, sizeof(Addr))); /* .assume.align */
- res = TraceScanArea(ss, stackTop, stackBot);
-
- ASMV("add $12, %esp"); /* pop 3 regs to restore the stack pointer */
-
- return res;
-}
-
-
-/* C. COPYRIGHT AND LICENSE
- *
- * Copyright (C) 2001-2002 Ravenbrook Limited .
- * All rights reserved. This is an open source license. Contact
- * Ravenbrook for commercial licensing options.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Redistributions in any form must be accompanied by information on how
- * to obtain complete source code for this software and any accompanying
- * software that uses this software. The source code must either be
- * included in the distribution or be available for no more than the cost
- * of distribution plus a nominal fee, and must be freely redistributable
- * under reasonable conditions. For an executable file, complete source
- * code means the source code for all modules it contains. It does not
- * include source code for modules or files that typically accompany the
- * major components of the operating system on which the executable file
- * runs.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
- * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
- * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, OR NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDERS AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
--
cgit v1.2.1