This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] powerpc: ignore opcodes on e500/SPE which can't be mixed
* Alan Modra | 2010-05-03 16:01:15 [+0930]:
>On Sun, May 02, 2010 at 03:41:32PM +0200, Sebastian Andrzej Siewior wrote:
>> + * ppc-opcodes.c: Deprecate all PPCVEC opcodes on PPCSPE,
>> + deprecate opcodes which use floating point registers on PPCEFS,
>> + deprecate lwsync on PPCSPE.
>
>This isn't correct. Please don't add the "deprecate" to all vec/fp
I though the deprecate flag is for invalid mix of opcodes.
>opcodes like this. Most should not be enabled for e500 anyway, so
>don't need to be deprecated.
The compiler throws in -mppc -mspe -me500 -many. The first three are CPU
specific, the last one is used by gcc for all powerpcs. Without the last
one VMX would be ignored but I am not sure what else might. So even without
-many floating point and lwsync gets assmebled successfully:
.gnu_attribute 4, 2
.gnu_attribute 8, 3
.section ".text"
.align 2
.globl main
.type main, @function
main:
fmul 0, 1, 2
blr
.size main, .-main
.section .note.GNU-stack,"",@progbits
Is there something you recommend so I can forbid this? As I wrote
earlier: the compiler does throw any of this opcodes but itself, they
are just .S files and asm() syntax within the .c file.
>Also, I see you disabled "lfdepx".
Why disabled? I marked all opcodes which touch FP regs. I could make a
sane subset which exlude power6 and so on. If you refer to E500MC then
that one does not use embedded FPU, it uses the "traditional" one.
Sebastian