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 + + * 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 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 + + * 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 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 },