aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/testing/selftests/rseq/rseq-x86.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/tools/testing/selftests/rseq/rseq-x86.h b/tools/testing/selftests/rseq/rseq-x86.h
index 03095236f6fa..b2da6004fe30 100644
--- a/tools/testing/selftests/rseq/rseq-x86.h
+++ b/tools/testing/selftests/rseq/rseq-x86.h
@@ -7,6 +7,13 @@
7 7
8#include <stdint.h> 8#include <stdint.h>
9 9
10/*
11 * RSEQ_SIG is used with the following reserved undefined instructions, which
12 * trap in user-space:
13 *
14 * x86-32: 0f b9 3d 53 30 05 53 ud1 0x53053053,%edi
15 * x86-64: 0f b9 3d 53 30 05 53 ud1 0x53053053(%rip),%edi
16 */
10#define RSEQ_SIG 0x53053053 17#define RSEQ_SIG 0x53053053
11 18
12/* 19/*
@@ -88,8 +95,8 @@ do { \
88 95
89#define RSEQ_ASM_DEFINE_ABORT(label, teardown, abort_label) \ 96#define RSEQ_ASM_DEFINE_ABORT(label, teardown, abort_label) \
90 ".pushsection __rseq_failure, \"ax\"\n\t" \ 97 ".pushsection __rseq_failure, \"ax\"\n\t" \
91 /* Disassembler-friendly signature: nopl <sig>(%rip). */\ 98 /* Disassembler-friendly signature: ud1 <sig>(%rip),%edi. */ \
92 ".byte 0x0f, 0x1f, 0x05\n\t" \ 99 ".byte 0x0f, 0xb9, 0x3d\n\t" \
93 ".long " __rseq_str(RSEQ_SIG) "\n\t" \ 100 ".long " __rseq_str(RSEQ_SIG) "\n\t" \
94 __rseq_str(label) ":\n\t" \ 101 __rseq_str(label) ":\n\t" \
95 teardown \ 102 teardown \
@@ -609,8 +616,8 @@ do { \
609 616
610#define RSEQ_ASM_DEFINE_ABORT(label, teardown, abort_label) \ 617#define RSEQ_ASM_DEFINE_ABORT(label, teardown, abort_label) \
611 ".pushsection __rseq_failure, \"ax\"\n\t" \ 618 ".pushsection __rseq_failure, \"ax\"\n\t" \
612 /* Disassembler-friendly signature: nopl <sig>. */ \ 619 /* Disassembler-friendly signature: ud1 <sig>,%edi. */ \
613 ".byte 0x0f, 0x1f, 0x05\n\t" \ 620 ".byte 0x0f, 0xb9, 0x3d\n\t" \
614 ".long " __rseq_str(RSEQ_SIG) "\n\t" \ 621 ".long " __rseq_str(RSEQ_SIG) "\n\t" \
615 __rseq_str(label) ":\n\t" \ 622 __rseq_str(label) ":\n\t" \
616 teardown \ 623 teardown \