diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-01-03 17:39:24 -0700 |
commit | a6c1ed4716cf02626ea035beb6dd4a921642ba80 (patch) | |
tree | ef582c1b52819e27bdd16097ec03b69799d04ede /newlib/libc/sys/sparc64/sigsetjmp.S | |
parent | f6c9a624fa8a6878a7fb2b02f55e4990a20feb59 (diff) |
Use libc from agbcc instead of standalone newlib\nYou must have AGBCC commit 80d029caec189587f8b9294b6c8a5a489b8f5f88 in order to compile pmd_red.gbalibc
Diffstat (limited to 'newlib/libc/sys/sparc64/sigsetjmp.S')
-rw-r--r-- | newlib/libc/sys/sparc64/sigsetjmp.S | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/newlib/libc/sys/sparc64/sigsetjmp.S b/newlib/libc/sys/sparc64/sigsetjmp.S deleted file mode 100644 index 7751e5f..0000000 --- a/newlib/libc/sys/sparc64/sigsetjmp.S +++ /dev/null @@ -1,77 +0,0 @@ -! This file is called sigsetjmp.s because that is what V8 uses. -! We do not define sigsetjmp() or setlongjmp() yet. -! Solaris has setjmp/longjmp in setjmp.o. Move this stuff there. - -#include <sys/syscallasm.h> - - TEXT_SECTION - ALIGN (4) - -#ifdef __svr4__ - - GLOBAL (ASM_SYMBOL (setjmp)) - .proc 04 -ASM_SYMBOL (setjmp): - - clr [%o0] - stx %sp,[%o0+8] - add %o7,8,%g1 - stx %g1,[%o0+16] - retl - mov %g0,%o0 - - GLOBAL (ASM_SYMBOL (longjmp)) - .proc 04 -ASM_SYMBOL (longjmp): - - flushw ! flush register windows - sub %sp,136,%sp - ldx [%o0+8],%fp - ldx [%o0+16],%g1 - tst %o1 - bne L0 - sub %g1,8,%o7 - mov 1,%o1 -L0: - retl - restore %o1,0,%o0 - -#else - - GLOBAL (ASM_SYMBOL (setjmp)) - .proc 04 -ASM_SYMBOL (setjmp): - save %sp,-136,%sp - or %g0,%g0,%o0 ! %o0 = 0 - or %g0,0x6d,%g1 ! %g1 = 0x6d (syscall number) - ta SYSCALL_TRAP - stw %o0,[%i0+4] ! save result at [%i0+4] (sigmask?) - add %fp,-8,%o1 ! %o1 -> tmp 8 byte buffer - or %g0,%g0,%o0 ! %o0 = 0 - or %g0,0x70,%g1 ! %g1 = 0x70 (syscall number) - ta SYSCALL_TRAP - lduw [%fp-4],%g1 ! %g1 = onsstack? - stw %fp,[%i0+8] ! save %fp at [%i0+8] - stw %g1,[%i0+0] ! save ? at [%i0+8] - add %i7,8,%g1 ! %g1 = return address - stw %g1,[%i0+12] ! save return address at [%i0+12] - add %g1,4,%g1 ! %g1 = nPC - stw %g1,[%i0+16] ! save nPC at [%i0+16] - stw %g0,[%i0+20] - stw %g0,[%i0+24] - stw %g0,[%i0+32] - jmpl %i7+8,%g0 - restore %g0,0,%o0 - - GLOBAL (ASM_SYMBOL (longjmp)) - .proc 04 -ASM_SYMBOL (longjmp): - orcc %g0,%o1,%g0 ! return val == 0 ? - be,a L1 ! branch if 0 - or %g0,1,%o1 ! make it 1 (executed if branch taken) -L1: - or %g0,0x8b,%g1 ! set syscall 0x8b - stw %o1,[%o0+28] ! save return val for restoration - ta SYSCALL_TRAP - -#endif /* ! __svr4__ */ |