Add sparc integer multiply-add instructions.
authorDavid S. Miller <davem@redhat.com>
Mon, 26 Sep 2011 09:19:24 +0000 (09:19 +0000)
committerDavid S. Miller <davem@redhat.com>
Mon, 26 Sep 2011 09:19:24 +0000 (09:19 +0000)
opcodes/

* sparc-opc.c (sparc_opcodes): Add integer multiply-add
instructions.

gas/testsuite/

* gas/sparc/ima.d: New test.
* gas/sparc/ima.s: New test source.
* gas/sparc/sparc.exp: Run new test.

gas/testsuite/ChangeLog
gas/testsuite/gas/sparc/ima.d [new file with mode: 0644]
gas/testsuite/gas/sparc/ima.s [new file with mode: 0644]
gas/testsuite/gas/sparc/sparc.exp
opcodes/ChangeLog
opcodes/sparc-opc.c

index 03463adb5f02ab5449cb66b55c45ce0ab22445d1..5def8f523b48fdefc2f0a99ea585f0ee43e9fa14 100644 (file)
@@ -1,3 +1,9 @@
+2011-09-26  David S. Miller  <davem@davemloft.net>
+
+       * gas/sparc/ima.d: New test.
+       * gas/sparc/ima.s: New test source.
+       * gas/sparc/sparc.exp: Run new test.
+
 2011-09-21  David S. Miller  <davem@davemloft.net>
 
        * gas/sparc/hpcvis3.s: Update for fixed fchksum16 mnemonic.
diff --git a/gas/testsuite/gas/sparc/ima.d b/gas/testsuite/gas/sparc/ima.d
new file mode 100644 (file)
index 0000000..d499183
--- /dev/null
@@ -0,0 +1,11 @@
+#as: -Av9v
+#objdump: -dr
+#name: sparc IMA
+
+.*: +file format .*sparc.*
+
+Disassembly of section .text:
+
+0+ <.text>:
+   0:  91 ba 84 0c     fpmaddx  %f10, %f12, %f2, %f8
+   4:  a5 bb 8e 88     fpmaddxhi  %f14, %f8, %f38, %f18
diff --git a/gas/testsuite/gas/sparc/ima.s b/gas/testsuite/gas/sparc/ima.s
new file mode 100644 (file)
index 0000000..f02578b
--- /dev/null
@@ -0,0 +1,4 @@
+# Test IMA instructions
+       .text
+       fpmaddx  %f10, %f12, %f2, %f8
+       fpmaddxhi  %f14, %f8, %f38, %f18
index faba8e4ebe25b87b930c29b582983f6549b93a90..65e84ced57363cde8a4cbec8a7e89c2f58c733c3 100644 (file)
@@ -61,6 +61,7 @@ if [istarget sparc*-*-*] {
     run_dump_test "v9branch5"
     run_dump_test "pc2210"
     run_dump_test "hpcvis3"
+    run_dump_test "ima"
 
     run_list_test "pr4587" ""
 }
index 157c1dd43cff35c76b5172e9f7b4f34fa2ac636c..67bfbdfe05109729e8b2c4382a3fd15dbf95e2f4 100644 (file)
@@ -1,3 +1,8 @@
+2011-09-26  David S. Miller  <davem@davemloft.net>
+
+       * sparc-opc.c (sparc_opcodes): Add integer multiply-add
+       instructions.
+
 2011-09-21  David S. Miller  <davem@davemloft.net>
 
        * sparc-opc.c (sparc_opcodes): Annotate table with HWCAP flag
index 5cfb4d563e8017541ff5482e1abfb6ad1e7e89dc..6fbe0251f201ab90d08b21fafb7a0007122dff63 100644 (file)
@@ -1849,8 +1849,10 @@ SLCBCC("cbnefr", 15),
 { "fnhadds",   F3F(2, 0x34, 0x071), F3F(~2, ~0x34, ~0x071), "e,f,g", F_FLOAT|F_HPC, v9b },
 { "fnhaddd",   F3F(2, 0x34, 0x072), F3F(~2, ~0x34, ~0x072), "v,B,H", F_FLOAT|F_HPC, v9b },
 { "fnsmuld",   F3F(2, 0x34, 0x079), F3F(~2, ~0x34, ~0x079), "e,f,H", F_FLOAT|F_HPC, v9b },
+{ "fpmaddx",   F3(2, 0x37, 0)|OPF_LOW4(0), F3(~2, ~0x37, 0)|OPF_LOW4(~0), "v,B,5,H", F_FLOAT|F_IMA, v9b },
 { "fmadds",    F3(2, 0x37, 0)|OPF_LOW4(1), F3(~2, ~0x37, 0)|OPF_LOW4(~1), "e,f,4,g", F_FLOAT|F_FMAF, v9b },
 { "fmaddd",    F3(2, 0x37, 0)|OPF_LOW4(2), F3(~2, ~0x37, 0)|OPF_LOW4(~2), "v,B,5,H", F_FLOAT|F_FMAF, v9b },
+{ "fpmaddxhi", F3(2, 0x37, 0)|OPF_LOW4(4), F3(~2, ~0x37, 0)|OPF_LOW4(~4), "v,B,5,H", F_FLOAT|F_IMA, v9b },
 { "fmsubs",    F3(2, 0x37, 0)|OPF_LOW4(5), F3(~2, ~0x37, 0)|OPF_LOW4(~5), "e,f,4,g", F_FLOAT|F_FMAF, v9b },
 { "fmsubd",    F3(2, 0x37, 0)|OPF_LOW4(6), F3(~2, ~0x37, 0)|OPF_LOW4(~6), "v,B,5,H", F_FLOAT|F_FMAF, v9b },
 { "fnmsubs",   F3(2, 0x37, 0)|OPF_LOW4(9), F3(~2, ~0x37, 0)|OPF_LOW4(~9), "e,f,4,g", F_FLOAT|F_FMAF, v9b },