From e143d25c7376b5c422ac3fac8d8d260c54487450 Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 16 Jan 2012 23:19:20 +0000 Subject: [PATCH] * 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. --- gas/testsuite/ChangeLog | 5 +++++ gas/testsuite/gas/m68k/all.exp | 2 ++ gas/testsuite/gas/m68k/pmove.d | 16 ++++++++++++++++ gas/testsuite/gas/m68k/pmove.s | 6 ++++++ opcodes/ChangeLog | 5 +++++ opcodes/m68k-opc.c | 4 ++-- 6 files changed, 36 insertions(+), 2 deletions(-) create mode 100644 gas/testsuite/gas/m68k/pmove.d create mode 100644 gas/testsuite/gas/m68k/pmove.s diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index e96c7bda30a..b217aa50742 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-01-17 Andreas Schwab + + * gas/m68k/pmove.s, gas/m68k/pmove.d: New test. + * gas/m68k/all.exp: Run it. + 2012-01-13 H.J. Lu * 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 60352862d54..2bcce35e8b7 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 00000000000..33e68f72279 --- /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 00000000000..7f1ec00122c --- /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 0e16dfc12ba..48612d5bf20 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2012-01-17 Andreas Schwab + + * 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 * i386-dis.c (mod_table): Add vmfunc. diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c index 3c8310aa6ea..8347ef1e588 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 }, -- 2.30.2