x86: extend FPU test coverage for AT&T / Intel mnemonic differences
authorJan Beulich <jbeulich@suse.com>
Wed, 30 Nov 2022 08:05:57 +0000 (09:05 +0100)
committerJan Beulich <jbeulich@suse.com>
Wed, 30 Nov 2022 08:05:57 +0000 (09:05 +0100)
Before touching the templates, let's ensure we actually cover things:
For one FSUB{,R} and FDIV{,R} would better be tested with operands in
both possible orders. And then -mmnemonic=intel wasn't tested at all.

gas/testsuite/gas/i386/compat-intel.d
gas/testsuite/gas/i386/compat-intel2.d [new file with mode: 0644]
gas/testsuite/gas/i386/compat.d
gas/testsuite/gas/i386/compat.s
gas/testsuite/gas/i386/i386.exp

index d9404f8684efe62288f66082887214b6ccd0a711..cbe3c192cb96285c016487f35fb84588e1d8d696 100644 (file)
@@ -9,18 +9,22 @@ Disassembly of section .text:
 
 0+ <.text>:
 [      ]*[a-f0-9]+:    dc e3                   fsubr  st\(3\),st
+[      ]*[a-f0-9]+:    d8 e3                   fsub   st,st\(3\)
 [      ]*[a-f0-9]+:    de e1                   fsubrp st\(1\),st
 [      ]*[a-f0-9]+:    de e3                   fsubrp st\(3\),st
 [      ]*[a-f0-9]+:    de e3                   fsubrp st\(3\),st
 [      ]*[a-f0-9]+:    dc eb                   fsub   st\(3\),st
+[      ]*[a-f0-9]+:    d8 eb                   fsubr  st,st\(3\)
 [      ]*[a-f0-9]+:    de e9                   fsubp  st\(1\),st
 [      ]*[a-f0-9]+:    de eb                   fsubp  st\(3\),st
 [      ]*[a-f0-9]+:    de eb                   fsubp  st\(3\),st
 [      ]*[a-f0-9]+:    dc f3                   fdivr  st\(3\),st
+[      ]*[a-f0-9]+:    d8 f3                   fdiv   st,st\(3\)
 [      ]*[a-f0-9]+:    de f1                   fdivrp st\(1\),st
 [      ]*[a-f0-9]+:    de f3                   fdivrp st\(3\),st
 [      ]*[a-f0-9]+:    de f3                   fdivrp st\(3\),st
 [      ]*[a-f0-9]+:    dc fb                   fdiv   st\(3\),st
+[      ]*[a-f0-9]+:    d8 fb                   fdivr  st,st\(3\)
 [      ]*[a-f0-9]+:    de f9                   fdivp  st\(1\),st
 [      ]*[a-f0-9]+:    de fb                   fdivp  st\(3\),st
 [      ]*[a-f0-9]+:    de fb                   fdivp  st\(3\),st
diff --git a/gas/testsuite/gas/i386/compat-intel2.d b/gas/testsuite/gas/i386/compat-intel2.d
new file mode 100644 (file)
index 0000000..035e0ca
--- /dev/null
@@ -0,0 +1,31 @@
+#as: -mmnemonic=intel
+#objdump: -d -Mintel-mnemonic
+#name: i386 float Intel mnemonic (2)
+#source: compat.s
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <.text>:
+[      ]*[a-f0-9]+:    dc eb                   fsub   st\(3\),st
+[      ]*[a-f0-9]+:    d8 e3                   fsub   st,st\(3\)
+[      ]*[a-f0-9]+:    de e9                   fsubp  st\(1\),st
+[      ]*[a-f0-9]+:    de eb                   fsubp  st\(3\),st
+[      ]*[a-f0-9]+:    de eb                   fsubp  st\(3\),st
+[      ]*[a-f0-9]+:    dc e3                   fsubr  st\(3\),st
+[      ]*[a-f0-9]+:    d8 eb                   fsubr  st,st\(3\)
+[      ]*[a-f0-9]+:    de e1                   fsubrp st\(1\),st
+[      ]*[a-f0-9]+:    de e3                   fsubrp st\(3\),st
+[      ]*[a-f0-9]+:    de e3                   fsubrp st\(3\),st
+[      ]*[a-f0-9]+:    dc fb                   fdiv   st\(3\),st
+[      ]*[a-f0-9]+:    d8 f3                   fdiv   st,st\(3\)
+[      ]*[a-f0-9]+:    de f9                   fdivp  st\(1\),st
+[      ]*[a-f0-9]+:    de fb                   fdivp  st\(3\),st
+[      ]*[a-f0-9]+:    de fb                   fdivp  st\(3\),st
+[      ]*[a-f0-9]+:    dc f3                   fdivr  st\(3\),st
+[      ]*[a-f0-9]+:    d8 fb                   fdivr  st,st\(3\)
+[      ]*[a-f0-9]+:    de f1                   fdivrp st\(1\),st
+[      ]*[a-f0-9]+:    de f3                   fdivrp st\(3\),st
+[      ]*[a-f0-9]+:    de f3                   fdivrp st\(3\),st
+#pass
index 575f2bb193a593282cf757b04afa33fcc312d26b..e2884d8b14114ce1fc5502fc01138b1a837d79fd 100644 (file)
@@ -8,18 +8,22 @@ Disassembly of section .text:
 
 0+ <.text>:
 [      ]*[a-f0-9]+:    dc e3                   fsub   %st,%st\(3\)
