This is the mail archive of the 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]

[PATCH] PR target/19389 Odd gpr mem load unrecognizable insn

This patch constrains addresses accepted by movtf so that gpr loads and
stores to memory must satisfy word_offset_memref_operand, similarly to
the way movdf constrains gpr loads and stores.  This allows David's
recent rs6000_legitimize_reload_address fix to trigger for TFmode.

	PR target/19389
	* config/rs6000/ (movtf_internal): Replace r->o and m->r
	with r->Y and Y->r.

Bootstrap etc. in progress.  OK for mainline?

Index: gcc/config/rs6000/
RCS file: /cvs/gcc/gcc/gcc/config/rs6000/,v
retrieving revision 1.339
diff -u -p -r1.339
--- gcc/config/rs6000/	25 Dec 2004 12:41:02 -0000	1.339
+++ gcc/config/rs6000/	12 Jan 2005 04:50:12 -0000
@@ -8234,10 +8234,10 @@
 ; It's important to list the o->f and f->o moves before f->f because
 ; otherwise reload, given m->f, will try to pick f->f and reload it,
-; which doesn't make progress.  Likewise r->o<> must be before r->r.
+; which doesn't make progress.  Likewise r->Y must be before r->r.
 (define_insn_and_split "*movtf_internal"
-  [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,f,r,o<>,r")
-	(match_operand:TF 1 "input_operand"         "f,o,f,mGHF,r,r"))]
+  [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,f,r,Y,r")
+	(match_operand:TF 1 "input_operand"         "f,o,f,YGHF,r,r"))]
    && (gpc_reg_operand (operands[0], TFmode)

Alan Modra
IBM OzLabs - Linux Technology Centre

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