From 643e867f08b5c9cb3e53f17761787c53fae6a89d Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Tue, 2 Aug 2011 11:01:37 +0200 Subject: [PATCH] re PR target/47766 ([x32] -fstack-protector doesn't work) PR target/47766 * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. (stack_protect_test): The pattern compares ptr_mode value. From-SVN: r177096 --- gcc/ChangeLog | 9 +++++++-- gcc/doc/md.texi | 4 ++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8e25c0de74..55ba5b06605 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-08-02 Uros Bizjak + + PR target/47766 + * doc/md.texi (stack_protect_set): The pattern moves ptr_mode value. + (stack_protect_test): The pattern compares ptr_mode value. + 2011-08-02 Alan Modra * config/rs6000/rs6000.c (rs6000_emit_prologue): Add REG_CFA_RESTORE @@ -5,8 +11,7 @@ 2011-08-01 H.J. Lu - * config/i386/lzcntintrin.h (__lzcnt64): Replace long with - long long. + * config/i386/lzcntintrin.h (__lzcnt64): Replace long with long long. 2011-08-01 Sebastian Pop Joseph Myers diff --git a/gcc/doc/md.texi b/gcc/doc/md.texi index 1f08daee4f2..3eae212ea3b 100644 --- a/gcc/doc/md.texi +++ b/gcc/doc/md.texi @@ -5557,7 +5557,7 @@ will be emitted, followed by a store of the value to the memory operand. @cindex @code{stack_protect_set} instruction pattern @item @samp{stack_protect_set} -This pattern, if defined, moves a @code{Pmode} value from the memory +This pattern, if defined, moves a @code{ptr_mode} value from the memory in operand 1 to the memory in operand 0 without leaving the value in a register afterward. This is to avoid leaking the value some place that an attacker might use to rewrite the stack guard slot after @@ -5568,7 +5568,7 @@ If this pattern is not defined, then a plain move pattern is generated. @cindex @code{stack_protect_test} instruction pattern @item @samp{stack_protect_test} -This pattern, if defined, compares a @code{Pmode} value from the +This pattern, if defined, compares a @code{ptr_mode} value from the memory in operand 1 with the memory in operand 0 without leaving the value in a register afterward and branches to operand 2 if the values weren't equal. -- 2.30.2