Demangle also r14 and r15.
authordrepper <drepper>
Fri, 20 Jan 2006 16:44:08 +0000 (16:44 +0000)
committerdrepper <drepper>
Fri, 20 Jan 2006 16:44:08 +0000 (16:44 +0000)
sysdeps/sh/sh3/__longjmp.S
sysdeps/sh/sh4/__longjmp.S

index 08d39d0..c6d8a32 100644 (file)
@@ -1,5 +1,5 @@
 /* longjmp for SH.
-   Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -30,19 +30,26 @@ ENTRY (__longjmp)
        mov.l   @r4+, r10
        mov.l   @r4+, r11
        mov.l   @r4+, r12
-       mov.l   @r4+, r13
-       mov.l   @r4+, r14
        mov     r5, r0          /* get the return value in place */
        tst     r0, r0
        bf.s    1f
-        mov.l  @r4+, r15
+        mov.l  @r4+, r13
        mov     #1,r0           /* can't let setjmp() return zero! */
 1:
 #ifdef PTR_DEMANGLE
        mov.l   @r4+, r2
-       PTR_DEMANGLE (r2)
+       PTR_DEMANGLE (r2, r1)
+       mov     r2, r14
+       mov.l   @r4+, r2
+       PTR_DEMANGLE2 (r2, r1)
+       mov     r2, r15
+       mov.l   @r4+, r2
+       PTR_DEMANGLE2 (r2, r1)
        lds     r2, pr
+       mov     #0, r1
 #else
+       mov.l   @r4+, r14
+       mov.l   @r4+, r15
        lds.l   @r4+, pr
 #endif
        rts
index cc52595..320a7d1 100644 (file)
@@ -1,5 +1,5 @@
 /* longjmp for SH.
-   Copyright (C) 1999, 2000, 2005 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000, 2005, 2006 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -30,19 +30,26 @@ ENTRY (__longjmp)
        mov.l   @r4+, r10
        mov.l   @r4+, r11
        mov.l   @r4+, r12
-       mov.l   @r4+, r13
-       mov.l   @r4+, r14
        mov     r5, r0          /* get the return value in place */
        tst     r0, r0
        bf.s    1f
-        mov.l  @r4+, r15
+        mov.l  @r4+, r13
        mov     #1,r0           /* can't let setjmp() return zero! */
 1:
 #ifdef PTR_DEMANGLE
        mov.l   @r4+, r2
-       PTR_DEMANGLE (r2)
+       PTR_DEMANGLE (r2, r1)
+       mov     r2, r14
+       mov.l   @r4+, r2
+       PTR_DEMANGLE2 (r2, r1)
+       mov     r2, r15
+       mov.l   @r4+, r2
+       PTR_DEMANGLE2 (r2, r1)
        lds     r2, pr
+       mov     #0, r1
 #else
+       mov.l   @r4+, r14
+       mov.l   @r4+, r15
        lds.l   @r4+, pr
 #endif
        ldc.l   @r4+, gbr