about summary refs log tree commit diff
diff options
context:
space:
mode:
authorChung-Lin Tang <cltang@codesourcery.com>2012-05-28 00:47:07 +0200
committerThomas Schwinge <thomas@codesourcery.com>2012-05-28 00:47:07 +0200
commitd701a1abe29b69b0c40d4536781db7333fc5312d (patch)
tree7d654521733a84670791a390f40198bdf778a0dd
parent65a4de4e06709264e7e06152cd88aaec1f03fd11 (diff)
downloadglibc-d701a1abe29b69b0c40d4536781db7333fc5312d.tar.gz
glibc-d701a1abe29b69b0c40d4536781db7333fc5312d.tar.xz
glibc-d701a1abe29b69b0c40d4536781db7333fc5312d.zip
SH: Add CFI directives.
-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