|
@@ -8,7 +8,7 @@
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License. See the file COPYING.LIB in the main
|
|
* General Public License. See the file COPYING.LIB in the main
|
|
* directory of this archive for more details.
|
|
* directory of this archive for more details.
|
|
- *
|
|
+ *
|
|
* Written by Miles Bader <miles@gnu.org>
|
|
* Written by Miles Bader <miles@gnu.org>
|
|
*/
|
|
*/
|
|
|
|
|
|
@@ -16,38 +16,41 @@
|
|
#define _ASM
|
|
#define _ASM
|
|
#include <bits/setjmp.h>
|
|
#include <bits/setjmp.h>
|
|
|
|
|
|
-#include <clinkage.h>
|
|
+#include <libc-symbols.h>
|
|
|
|
|
|
.text
|
|
.text
|
|
-C_ENTRY(setjmp):
|
|
+ .globl C_SYMBOL_NAME(setjmp)
|
|
- addi r6, r0, 1 /* Save the signal mask. */
|
|
+ .align 4
|
|
|
|
+C_SYMBOL_NAME(setjmp):
|
|
braid C_SYMBOL_NAME(__sigsetjmp)
|
|
braid C_SYMBOL_NAME(__sigsetjmp)
|
|
- nop
|
|
+ addi r6, r0, 1 /* Save the signal mask. */
|
|
|
|
|
|
.globl C_SYMBOL_NAME(_setjmp)
|
|
.globl C_SYMBOL_NAME(_setjmp)
|
|
C_SYMBOL_NAME(_setjmp):
|
|
C_SYMBOL_NAME(_setjmp):
|
|
- add r6, r0, r0 /* Don't save the signal mask. */
|
|
+ and r6, r0, r0 /* Don't save the signal mask. */
|
|
|
|
|
|
.globl C_SYMBOL_NAME(__sigsetjmp)
|
|
.globl C_SYMBOL_NAME(__sigsetjmp)
|
|
C_SYMBOL_NAME(__sigsetjmp):
|
|
C_SYMBOL_NAME(__sigsetjmp):
|
|
/* Save registers relative to r5 (arg0)*/
|
|
/* Save registers relative to r5 (arg0)*/
|
|
swi r1, r5, 0 /* stack pointer */
|
|
swi r1, r5, 0 /* stack pointer */
|
|
swi r15, r5, 4 /* link register */
|
|
swi r15, r5, 4 /* link register */
|
|
- swi r18, r5, 8 /* assembler temp */
|
|
+ swi r2, r5, 8 /* SDA and SDA2 ptrs */
|
|
- swi r19, r5, 12 /* now call-preserved regs */
|
|
+ swi r13, r5, 12
|
|
- swi r20, r5, 16
|
|
+ swi r18, r5, 16 /* assembler temp */
|
|
- swi r21, r5, 20
|
|
+ swi r19, r5, 20 /* now call-preserved regs */
|
|
- swi r22, r5, 24
|
|
+ swi r20, r5, 24
|
|
- swi r23, r5, 28
|
|
+ swi r21, r5, 28
|
|
- swi r24, r5, 32
|
|
+ swi r22, r5, 32
|
|
- swi r25, r5, 36
|
|
+ swi r23, r5, 36
|
|
- swi r26, r5, 40
|
|
+ swi r24, r5, 40
|
|
- swi r27, r5, 44
|
|
+ swi r25, r5, 44
|
|
- swi r28, r5, 48
|
|
+ swi r26, r5, 48
|
|
- swi r29, r5, 52
|
|
+ swi r27, r5, 52
|
|
- swi r30, r5, 56
|
|
+ swi r28, r5, 56
|
|
|
|
+ swi r29, r5, 60
|
|
|
|
+ swi r30, r5, 64
|
|
|
|
+ swi r31, r5, 68
|
|
|
|
|
|
/* Make a tail call to __sigjmp_save; it takes the same args. */
|
|
/* Make a tail call to __sigjmp_save; it takes the same args. */
|
|
braid C_SYMBOL_NAME(__sigjmp_save)
|
|
braid C_SYMBOL_NAME(__sigjmp_save)
|
|
nop
|
|
nop
|
|
-C_END(setjmp)
|
|
|