aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-01-16 23:19:20 +0000
committerAndreas Schwab <schwab@linux-m68k.org>2012-01-16 23:19:20 +0000
commite143d25c7376b5c422ac3fac8d8d260c54487450 (patch)
tree07fad506489aeafc89245502f281b1d53311c7ce
parent6aa2bb2b1bd63cd2849468a7226337a18f50f202 (diff)
downloadfsf-binutils-gdb-e143d25c7376b5c422ac3fac8d8d260c54487450.zip
fsf-binutils-gdb-e143d25c7376b5c422ac3fac8d8d260c54487450.tar.gz
fsf-binutils-gdb-e143d25c7376b5c422ac3fac8d8d260c54487450.tar.bz2
* gas/testsuite/gas/m68k/pmove.s, gas/testsuite/gas/m68k/pmove.d: New test.
* gas/testsuite/gas/m68k/all.exp: Run it. * opcodes/m68k-opc.c (m68k_opcodes): Fix entries for pmove with BADx/BACx register and move them after pmove with PSR/PCSR register.
-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 e96c7bd..b217aa5 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 6035286..2bcce35 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 0000000..33e68f7
--- /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 0000000..7f1ec00
--- /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 0e16dfc..48612d5 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 3c8310a..8347ef1 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 },