diff options
author | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2018-01-17 19:45:52 +0300 |
---|---|---|
committer | Igor Tsimbalist <igor.v.tsimbalist@intel.com> | 2018-01-17 19:48:28 +0300 |
commit | d777820bf5abea433c36e956b53b299502e0f708 (patch) | |
tree | 16f28c3084e70a09de9fae5527b26d06a4a761fa /gas/testsuite | |
parent | 4bfce1283654832d83a01b700e61518233c8bbda (diff) | |
download | gdb-d777820bf5abea433c36e956b53b299502e0f708.zip gdb-d777820bf5abea433c36e956b53b299502e0f708.tar.gz gdb-d777820bf5abea433c36e956b53b299502e0f708.tar.bz2 |
Replace CET bit with IBT and SHSTK bits.
The latest specification for Intel CET technology defined two
new bits instead of previously used CET bit. These are IBT and
SHSTK bits. The patch replaces CET bit with IBT and SHSTK bits.
gas/
* config/tc-i386.c (cpu_arch): Delete .cet. Add .ibt, .shstk.
(cpu_noarch): Add noibt, noshstk.
(parse_insn): Change cpucet to cpuibt.
* doc/c-i386.texi: Delete .cet. Add .ibt, .shstk.
* testsuite/gas/i386/cet-ibt-inval.l: New test.
* testsuite/gas/i386/cet-ibt-inval.s: Likewise.
* testsuite/gas/i386/cet-shstk-inval.l: Likewise.
* testsuite/gas/i386/cet-shstk-inval.s: Likewise.
* testsuite/gas/i386/x86-64-cet-ibt-inval.l: Likewise.
* testsuite/gas/i386/x86-64-cet-ibt-inval.s: Likewise.
* testsuite/gas/i386/x86-64-cet-shstk-inval.l: Likewise.
* testsuite/gas/i386/x86-64-cet-shstk-inval.s: Likewise.
opcodes/
* i386-gen.c (cpu_flag_init): Delete CPU_CET_FLAGS,
CpuCET. Add CPU_IBT_FLAGS, CPU_SHSTK_FLAGS, CPY_ANY_IBT_FLAGS,
CPU_ANY_SHSTK_FLAGS, CpuIBT, CpuSHSTK.
(cpu_flags): Add CpuIBT, CpuSHSTK.
* i386-opc.h (enum): Add CpuIBT, CpuSHSTK.
(i386_cpu_flags): Add cpuibt, cpushstk.
* i386-opc.tbl: Change CpuCET to CpuSHSTK and CpuIBT.
* i386-init.h: Regenerate.
* i386-tbl.h: Likewise.
Diffstat (limited to 'gas/testsuite')
-rw-r--r-- | gas/testsuite/gas/i386/cet-ibt-inval.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/cet-ibt-inval.s | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/cet-shstk-inval.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/cet-shstk-inval.s | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/i386.exp | 4 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s | 7 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s | 7 |
9 files changed, 44 insertions, 0 deletions
diff --git a/gas/testsuite/gas/i386/cet-ibt-inval.l b/gas/testsuite/gas/i386/cet-ibt-inval.l new file mode 100644 index 0000000..d646e36 --- /dev/null +++ b/gas/testsuite/gas/i386/cet-ibt-inval.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:6: Error: `endbr32' is not supported on `i386.noibt' +.*:7: Error: `endbr64' is not supported on `i386.noibt' diff --git a/gas/testsuite/gas/i386/cet-ibt-inval.s b/gas/testsuite/gas/i386/cet-ibt-inval.s new file mode 100644 index 0000000..33a6f77 --- /dev/null +++ b/gas/testsuite/gas/i386/cet-ibt-inval.s @@ -0,0 +1,7 @@ + .arch .ibt + endbr32 + endbr64 + + .arch .noibt + endbr32 + endbr64 diff --git a/gas/testsuite/gas/i386/cet-shstk-inval.l b/gas/testsuite/gas/i386/cet-shstk-inval.l new file mode 100644 index 0000000..892b72c --- /dev/null +++ b/gas/testsuite/gas/i386/cet-shstk-inval.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:6: Error: `incsspd' is not supported on `i386.noshstk' +.*:7: Error: `rdsspd' is not supported on `i386.noshstk' diff --git a/gas/testsuite/gas/i386/cet-shstk-inval.s b/gas/testsuite/gas/i386/cet-shstk-inval.s new file mode 100644 index 0000000..53bae24 --- /dev/null +++ b/gas/testsuite/gas/i386/cet-shstk-inval.s @@ -0,0 +1,7 @@ + .arch .shstk + incsspd %ecx + rdsspd %ecx + + .arch .noshstk + incsspd %ecx + rdsspd %ecx diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp index 184c65e..b81cc20 100644 --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -418,6 +418,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]] run_dump_test "fpu-bad" run_dump_test "cet" run_dump_test "cet-intel" + run_list_test "cet-ibt-inval" + run_list_test "cet-shstk-inval" run_dump_test "pseudos" run_dump_test "notrack" run_dump_test "notrack-intel" @@ -886,6 +888,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t run_dump_test "x86-64-opcode-bad" run_dump_test "x86-64-cet" run_dump_test "x86-64-cet-intel" + run_list_test "x86-64-cet-ibt-inval" + run_list_test "x86-64-cet-shstk-inval" run_dump_test "x86-64-pseudos" run_dump_test "x86-64-notrack" run_dump_test "x86-64-notrack-intel" diff --git a/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l b/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l new file mode 100644 index 0000000..1353527 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:6: Error: `endbr32' is not supported on `x86_64.noibt' +.*:7: Error: `endbr64' is not supported on `x86_64.noibt' diff --git a/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s b/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s new file mode 100644 index 0000000..33a6f77 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-cet-ibt-inval.s @@ -0,0 +1,7 @@ + .arch .ibt + endbr32 + endbr64 + + .arch .noibt + endbr32 + endbr64 diff --git a/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l b/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l new file mode 100644 index 0000000..84178b2 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.l @@ -0,0 +1,3 @@ +.*: Assembler messages: +.*:6: Error: `incsspd' is not supported on `x86_64.noshstk' +.*:7: Error: `rdsspd' is not supported on `x86_64.noshstk' diff --git a/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s b/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s new file mode 100644 index 0000000..53bae24 --- /dev/null +++ b/gas/testsuite/gas/i386/x86-64-cet-shstk-inval.s @@ -0,0 +1,7 @@ + .arch .shstk + incsspd %ecx + rdsspd %ecx + + .arch .noshstk + incsspd %ecx + rdsspd %ecx |