From 899aa8e1f62a133b6fea56bc2e6773b707c82805 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Sat, 10 May 2008 18:10:15 +0000 Subject: [PATCH] Moved setjmp() to sigsetjmp.S for ppc and m68k, too. Should fix the kernel build. Haven't tested it though. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25431 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/libroot/posix/arch/m68k/Jamfile | 1 - src/system/libroot/posix/arch/m68k/setjmp.S | 20 ------------------- .../libroot/posix/arch/m68k/sigsetjmp.S | 14 +++++++++++++ src/system/libroot/posix/arch/ppc/Jamfile | 1 - src/system/libroot/posix/arch/ppc/setjmp.S | 15 -------------- src/system/libroot/posix/arch/ppc/sigsetjmp.S | 9 +++++++++ 6 files changed, 23 insertions(+), 37 deletions(-) delete mode 100644 src/system/libroot/posix/arch/m68k/setjmp.S delete mode 100644 src/system/libroot/posix/arch/ppc/setjmp.S diff --git a/src/system/libroot/posix/arch/m68k/Jamfile b/src/system/libroot/posix/arch/m68k/Jamfile index 2d26ed8bbe..c74a405421 100644 --- a/src/system/libroot/posix/arch/m68k/Jamfile +++ b/src/system/libroot/posix/arch/m68k/Jamfile @@ -6,7 +6,6 @@ local genericSources = ; MergeObject posix_arch_$(TARGET_ARCH).o : - setjmp.S sigsetjmp.S siglongjmp.S diff --git a/src/system/libroot/posix/arch/m68k/setjmp.S b/src/system/libroot/posix/arch/m68k/setjmp.S deleted file mode 100644 index ae446a1f69..0000000000 --- a/src/system/libroot/posix/arch/m68k/setjmp.S +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2005, Ingo Weinhold . All rights - * reserved. Distributed under the terms of the Haiku License. - */ - -#include "setjmp_internal.h" - -/* int setjmp(jmp_buf buffer) */ -FUNCTION(setjmp): - move.l (%a7)+,%a0 - move.l (%a7)+,%d0 - clr.l -(%a7) /* push 0 as 2nd arg */ - move.l %d0,-(%a7) - move.l %a0,-(%a7) - // call __sigsetjmp with saveMask = 0 - jmp __sigsetjmp - - -#pragma weak _setjmp=setjmp - diff --git a/src/system/libroot/posix/arch/m68k/sigsetjmp.S b/src/system/libroot/posix/arch/m68k/sigsetjmp.S index 7fd1f2464e..28cecbcabd 100644 --- a/src/system/libroot/posix/arch/m68k/sigsetjmp.S +++ b/src/system/libroot/posix/arch/m68k/sigsetjmp.S @@ -25,3 +25,17 @@ FUNCTION(sigsetjmp): #warning M68K: check this. jmp __setjmp_save_sigs + + +/* int setjmp(jmp_buf buffer) */ +FUNCTION(setjmp): + move.l (%a7)+,%a0 + move.l (%a7)+,%d0 + clr.l -(%a7) /* push 0 as 2nd arg */ + move.l %d0,-(%a7) + move.l %a0,-(%a7) + // call __sigsetjmp with saveMask = 0 + jmp __sigsetjmp + + +#pragma weak _setjmp=setjmp diff --git a/src/system/libroot/posix/arch/ppc/Jamfile b/src/system/libroot/posix/arch/ppc/Jamfile index 0bc7feba66..e5ed132f23 100644 --- a/src/system/libroot/posix/arch/ppc/Jamfile +++ b/src/system/libroot/posix/arch/ppc/Jamfile @@ -6,7 +6,6 @@ local genericSources = ; MergeObject posix_arch_$(TARGET_ARCH).o : - setjmp.S sigsetjmp.S siglongjmp.S diff --git a/src/system/libroot/posix/arch/ppc/setjmp.S b/src/system/libroot/posix/arch/ppc/setjmp.S deleted file mode 100644 index ac0d8420b6..0000000000 --- a/src/system/libroot/posix/arch/ppc/setjmp.S +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright 2005, Ingo Weinhold . All rights - * reserved. Distributed under the terms of the Haiku License. - */ - -#include "setjmp_internal.h" - -/* int setjmp(jmp_buf buffer) */ -FUNCTION(setjmp): - // call __sigsetjmp with saveMask = 0 - addi %r4, 0, 0 - b __sigsetjmp - -#pragma weak _setjmp=setjmp - diff --git a/src/system/libroot/posix/arch/ppc/sigsetjmp.S b/src/system/libroot/posix/arch/ppc/sigsetjmp.S index 91065ca116..8bf45a688a 100644 --- a/src/system/libroot/posix/arch/ppc/sigsetjmp.S +++ b/src/system/libroot/posix/arch/ppc/sigsetjmp.S @@ -40,3 +40,12 @@ FUNCTION(sigsetjmp): stw %r0, JMP_REGS_CR(3) b __setjmp_save_sigs + + +/* int setjmp(jmp_buf buffer) */ +FUNCTION(setjmp): + // call __sigsetjmp with saveMask = 0 + addi %r4, 0, 0 + b __sigsetjmp + +#pragma weak _setjmp=setjmp