+[      ]*[a-f0-9]+:    d8 e3                   fsub   %st\(3\),%st
 [      ]*[a-f0-9]+:    de e1                   fsubp  %st,%st\(1\)
 [      ]*[a-f0-9]+:    de e3                   fsubp  %st,%st\(3\)
 [      ]*[a-f0-9]+:    de e3                   fsubp  %st,%st\(3\)
 [      ]*[a-f0-9]+:    dc eb                   fsubr  %st,%st\(3\)
+[      ]*[a-f0-9]+:    d8 eb                   fsubr  %st\(3\),%st
 [      ]*[a-f0-9]+:    de e9                   fsubrp %st,%st\(1\)
 [      ]*[a-f0-9]+:    de eb                   fsubrp %st,%st\(3\)
 [      ]*[a-f0-9]+:    de eb                   fsubrp %st,%st\(3\)
 [      ]*[a-f0-9]+:    dc f3                   fdiv   %st,%st\(3\)
+[      ]*[a-f0-9]+:    d8 f3                   fdiv   %st\(3\),%st
 [      ]*[a-f0-9]+:    de f1                   fdivp  %st,%st\(1\)
 [      ]*[a-f0-9]+:    de f3                   fdivp  %st,%st\(3\)
 [      ]*[a-f0-9]+:    de f3                   fdivp  %st,%st\(3\)
 [      ]*[a-f0-9]+:    dc fb                   fdivr  %st,%st\(3\)
+[      ]*[a-f0-9]+:    d8 fb                   fdivr  %st\(3\),%st
 [      ]*[a-f0-9]+:    de f9                   fdivrp %st,%st\(1\)
 [      ]*[a-f0-9]+:    de fb                   fdivrp %st,%st\(3\)
 [      ]*[a-f0-9]+:    de fb                   fdivrp %st,%st\(3\)
index 17163115eda74136f8d307b415eabf3d282f7dec..2b4f06dc3888c3fef7284ff4f561d6d7b7a2a8a7 100644 (file)
@@ -1,18 +1,22 @@
 # Check SYSV mnemonic instructions.
        .text 
        fsub    %st,%st(3)
+       fsub    %st(3),%st
        fsubp
        fsubp   %st(3)
        fsubp   %st,%st(3)
        fsubr   %st,%st(3)
+       fsubr   %st(3),%st
        fsubrp
        fsubrp  %st(3)
        fsubrp  %st,%st(3)
        fdiv    %st,%st(3)
+       fdiv    %st(3),%st
        fdivp
        fdivp   %st(3)
        fdivp   %st,%st(3)
        fdivr   %st,%st(3)
+       fdivr   %st(3),%st
        fdivrp
        fdivrp  %st(3)
        fdivrp  %st,%st(3)
index f989e56a578c515950d29257e9f37bf848f47bd7..429600752228368dfec812f8ff5e8b3d6c193b0f 100644 (file)
@@ -178,6 +178,7 @@ if [gas_32_check] then {
     run_dump_test "i386-intel"
     run_dump_test "compat"
     run_dump_test "compat-intel"
+    run_dump_test "compat-intel2"
     run_dump_test "arch-1"
     run_dump_test "arch-2"
     run_dump_test "arch-3"