diff options
-rw-r--r-- | binutils/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/m68k/fnop.s | 1 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/m68k/objdump.exp | 28 | ||||
-rw-r--r-- | opcodes/ChangeLog | 4 | ||||
-rw-r--r-- | opcodes/m68k-opc.c | 7 |
5 files changed, 41 insertions, 4 deletions
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index 66977a8d3a..7cd27fce63 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-10-12 Andreas Schwab <schwab@linux-m68k.org> + + * binutils-all/m68k/objdump.exp: Add fnop test. + * binutils-all/m68k/fnop.s: New file. + 2010-09-29 Alan Modra <amodra@gmail.com> * lib/utils-lib.exp (is_elf_format): Merge with gas and ld versions. diff --git a/binutils/testsuite/binutils-all/m68k/fnop.s b/binutils/testsuite/binutils-all/m68k/fnop.s new file mode 100644 index 0000000000..628e1989b0 --- /dev/null +++ b/binutils/testsuite/binutils-all/m68k/fnop.s @@ -0,0 +1 @@ + fnop diff --git a/binutils/testsuite/binutils-all/m68k/objdump.exp b/binutils/testsuite/binutils-all/m68k/objdump.exp index ba0afe8c02..5043ef7e1d 100644 --- a/binutils/testsuite/binutils-all/m68k/objdump.exp +++ b/binutils/testsuite/binutils-all/m68k/objdump.exp @@ -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" +} diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 8581095b61..43a585d8a0 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,7 @@ +2010-10-12 Andreas Schwab <schwab@linux-m68k.org> + + * m68k-opc.c (m68k_opcodes): Move fnop before fbf. + 2010-10-11 Andreas Krebbel <Andreas.Krebbel@de.ibm.com> * s390-opc.c: Make the instruction masks for the load/store on diff --git a/opcodes/m68k-opc.c b/opcodes/m68k-opc.c index 71e712e29c..0f6852f147 100644 --- a/opcodes/m68k-opc.c +++ b/opcodes/m68k-opc.c @@ -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 }, |