public inbox for binutils@sourceware.org
 help / color / mirror / Atom feed
* fix coldfire %sr & %ccr moves
@ 2007-10-17 14:05 Nathan Sidwell
  0 siblings, 0 replies; only message in thread
From: Nathan Sidwell @ 2007-10-17 14:05 UTC (permalink / raw)
  To: binutils

[-- Attachment #1: Type: text/plain, Size: 368 bytes --]

I've applied this obvious patch to fix disassembling constant moves to the %sr 
and %ccr registers.  The opcode mask was not correctly set for the register 
source operand case, and so we'd disassemble constant moves as moves from 
register d4 followed by a random instruction.

nathan
-- 
Nathan Sidwell    ::   http://www.codesourcery.com   ::         CodeSourcery


[-- Attachment #2: all.diff --]
[-- Type: text/plain, Size: 3873 bytes --]

2007-10-17  Nathan Sidwell  <nathan@codesourcery.com>

	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.

Index: opcodes/m68k-opc.c
===================================================================
RCS file: /cvs/src/src/opcodes/m68k-opc.c,v
retrieving revision 1.27
diff -c -3 -p -r1.27 m68k-opc.c
*** opcodes/m68k-opc.c	5 Jul 2007 09:49:02 -0000	1.27
--- opcodes/m68k-opc.c	17 Oct 2007 13:42:57 -0000
*************** const struct m68k_opcode m68k_opcodes[] 
*** 1593,1602 ****
  {"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", 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", 4,	one(0043374),	one(0177777), "#wSd", mcfisa_a },
  
  {"movel", 2,	one(0070000),	one(0170400), "MsDd", m68000up | mcfisa_a },
--- 1593,1602 ----
  {"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(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(0177770), "DsSd", mcfisa_a },
  {"movew", 4,	one(0043374),	one(0177777), "#wSd", mcfisa_a },
  
  {"movel", 2,	one(0070000),	one(0170400), "MsDd", m68000up | mcfisa_a },
Index: gas/testsuite/gas/m68k/all.exp
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/m68k/all.exp,v
retrieving revision 1.17
diff -c -3 -p -r1.17 all.exp
*** gas/testsuite/gas/m68k/all.exp	3 Jul 2007 07:54:19 -0000	1.17
--- gas/testsuite/gas/m68k/all.exp	17 Oct 2007 13:42:57 -0000
*************** if { [istarget m68*-*-*] || [istarget fi
*** 49,54 ****
--- 49,55 ----
      }
  
      run_dump_test mcf-mov3q
+     run_dump_test mcf-movsr
      run_dump_test mode5
      run_dump_test mcf-mac
      run_dump_test mcf-emac
Index: gas/testsuite/gas/m68k/mcf-movsr.d
===================================================================
RCS file: gas/testsuite/gas/m68k/mcf-movsr.d
diff -N gas/testsuite/gas/m68k/mcf-movsr.d
*** /dev/null	1 Jan 1970 00:00:00 -0000
--- gas/testsuite/gas/m68k/mcf-movsr.d	17 Oct 2007 13:42:57 -0000
***************
*** 0 ****
--- 1,15 ----
+ #name: mcf-movsr
+ #objdump: -d
+ #as: -mcpu=5329
+ 
+ .*:     file format .*
+ 
+ Disassembly of section .text:
+ 
+ 0+ <test_movsr>:
+    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
Index: gas/testsuite/gas/m68k/mcf-movsr.s
===================================================================
RCS file: gas/testsuite/gas/m68k/mcf-movsr.s
diff -N gas/testsuite/gas/m68k/mcf-movsr.s
*** /dev/null	1 Jan 1970 00:00:00 -0000
--- gas/testsuite/gas/m68k/mcf-movsr.s	17 Oct 2007 13:42:57 -0000
***************
*** 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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2007-10-17 13:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-17 14:05 fix coldfire %sr & %ccr moves Nathan Sidwell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).