summaryrefslogtreecommitdiff
path: root/sysdeps/sh/sh4/__longjmp.S
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-12-20 18:05:57 +0000
committerJakub Jelinek <jakub@redhat.com>2005-12-20 18:05:57 +0000
commit2bf037b4e8e189e910a41744d79404b94235ab8b (patch)
treeec0234c3f56396c982e3ed5a77780423502a111f /sysdeps/sh/sh4/__longjmp.S
parent20a911071d1cfaf7d20d088efe9ede27c5809c09 (diff)
Updated to fedora-glibc-20051220T1751cvs/fedora-glibc-2_3_90-21
Diffstat (limited to 'sysdeps/sh/sh4/__longjmp.S')
-rw-r--r--sysdeps/sh/sh4/__longjmp.S12
1 files changed, 9 insertions, 3 deletions
diff --git a/sysdeps/sh/sh4/__longjmp.S b/sysdeps/sh/sh4/__longjmp.S
index 7cd83bfcc4..cc525952f7 100644
--- a/sysdeps/sh/sh4/__longjmp.S
+++ b/sysdeps/sh/sh4/__longjmp.S
@@ -1,5 +1,5 @@
/* longjmp for SH.
- Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2005 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
@@ -32,13 +32,19 @@ ENTRY (__longjmp)
mov.l @r4+, r12
mov.l @r4+, r13
mov.l @r4+, r14
- mov.l @r4+, r15
mov r5, r0 /* get the return value in place */
tst r0, r0
bf.s 1f
- lds.l @r4+, pr
+ mov.l @r4+, r15
mov #1,r0 /* can't let setjmp() return zero! */
1:
+#ifdef PTR_DEMANGLE
+ mov.l @r4+, r2
+ PTR_DEMANGLE (r2)
+ lds r2, pr
+#else
+ lds.l @r4+, pr
+#endif
ldc.l @r4+, gbr
lds.l @r4+, fpscr
fmov.s @r4+, fr12