From 64a6bb4efc0d2f972ea7bf652c394ac0d9f8f7f3 Mon Sep 17 00:00:00 2001 From: Nathan Sidwell Date: Wed, 17 Oct 2007 13:44:09 +0000 Subject: [PATCH] opcodes/ * m68k-opc.c (m68k_opcodes): Correct move sr and ccr masks for coldfire. gas/testsuite/ * gas/m68k/mcf-movsr.s: New. * gas/m68k/mcf-movsr.d: New. * gas/m68k/all.exp: Add mcf-movsr test. --- gas/testsuite/ChangeLog | 6 ++++++ gas/testsuite/gas/m68k/all.exp | 1 + gas/testsuite/gas/m68k/mcf-movsr.d | 15 +++++++++++++++ gas/testsuite/gas/m68k/mcf-movsr.s | 13 +++++++++++++ opcodes/ChangeLog | 5 +++++ opcodes/m68k-opc.c | 4 ++-- 6 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 gas/testsuite/gas/m68k/mcf-movsr.d create mode 100644 gas/testsuite/gas/m68k/mcf-movsr.s diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index b1b06681f..c180bea02 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2007-10-17 Nathan Sidwell + + * gas/m68k/mcf-movsr.s: New. + * gas/m68k/mcf-movsr.d: New. + * gas/m68k/all.exp: Add mcf-movsr test. + 2007-10-16 Nick Clifton * gas/elf/elf.exp: Accept COMMON in readelf's output. diff --git a/gas/testsuite/gas/m68k/all.exp b/gas/testsuite/gas/m68k/all.exp index ae9f993b7..0dcf29eb1 100644 --- a/gas/testsuite/gas/m68k/all.exp +++ b/gas/testsuite/gas/m68k/all.exp @@ -49,6 +49,7 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then { } run_dump_test mcf-mov3q + run_dump_test mcf-movsr run_dump_test mode5 run_dump_test mcf-mac run_dump_test mcf-emac diff --git a/gas/testsuite/gas/m68k/mcf-movsr.d b/gas/testsuite/gas/m68k/mcf-movsr.d new file mode 100644 index 000000000..494413a9c --- /dev/null +++ b/gas/testsuite/gas/m68k/mcf-movsr.d @@ -0,0 +1,15 @@ +#name: mcf-movsr +#objdump: -d +#as: -mcpu=5329 + +.*: file format .* + +Disassembly of section .text: + +0+ : + 0: 46c3 movew %d3,%sr + 2: 46fc ffff movew #-1,%sr + 6: 40c3 movew %sr,%d3 + 8: 44c3 movew %d3,%ccr + a: 44fc ffff movew #-1,%ccr + e: 42c3 movew %ccr,%d3 diff --git a/gas/testsuite/gas/m68k/mcf-movsr.s b/gas/testsuite/gas/m68k/mcf-movsr.s new file mode 100644 index 000000000..32c9ecbe6 --- /dev/null +++ b/gas/testsuite/gas/m68k/mcf-movsr.s @@ -0,0 +1,13 @@ +.text +|***************************************************************** +| Test all permutations of movew sr and movew ccr +|***************************************************************** + .global test_movsr +test_movsr: + move.w %d3,%sr | Mode 0 + move.w #-1,%sr | Mode 7.4 + move.w %sr,%d3 | Mode 0 + + move.w %d3,%ccr | Mode 0 + move.w #-1,%ccr | Mode 7.4 + move.w %ccr,%d3 | Mode 0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index d9f7c9d08..a4d3f1ae4 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2007-10-17 Nathan Sidwell + + * m68k-opc.c (m68k_opcodes): Correct move sr and ccr masks for + coldfire. + 2007-10-15 Peter Bergner * ppc-opc.c (powerpc_opcodes): Fix the first two operands of diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c index 0094dab09..e3b7a455a 100644 --- a/opcodes/m68k-opc.c +++ b/opcodes/m68k-opc.c @@ -1593,10 +1593,10 @@ const struct m68k_opcode m68k_opcodes[] = {"movew", 2, one(0041300), one(0177700), "Cs$s", m68010up }, {"movew", 2, one(0041300), one(0177770), "CsDs", mcfisa_a }, {"movew", 2, one(0042300), one(0177700), ";wCd", m68000up }, -{"movew", 2, one(0042300), one(0177700), "DsCd", mcfisa_a }, +{"movew", 2, one(0042300), one(0177770), "DsCd", mcfisa_a }, {"movew", 4, one(0042374), one(0177777), "#wCd", mcfisa_a }, {"movew", 2, one(0043300), one(0177700), ";wSd", m68000up }, -{"movew", 2, one(0043300), one(0177700), "DsSd", mcfisa_a }, +{"movew", 2, one(0043300), one(0177770), "DsSd", mcfisa_a }, {"movew", 4, one(0043374), one(0177777), "#wSd", mcfisa_a }, {"movel", 2, one(0070000), one(0170400), "MsDd", m68000up | mcfisa_a }, -- 2.11.4.GIT