This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

m68k: fix disassembling fnop


The fnop insn is the same as fbf with zero displacement.  Make sure it
is disassembled as fnop.  Tested on powerpc-linux and checked in as
obvious.

Andreas.

2010-10-12  Andreas Schwab  <schwab@linux-m68k.org>

binutils/:
	* binutils-all/m68k/objdump.exp: Add fnop test.
	* binutils-all/m68k/fnop.s: New file.

opcodes/:
	* m68k-opc.c (m68k_opcodes): Move fnop before fbf.

--- binutils/testsuite/binutils-all/m68k/objdump.exp.~1.4.~	2009-09-04 19:53:55.000000000 +0200
+++ binutils/testsuite/binutils-all/m68k/objdump.exp	2010-10-11 23:58:12.000000000 +0200
@@ -1,4 +1,4 @@
-#   Copyright 2004, 2007, 2009
+#   Copyright 2004, 2007, 2009, 2010
 #   Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
@@ -51,3 +51,29 @@ if [regexp $want $got] then {
 } else {
     fail "movem test"
 }
+
+###########################
+# Set up the test of fnop.s
+###########################
+
+if {![binutils_assemble $srcdir/$subdir/fnop.s tmpdir/fnop.o]} then {
+    return
+}
+
+if [is_remote host] {
+    set objfile [remote_download host tmpdir/fnop.o]
+} else {
+    set objfile tmpdir/fnop.o
+}
+
+# Make sure that fnop is decoded as fnop, not fbf.
+
+set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"]
+
+set want "fnop *\[\r\n\]"
+
+if [regexp $want $got] then {
+    pass "fnop test"
+} else {
+    fail "fnop test"
+}
--- opcodes/m68k-opc.c.~1.34.~	2010-06-18 23:52:36.000000000 +0200
+++ opcodes/m68k-opc.c	2010-10-11 23:43:48.000000000 +0200
@@ -1,6 +1,6 @@
 /* Opcode table for m680[012346]0/m6888[12]/m68851/mcf5200.
    Copyright 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2003, 2004, 2005, 2006, 2007, 2009
+   2000, 2001, 2003, 2004, 2005, 2006, 2007, 2009, 2010
    Free Software Foundation, Inc.
 
    This file is part of the GNU opcodes library.
@@ -529,6 +529,9 @@ const struct m68k_opcode m68k_opcodes[]
 {"fatanhx", 4,	two(0xF000, 0x480D), two(0xF1C0, 0xFC7F), "Ii;xF7", mfloat },
 {"fatanhx", 4,	two(0xF000, 0x000D), two(0xF1C0, 0xE07F), "IiFt",   mfloat },
 
+/* This is the same as `fbf .+2'.  */
+{"fnop", 4,	two(0xF280, 0x0000), two(0xFFFF, 0xFFFF), "Ii", mfloat | cfloat },
+
 {"fbeq", 2,	one(0xF081),		one(0xF1FF), "IdBW", mfloat | cfloat },
 {"fbf", 2,	one(0xF080),		one(0xF1FF), "IdBW", mfloat | cfloat },
 {"fbge", 2,	one(0xF093),		one(0xF1FF), "IdBW", mfloat | cfloat },
@@ -1084,8 +1087,6 @@ const struct m68k_opcode m68k_opcodes[]
 {"fdnegx", 4,	two(0xF000, 0x485E), two(0xF1C0, 0xFC7F), "Ii;xF7", m68040up },
 {"fdnegx", 4,	two(0xF000, 0x005E), two(0xF1C0, 0xE07F), "IiFt",   m68040up },
 
-{"fnop", 4,	two(0xF280, 0x0000), two(0xFFFF, 0xFFFF), "Ii", mfloat | cfloat },
-
 {"fremb", 4,	two(0xF000, 0x5825), two(0xF1C0, 0xFC7F), "Ii;bF7", mfloat },
 {"fremd", 4,	two(0xF000, 0x5425), two(0xF1C0, 0xFC7F), "Ii;FF7", mfloat },
 {"freml", 4,	two(0xF000, 0x4025), two(0xF1C0, 0xFC7F), "Ii;lF7", mfloat },
Index: binutils/testsuite/binutils-all/m68k/fnop.s
===================================================================
RCS file: binutils/testsuite/binutils-all/m68k/fnop.s
diff -N binutils/testsuite/binutils-all/m68k/fnop.s
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ binutils/testsuite/binutils-all/m68k/fnop.s	11 Oct 2010 22:09:23 -0000
@@ -0,0 +1 @@
+	fnop

-- 
Andreas Schwab, schwab@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]