summaryrefslogtreecommitdiff
path: root/libitm
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2018-04-23 12:29:00 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2018-04-23 05:29:00 -0700
commit0ef9f21d3c4de3a6af258338523d35ea6c4d492f (patch)
tree34f62a3810700ab71fb248255641fd6e98a15482 /libitm
parent9ba5e5fceeff0d9a752b8c0a00344b3a187d08bb (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/ChangeLog5
-rw-r--r--libitm/config/x86/sjlj.S8
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