[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[commits] r11478 - in /fsf/trunk/libc: ChangeLog sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
- To: commits@xxxxxxxxxx
- Subject: [commits] r11478 - in /fsf/trunk/libc: ChangeLog sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
- From: eglibc@xxxxxxxxxx
- Date: Thu, 09 Sep 2010 07:07:09 -0000
Author: eglibc
Date: Thu Sep 9 00:07:08 2010
New Revision: 11478
Log:
Import glibc-mainline for 2010-09-09
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Thu Sep 9 00:07:08 2010
@@ -1,3 +1,11 @@
+2010-09-08 Chung-Lin Tang <cltang@xxxxxxxxxxxxxxxx>
+ Ulrich Drepper <drepper@xxxxxxxxxx>
+
+ [BZ #11968]
+ * sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
+ (____longjmp_chk): Use %ebx for saving value across system call.
+ Add unwind info.
+
2010-09-06 Andreas Schwab <schwab@xxxxxxxxxx>
* manual/Makefile: Don't mix pattern rules with normal rules.
Modified: fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S
==============================================================================
--- fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S (original)
+++ fsf/trunk/libc/sysdeps/unix/sysv/linux/x86_64/____longjmp_chk.S Thu Sep 9 00:07:08 2010
@@ -1,4 +1,4 @@
-/* Copyright (C) 2001,2004,2005,2006,2009 Free Software Foundation, Inc.
+/* Copyright (C) 2001,2004,2005,2006,2009,2010 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
@@ -49,9 +49,9 @@
.text
ENTRY(____longjmp_chk)
/* Restore registers. */
- movq (JB_RSP*8)(%rdi),%r8
- movq (JB_RBP*8)(%rdi),%r9
- movq (JB_PC*8)(%rdi),%rdx
+ movq (JB_RSP*8)(%rdi), %r8
+ movq (JB_RBP*8)(%rdi), %r9
+ movq (JB_PC*8)(%rdi), %rdx
#ifdef PTR_DEMANGLE
PTR_DEMANGLE (%r8)
PTR_DEMANGLE (%r9)
@@ -63,7 +63,9 @@
/* Save function parameters. */
movq %rdi, %r10
- movl %esi, %ecx
+ cfi_register (%rdi, %r10)
+ movl %esi, %ebx
+ cfi_register (%rsi, %rbx)
xorl %edi, %edi
leaq -24(%rsp), %rsi
@@ -84,7 +86,9 @@
.Lfail: CALL_FAIL
.Lok2: movq %r10, %rdi
- movl %ecx, %esi
+ cfi_restore (%rdi)
+ movl %ebx, %esi
+ cfi_restore (%rsi)
.Lok: /* We add unwind information for the target here. */
cfi_def_cfa(%rdi, 0)
@@ -96,11 +100,11 @@
cfi_offset(%r13,JB_R13*8)
cfi_offset(%r14,JB_R14*8)
cfi_offset(%r15,JB_R15*8)
- movq (JB_RBX*8)(%rdi),%rbx
- movq (JB_R12*8)(%rdi),%r12
- movq (JB_R13*8)(%rdi),%r13
- movq (JB_R14*8)(%rdi),%r14
- movq (JB_R15*8)(%rdi),%r15
+ movq (JB_RBX*8)(%rdi), %rbx
+ movq (JB_R12*8)(%rdi), %r12
+ movq (JB_R13*8)(%rdi), %r13
+ movq (JB_R14*8)(%rdi), %r14
+ movq (JB_R15*8)(%rdi), %r15
/* Set return value for setjmp. */
movl %esi, %eax
movq %r8,%rsp