This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: fix 20650



On 02/04/2005, at 11:04 AM, David Edelsohn wrote:


-  [(parallel [(set (match_operand:SI 0 "reg_or_mem_operand" "")
+  [(parallel [(set (match_operand:SI 0 "gpc_reg_operand" "")

	I created a special e500 reg_or_mem_operand predicate for
expandsfdf2.  You could do something similar for fix_truncdfsi2 with
GFXOPT and try rth's SUBREG suggestion, if you want.

The problem I have is that if I make the expander only take memory operands (forgetting about the non-GFXOPT case for now), then optabs fails, because it assumes that every instruction can take a register; but if I make the expander take registers, then either I have to make temporary memory locations in the expander for all pseudos, which can't be removed by any later pass, or reload fails, apparently because it doesn't know how to put a pseudo into memory.


There must be other ports that have instructions that can operate only on memory; does anyone know an example?

Attachment: smime.p7s
Description: S/MIME cryptographic signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]