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]

Re: Patch for i386 string operations


On Mon, Jan 10, 2000 at 12:50:29PM +0100, Jan Hubicka wrote:
> ! (define_insn "strmovhi_1"
> !   [(set (mem:HI (match_operand:SI 0 "address_operand" "D"))
> ! 	(mem:HI (match_operand:SI 1 "address_operand" "S")))
> !    (set (match_operand:SI 2 "register_operand" "=0")
> ! 	(plus:SI (match_dup 0)
> ! 		 (const_int 1)))
> !    (set (match_operand:SI 3 "register_operand" "=1")
> ! 	(plus:SI (match_dup 1)
> ! 		 (const_int 1)))
> !    (use (reg:SI 19))]

I seem to recall some assumptions in reload that outputs preceed
inputs in operand order.  Change this to 

   [(set (mem:HI (match_operand:SI 2 "address_operand" "0"))
 	 (mem:HI (match_operand:SI 3 "address_operand" "1")))
    (set (match_operand:SI 0 "register_operand" "D")
 	 (plus:SI (match_dup 0)
 		  (const_int 1)))
    (set (match_operand:SI 1 "register_operand" "S")
 	 (plus:SI (match_dup 1)
 		  (const_int 1)))
    (use (reg:SI 19))]

Otherwise ok.


r~

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