aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nptl/ChangeLog3
-rw-r--r--nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h11
2 files changed, 9 insertions, 5 deletions
diff --git a/nptl/ChangeLog b/nptl/ChangeLog
index bc2e98b2c6..4738d4612d 100644
--- a/nptl/ChangeLog
+++ b/nptl/ChangeLog
@@ -1,5 +1,8 @@
2012-05-27 Chung-Lin Tang <cltang@codesourcery.com>
+ * sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO, LOAD_ARGS_1)
+ (LOAD_ARGS_2 ,LOAD_ARGS_3 ,LOAD_ARGS_4): Add CFI restores.
+
* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_lock_wait_private)
(__lll_lock_wait, __lll_timedlock_wait, __lll_timedwait_tid): Add CFI
directives.
diff --git a/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h b/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
index 49d98cdea0..9ffe52f4ac 100644
--- a/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
+++ b/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+/* Copyright (C) 2003-2012 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
@@ -71,6 +71,7 @@
CDISABLE; \
mov.l @r15+,r0; \
cfi_adjust_cfa_offset (-4); \
+ cfi_restore (r0); \
lds.l @r15+,pr; \
cfi_adjust_cfa_offset (-4); \
cfi_restore (pr); \
@@ -97,10 +98,10 @@
# define SAVE_ARGS_6 SAVE_ARGS_5
# define LOAD_ARGS_0 /* Nothing. */
-# define LOAD_ARGS_1 LOAD_ARGS_0; mov.l @(0,r15),r4
-# define LOAD_ARGS_2 LOAD_ARGS_1; mov.l @(4,r15),r5
-# define LOAD_ARGS_3 LOAD_ARGS_2; mov.l @(8,r15),r6
-# define LOAD_ARGS_4 LOAD_ARGS_3; mov.l @(12,r15),r7
+# define LOAD_ARGS_1 LOAD_ARGS_0; mov.l @(0,r15),r4; cfi_restore (r4)
+# define LOAD_ARGS_2 LOAD_ARGS_1; mov.l @(4,r15),r5; cfi_restore (r5)
+# define LOAD_ARGS_3 LOAD_ARGS_2; mov.l @(8,r15),r6; cfi_restore (r6)
+# define LOAD_ARGS_4 LOAD_ARGS_3; mov.l @(12,r15),r7; cfi_restore (r7)
# define LOAD_ARGS_5 LOAD_ARGS_4
# define LOAD_ARGS_6 LOAD_ARGS_5