This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PowerPC] gas silently replaces floating-point register for illegal gpr
- From: Alan Modra <amodra at bigpond dot net dot au>
- To: Sascha Brawer <brawer at dandelis dot ch>
- Cc: bug-binutils at gnu dot org, binutils at sources dot redhat dot com
- Date: Tue, 12 Aug 2003 11:01:23 +0930
- Subject: Re: [PowerPC] gas silently replaces floating-point register for illegal gpr
- References: <20030811124342.20771@smtp.mail.ch.easynet.net>
On Mon, Aug 11, 2003 at 02:43:42PM +0200, Sascha Brawer wrote:
> Dear binutils/gas maintainers,
>
> the GNU assembler 2.14.90 (cvs version of 2003-08-06) for elf32-powerpc
> accepts the following ill-formed source:
>
> ---------------------- begin foo.s
> .text
> foo: lfs r0,8(r2)
> ---------------------- end foo.s
>
> % powerpc-elf-as -mregnames foo.s
>
> Expected behavior: An error message should be emitted because the target
> of the lfs instruction must be a floating-point register. The target
> cannot be a general-purpose register such as r0.
>
> Observed behavior: The assembler silently replaces r0 by f0.
Instead of fixing this myself, I'll point you to the source that could
be changed to check register type, gas/config/tc-ppc.c:read_register.
read_register would need an extra parameter to pass in operand, or
possibly just operand->flags, to enable a check against expected
register type.
--
Alan Modra
IBM OzLabs - Linux Technology Centre