diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2018-04-24 22:15:51 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2018-04-24 15:15:51 -0700 |
commit | ffc2fc06e3cd63d06943baab93c9f8e39a28b14d (patch) | |
tree | cc73e3f6d3787c7b0b579ca3ae0891b40a492611 /libitm | |
parent | e59133c36c1733ccce20e21b4358418f450f23ee (diff) | |
download | gcc-ffc2fc06e3cd63d06943baab93c9f8e39a28b14d.zip gcc-ffc2fc06e3cd63d06943baab93c9f8e39a28b14d.tar.gz gcc-ffc2fc06e3cd63d06943baab93c9f8e39a28b14d.tar.bz2 |
x86: Update __CET__ check
__CET__ has been changed by revision 259522:
commit d59cfa9a4064339cf2bd2da828c4c133f13e57f0
Author: hjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Fri Apr 20 13:30:13 2018 +0000
Define __CET__ for -fcf-protection and remove -mibt
to
(__CET__ & 1) != 0: -fcf-protection=branch or -fcf-protection=full
(__CET__ & 2) != 0: -fcf-protection=return or -fcf-protection=full
We should check (__CET__ & 2) != 0 for shadow stack.
libgcc/
* config/i386/linux-unwind.h: Add (__CET__ & 2) != 0 check
when including "config/i386/shadow-stack-unwind.h".
libitm/
* config/x86/sjlj.S (_ITM_beginTransaction): Add
(__CET__ & 2) != 0 check for shadow stack.
(GTM_longjmp): Likewise.
From-SVN: r259621
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 6 | ||||
-rw-r--r-- | libitm/config/x86/sjlj.S | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index de57e70..fe49453 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,5 +1,11 @@ 2018-04-24 H.J. Lu <hongjiu.lu@intel.com> + * config/x86/sjlj.S (_ITM_beginTransaction): Add + (__CET__ & 2) != 0 check for shadow stack. + (GTM_longjmp): Likewise. + +2018-04-24 H.J. Lu <hongjiu.lu@intel.com> + * configure: Regenerated. 2018-04-23 H.J. Lu <hongjiu.lu@intel.com> diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S index 2345b2f..e5cdbab 100644 --- a/libitm/config/x86/sjlj.S +++ b/libitm/config/x86/sjlj.S @@ -141,7 +141,7 @@ SYM(_ITM_beginTransaction): movq %r15, -24(%rax) xorq %rdx, %rdx /* Save zero or shadow stack pointer in the new field. */ -#if defined(__SHSTK__) && defined(__CET__) +#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0 rdsspq %rdx #endif movq %rdx, -16(%rax) @@ -177,7 +177,7 @@ SYM(_ITM_beginTransaction): movl %ebp, 20(%esp) xorl %edx, %edx /* Save zero or shadow stack pointer in the new field. */ -#if defined(__SHSTK__) && defined(__CET__) +#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0 rdsspd %edx #endif movl %edx, 24(%esp) @@ -221,7 +221,7 @@ SYM(GTM_longjmp): cfi_offset(%rip, 64) cfi_register(%rsp, %rcx) movq %rcx, %rsp -#if defined(__SHSTK__) && defined(__CET__) +#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0 /* Check if Shadow Stack is enabled. */ xorq %rcx, %rcx rdsspq %rcx @@ -259,7 +259,7 @@ SYM(GTM_longjmp): cfi_offset(%eip, 24) cfi_register(%esp, %ecx) movl %ecx, %esp -#if defined(__SHSTK__) && defined(__CET__) +#if defined __SHSTK__ && defined __CET__ && (__CET__ & 2) != 0 /* Check if Shadow Stack is enabled. */ xorl %ecx, %ecx rdsspd %ecx |