libroot/posix/stdio: Remove unused portions.
[haiku.git] / src / system / libroot / posix / arch / m68k / sigsetjmp.S
blob7a1f5014e767ea5140d41eaca1050cdaae4b8dcd
1 /* 
2  * Copyright 2005, Ingo Weinhold <bonefish@cs.tu-berlin.de>. All rights
3  * reserved. Distributed under the terms of the Haiku License.
4  */
6 #include <asm_defs.h>
8 #include "setjmp_internal.h"
10 /* int sigsetjmp(jmp_buf buffer, int saveMask) */
11 FUNCTION(__sigsetjmp):
12 FUNCTION(sigsetjmp):
13         // a0: buffer, d0: saveMask
14         move.l  (4,%a7),%a0
15         move.l  (8,%a7),%d0
17         // store non-volatile general purpose registers
18 #warning M68K:   do we want to save a7 there ??
19         movem.l %d2-%d7/%a2-%a7,(%a0)
21         // store special registers (link, condition)
22         clr.l   %d0
23         move    %ccr,%d0
24         move.w  %d0,(JMP_REGS_CCR,%a0)
25         move.l  (%a7),(JMP_REGS_PC,%a0)
27 #warning M68K: check this.
29         jmp             __setjmp_save_sigs
30 FUNCTION_END(__sigsetjmp)
31 FUNCTION_END(sigsetjmp)
34 /* int setjmp(jmp_buf buffer) */
35 FUNCTION(setjmp):
36 FUNCTION(_setjmp):
37         move.l  (%a7)+,%a0
38         move.l  (%a7)+,%d0
39         clr.l   -(%a7)          /* push 0 as 2nd arg */
40         move.l  %d0,-(%a7)
41         move.l  %a0,-(%a7)
42         // call __sigsetjmp with saveMask = 0
43         jmp     __sigsetjmp
44 FUNCTION_END(setjmp)
46 #pragma weak _setjmp=setjmp