From 7f5cad304773ecbfe8b390e0b5d79fe11edb2a6b Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Wed, 11 Jul 2018 10:25:40 +0200 Subject: x86/Intel: accept memory operand size specifiers for CET insns --- gas/ChangeLog | 8 ++++++++ gas/testsuite/gas/i386/cet-intel.d | 2 ++ gas/testsuite/gas/i386/cet.d | 2 ++ gas/testsuite/gas/i386/cet.s | 2 ++ gas/testsuite/gas/i386/x86-64-cet-intel.d | 4 ++++ gas/testsuite/gas/i386/x86-64-cet.d | 4 ++++ gas/testsuite/gas/i386/x86-64-cet.s | 4 ++++ 7 files changed, 26 insertions(+) (limited to 'gas') diff --git a/gas/ChangeLog b/gas/ChangeLog index 6de7a61..ddb6235 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,13 @@ 2018-07-11 Jan Beulich + * testsuite/gas/i386/cet.s, testsuite/gas/i386/x86-64-cet.s: + Add Intel cases with operand size specifiers. + * testsuite/gas/i386/cet-intel.d, testsuite/gas/i386/cet.d, + testsuite/gas/i386/x86-64-cet-intel.d, + testsuite/gas/i386/x86-64-cet.d: Adjust expectations. + +2018-07-11 Jan Beulich + * config/tc-i386.c (md_assemble): Also replace an already present REP prefix. * testsuite/gas/i386/mpx-add-bnd-prefix.s, diff --git a/gas/testsuite/gas/i386/cet-intel.d b/gas/testsuite/gas/i386/cet-intel.d index 79da878..96ff807 100644 --- a/gas/testsuite/gas/i386/cet-intel.d +++ b/gas/testsuite/gas/i386/cet-intel.d @@ -23,7 +23,9 @@ Disassembly of section .text: +[a-f0-9]+: f3 0f 01 ea saveprevssp +[a-f0-9]+: f3 0f 01 2c 01 rstorssp QWORD PTR \[ecx\+eax\*1\] +[a-f0-9]+: 0f 38 f6 02 wrssd \[edx\],eax + +[a-f0-9]+: 0f 38 f6 10 wrssd \[eax\],edx +[a-f0-9]+: 66 0f 38 f5 14 2f wrussd \[edi\+ebp\*1\],edx + +[a-f0-9]+: 66 0f 38 f5 3c 2a wrussd \[edx\+ebp\*1\],edi +[a-f0-9]+: f3 0f 01 e8 setssbsy +[a-f0-9]+: f3 0f ae 34 04 clrssbsy QWORD PTR \[esp\+eax\*1\] +[a-f0-9]+: f3 0f 1e fa endbr64 diff --git a/gas/testsuite/gas/i386/cet.d b/gas/testsuite/gas/i386/cet.d index 982d40e..0f67716 100644 --- a/gas/testsuite/gas/i386/cet.d +++ b/gas/testsuite/gas/i386/cet.d @@ -21,7 +21,9 @@ Disassembly of section .text: +[a-f0-9]+: f3 0f 01 ea saveprevssp +[a-f0-9]+: f3 0f 01 2c 01 rstorssp \(%ecx,%eax,1\) +[a-f0-9]+: 0f 38 f6 02 wrssd %eax,\(%edx\) + +[a-f0-9]+: 0f 38 f6 10 wrssd %edx,\(%eax\) +[a-f0-9]+: 66 0f 38 f5 14 2f wrussd %edx,\(%edi,%ebp,1\) + +[a-f0-9]+: 66 0f 38 f5 3c 2a wrussd %edi,\(%edx,%ebp,1\) +[a-f0-9]+: f3 0f 01 e8 setssbsy +[a-f0-9]+: f3 0f ae 34 04 clrssbsy \(%esp,%eax,1\) +[a-f0-9]+: f3 0f 1e fa endbr64 diff --git a/gas/testsuite/gas/i386/cet.s b/gas/testsuite/gas/i386/cet.s index f0178a8..730e7d7 100644 --- a/gas/testsuite/gas/i386/cet.s +++ b/gas/testsuite/gas/i386/cet.s @@ -18,7 +18,9 @@ _start: saveprevssp rstorssp QWORD PTR [ecx + eax] wrssd [edx],eax + wrssd dword ptr [eax],edx wrussd [edi + ebp],edx + wrussd dword ptr [edx + ebp],edi setssbsy clrssbsy QWORD PTR [esp + eax] endbr64 diff --git a/gas/testsuite/gas/i386/x86-64-cet-intel.d b/gas/testsuite/gas/i386/x86-64-cet-intel.d index 5e5f4a5..7b9a125 100644 --- a/gas/testsuite/gas/i386/x86-64-cet-intel.d +++ b/gas/testsuite/gas/i386/x86-64-cet-intel.d @@ -28,9 +28,13 @@ Disassembly of section .text: +[a-f0-9]+: f3 0f 01 ea saveprevssp +[a-f0-9]+: f3 41 0f 01 2c 24 rstorssp QWORD PTR \[r12\] +[a-f0-9]+: 41 0f 38 f6 04 24 wrssd \[r12\],eax + +[a-f0-9]+: 44 0f 38 f6 20 wrssd \[rax\],r12d +[a-f0-9]+: 4a 0f 38 f6 14 39 wrssq \[rcx\+r15\*1\],rdx + +[a-f0-9]+: 4a 0f 38 f6 0c 3a wrssq \[rdx\+r15\*1\],rcx +[a-f0-9]+: 66 41 0f 38 f5 04 24 wrussd \[r12\],eax + +[a-f0-9]+: 66 44 0f 38 f5 20 wrussd \[rax\],r12d +[a-f0-9]+: 66 48 0f 38 f5 0c 03 wrussq \[rbx\+rax\*1\],rcx + +[a-f0-9]+: 66 48 0f 38 f5 1c 01 wrussq \[rcx\+rax\*1\],rbx +[a-f0-9]+: f3 0f 01 e8 setssbsy +[a-f0-9]+: f3 42 0f ae 34 26 clrssbsy QWORD PTR \[rsi\+r12\*1\] +[a-f0-9]+: f3 0f 1e fa endbr64 diff --git a/gas/testsuite/gas/i386/x86-64-cet.d b/gas/testsuite/gas/i386/x86-64-cet.d index af29827..27749662 100644 --- a/gas/testsuite/gas/i386/x86-64-cet.d +++ b/gas/testsuite/gas/i386/x86-64-cet.d @@ -27,9 +27,13 @@ Disassembly of section .text: +[a-f0-9]+: f3 0f 01 ea saveprevssp +[a-f0-9]+: f3 41 0f 01 2c 24 rstorssp \(%r12\) +[a-f0-9]+: 41 0f 38 f6 04 24 wrssd %eax,\(%r12\) + +[a-f0-9]+: 44 0f 38 f6 20 wrssd %r12d,\(%rax\) +[a-f0-9]+: 4a 0f 38 f6 14 39 wrssq %rdx,\(%rcx,%r15,1\) + +[a-f0-9]+: 4a 0f 38 f6 0c 3a wrssq %rcx,\(%rdx,%r15,1\) +[a-f0-9]+: 66 41 0f 38 f5 04 24 wrussd %eax,\(%r12\) + +[a-f0-9]+: 66 44 0f 38 f5 20 wrussd %r12d,\(%rax\) +[a-f0-9]+: 66 48 0f 38 f5 0c 03 wrussq %rcx,\(%rbx,%rax,1\) + +[a-f0-9]+: 66 48 0f 38 f5 1c 01 wrussq %rbx,\(%rcx,%rax,1\) +[a-f0-9]+: f3 0f 01 e8 setssbsy +[a-f0-9]+: f3 42 0f ae 34 26 clrssbsy \(%rsi,%r12,1\) +[a-f0-9]+: f3 0f 1e fa endbr64 diff --git a/gas/testsuite/gas/i386/x86-64-cet.s b/gas/testsuite/gas/i386/x86-64-cet.s index 33cd4bf..54ca839 100644 --- a/gas/testsuite/gas/i386/x86-64-cet.s +++ b/gas/testsuite/gas/i386/x86-64-cet.s @@ -24,9 +24,13 @@ _start: saveprevssp rstorssp QWORD PTR [r12] wrssd [r12],eax + wrssd dword ptr [rax],r12d wrssq [rcx+r15],rdx + wrssq qword ptr [rdx+r15],rcx wrussd [r12],eax + wrussd dword ptr [rax],r12d wrussq [rbx+rax],rcx + wrussq qword ptr [rcx+rax],rbx setssbsy clrssbsy QWORD PTR [rsi+r12] endbr64 -- cgit v1.1