diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2018-04-23 12:29:00 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2018-04-23 05:29:00 -0700 |
commit | 0ef9f21d3c4de3a6af258338523d35ea6c4d492f (patch) | |
tree | 34f62a3810700ab71fb248255641fd6e98a15482 /libitm | |
parent | 9ba5e5fceeff0d9a752b8c0a00344b3a187d08bb (diff) |
x86/cet: Use unsigned integer to unwind shadow stack
Use unsigned integer to unwind shadow stack by replacing jle with jbe and
jg with ja.
PR target/85489
* config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja.
From-SVN: r259559
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 5 | ||||
-rw-r--r-- | libitm/config/x86/sjlj.S | 8 |
2 files changed, 9 insertions, 4 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 53fe89749a9..7f6a24f1a60 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,3 +1,8 @@ +2018-04-23 H.J. Lu <hongjiu.lu@intel.com> + + PR target/85489 + * config/x86/sjlj.S (GTM_longjmp): Replace jle/jg with jbe/ja. + 2018-04-19 Jakub Jelinek <jakub@redhat.com> * configure: Regenerated. diff --git a/libitm/config/x86/sjlj.S b/libitm/config/x86/sjlj.S index ee61451394a..2345b2f4ec4 100644 --- a/libitm/config/x86/sjlj.S +++ b/libitm/config/x86/sjlj.S @@ -235,7 +235,7 @@ SYM(GTM_longjmp): /* If # of frames is greater 255 then loop and adjust. */ cmpq $255, %rcx - jle .L3 + jbe .L3 movl $255, %edi .p2align 4,,10 .p2align 3 @@ -243,7 +243,7 @@ SYM(GTM_longjmp): incsspq %rdi subq $255, %rcx cmpq $255, %rcx - jg .L4 + ja .L4 .L3: incsspq %rcx .L1: @@ -273,7 +273,7 @@ SYM(GTM_longjmp): /* If # of frames is greater 255 then loop and adjust. */ cmpl $255, %ecx - jle .L3 + jbe .L3 pushl %eax movl $255, %eax .p2align 4,,10 @@ -282,7 +282,7 @@ SYM(GTM_longjmp): incsspd %eax subl $255, %ecx cmpl $255, %ecx - jg .L4 + ja .L4 popl %eax .L3: incsspd %ecx |