summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gas/testsuite/ChangeLog5
-rw-r--r--gas/testsuite/gas/m68k/all.exp2
-rw-r--r--gas/testsuite/gas/m68k/pmove.d16
-rw-r--r--gas/testsuite/gas/m68k/pmove.s6
-rw-r--r--opcodes/ChangeLog5
-rw-r--r--opcodes/m68k-opc.c4
6 files changed, 36 insertions, 2 deletions
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index e96c7bda30..b217aa5074 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-17 Andreas Schwab <schwab@linux-m68k.org>
+
+ * gas/m68k/pmove.s, gas/m68k/pmove.d: New test.
+ * gas/m68k/all.exp: Run it.
+
2012-01-13 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Run vmfunc and x86-64-vmfunc.
diff --git a/gas/testsuite/gas/m68k/all.exp b/gas/testsuite/gas/m68k/all.exp
index 60352862d5..2bcce35e8b 100644
--- a/gas/testsuite/gas/m68k/all.exp
+++ b/gas/testsuite/gas/m68k/all.exp
@@ -99,6 +99,8 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then {
}
run_dump_test pr11676
+
+ run_dump_test pmove
}
if [info exists errorInfo] then {
unset errorInfo
diff --git a/gas/testsuite/gas/m68k/pmove.d b/gas/testsuite/gas/m68k/pmove.d
new file mode 100644
index 0000000000..33e68f7227
--- /dev/null
+++ b/gas/testsuite/gas/m68k/pmove.d
@@ -0,0 +1,16 @@
+#as: -m68030
+#objdump: --architecture=m68k:68030 -d
+#name: pmove
+
+# Test handling of the 68030/68851 pmove instructions.
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <.*>:
+[ 0-9a-f]+: f010 6200 pmove %psr,%a0@
+[ 0-9a-f]+: f011 6000 pmove %a1@,%psr
+[ 0-9a-f]+: f012 6600 pmove %pcsr,%a2@
+[ 0-9a-f]+: f013 7200 pmove %bad0,%a3@
+[ 0-9a-f]+: f014 7004 pmove %a4@,%bad1
diff --git a/gas/testsuite/gas/m68k/pmove.s b/gas/testsuite/gas/m68k/pmove.s
new file mode 100644
index 0000000000..7f1ec00122
--- /dev/null
+++ b/gas/testsuite/gas/m68k/pmove.s
@@ -0,0 +1,6 @@
+# Test handling of the 68030/68851 pmove instructions.
+ pmove %psr,%a0@
+ pmove %a1@,%psr
+ pmove %pcsr,%a2@
+ pmove %bad0,%a3@
+ pmove %a4@,%bad1
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 0e16dfc12b..48612d5bf2 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,3 +1,8 @@
+2012-01-17 Andreas Schwab <schwab@linux-m68k.org>
+
+ * m68k-opc.c (m68k_opcodes): Fix entries for pmove with BADx/BACx
+ register and move them after pmove with PSR/PCSR register.
+
2012-01-13 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c (mod_table): Add vmfunc.
diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c
index 3c8310aa6e..8347ef1e58 100644
--- a/opcodes/m68k-opc.c
+++ b/opcodes/m68k-opc.c
@@ -1850,11 +1850,11 @@ const struct m68k_opcode m68k_opcodes[] =
{"pmove", 4, two(0xf000,0x4200), two(0xffc0,0xe3ff), "28%s", m68851 },
{"pmove", 4, two(0xf000,0x4000), two(0xffc0,0xe3ff), "|sW8", m68030|m68851 },
{"pmove", 4, two(0xf000,0x4200), two(0xffc0,0xe3ff), "W8~s", m68030|m68851 },
-{"pmove", 4, two(0xf000,0x6200), two(0xffc0,0xe3e3), "*wX3", m68851 },
-{"pmove", 4, two(0xf000,0x6000), two(0xffc0,0xe3e3), "X3%s", m68851 },
{"pmove", 4, two(0xf000,0x6000), two(0xffc0,0xffff), "*wY8", m68030|m68851 },
{"pmove", 4, two(0xf000,0x6200), two(0xffc0,0xffff), "Y8%s", m68030|m68851 },
{"pmove", 4, two(0xf000,0x6600), two(0xffc0,0xffff), "Z8%s", m68851 },
+{"pmove", 4, two(0xf000,0x6000), two(0xffc0,0xe3e3), "*wX3", m68851 },
+{"pmove", 4, two(0xf000,0x6200), two(0xffc0,0xe3e3), "X3%s", m68851 },
{"pmove", 4, two(0xf000,0x0800), two(0xffc0,0xfbff), "*l38", m68030 },
{"pmove", 4, two(0xf000,0x0a00), two(0xffc0,0xfbff), "38%s", m68030 },