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