This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
More new x86 breakage
- To: egcs at egcs dot cygnus dot com
- Subject: More new x86 breakage
- From: John Wehle <john at feith dot com>
- Date: Wed, 14 Apr 1999 01:10:40 -0400 (EDT)
Sigh ... what a tangled web. You might think that a function
called output_move_double outputs the necessary instructions.
Unfortunately it doesn't output all the instructions, sometimes
it returns the last instruction in the move sequence as a template
assuming that you will output it yourself with the correct operands.
This means that use in a define_insn such as:
else if (NON_STACK_REG_P (operands[0]))
{
xops[0] = operands[0];
xops[1] = operands[2];
return output_move_double (xops);
}
is incorrect since the template is intended for use with xops, not
operands. The * really * unfortunate thing is that I've introduced
this type of usage when I changed the x86 floating point truncation
patterns. My suggestion is to change output_move_double so that
it outputs all the instructions and returns void. Any other suggestions?
-- John
PS: Sorry for the recent series of breakage.
-------------------------------------------------------------------------
| Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
| John Wehle | Fax: 1-215-540-5495 | |
-------------------------------------------------------------------------