Problem when defining new mips insns
Pontus Lidman
pontus@lysator.liu.se
Sun Oct 24 19:33:00 GMT 2004
Roger Sayle <roger@eyesopen.com> writes:
[...]
> The relevant code is (perhaps) around line 2285 of optabs.c:
[...]
That's exactly the place I was looking for.
> Another possibility is that your target is unable to perform a
> DImode XOR, so expand_binop(imode, xor_optab, ... is widening the
> operation to TImode.
Bingo. Since the target can do xor in SI or TI modes but not DI, the
operation is widened. I can see several solutions now that I
understand how and why it happens.
> And of course, the above code should never even get executed unless
> your MIPS variant doesn't have a negdf2 pattern!? It looks like
> CVS mainline's current mips.md unconditionally defines a negdf2.
The target only has 32-bit floats; presumably there is already some
magic in gcc to avoid double instructions on such targets, maybe based
on TARGET_SINGLE_FLOAT or TARGET_FLOAT64. Anyway the right thing
happens for me now :)
I have a much clearer understanding of the situation now, thanks to
your help!
Best Regards,
Pontus
--
Pontus Lidman, pontus@lysator.liu.se, Software Engineer
No matter how cynical you get, it's impossible to keep up.
Scene: www.dc-s.com | MUD: tyme.envy.com 6969 | irc: irc.quakenet.eu.org
More information about the Gcc
mailing list