This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: PATCH: Fix m68k gas test
On Thu, Nov 06, 2003 at 03:15:55AM +0100, Bernardo Innocenti wrote:
> H. J. Lu wrote:
>
> >>Hmmm... I will investigate, but I can't build on m68k-linux and
> >
> >What is wrong with m68k-linux?
>
> It's just that I don't have my Amiga to run it ;-)
>
>
> >>m68k-elf-objdump appears to work fine here:
> >
> >It is not the problem. fmoveml is the problem.
>
> Oops. Could you please tell me the exact command line that
> dejagnu passes when running that test?
>
> The disassembler must be told what the CPU type is, otherwise
> it could interpret instructions incorrectly.
>
> The description of fmoveml for the 68881 is:
>
> {"fmoveml", two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Ii*lL8", mfloat },
>
> The failure might have something to do with any of these new
> instructions added by the patch:
>
> {"fmovel", two(0xF000, 0x8000), two(0xF1C0, 0xE3FF), "Iibss8", cfloat },
> {"fmovem", two(0xF000, 0xD000), two(0xFFC0, 0xFF00), "IizsL3", cfloat },
> {"fmovem", two(0xF000, 0xD000), two(0xFFC0, 0xFF00), "Iizs#3", cfloat },
> {"fmovem", two(0xF000, 0xF000), two(0xFFC0, 0xFF00), "Ii#3ys", cfloat },
> {"fmovem", two(0xF000, 0xF000), two(0xFFC0, 0xFF00), "IiL3ys", cfloat },
>
> The first one is expecially suspicious because it has the very same encoding
> and mask. The BFD disassembler should be able to tell one from the other
> because "cfloat" and "mfloat" are different CPU masks:
>
> #define mfloat (m68881 | m68882 | m68040 | m68060)
> #define cfloat (mcfv4e)
>
> Peter Barada is more qualified on this topic. I've added him to the Cc list
> in case he wants to give his opinion.
>
# cat foo.s
fmoveml &1,%fpcr
# ../as-new -o foo.o foo.s
# ../../binutils/objdump -d foo.o
foo.o: file format elf32-m68k
Disassembly of section .text:
00000000 <.text>:
0: f23c 0171074
2: 9000 subb %d0,%d0
4: 0000 0001 orib #1,%d0
H.J.