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]

another occurrence of need to fixup MEM on x86


When patch misapplied the patch to movstrsi, I realized that the area where
it misapplied the hunk was another place where the original problem could
recur (though I have no test case right now).  So I comitted the following to
both the mainline and branch.  My usual test machine is Alpha, but I did a
bootstrap of the branch with this change.

Thu Mar  8 06:32:50 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>

	* config/i386/i386.md (clrstrsi): Call ix86_set_move_mem_attrs.

*** config/i386/i386.md	2001/03/07 02:32:36	1.204.2.7
--- config/i386/i386.md	2001/03/07 02:52:14
***************
*** 11052,11056 ****
--- 11052,11059 ----
    int align = 0;
    int count = -1;
+   rtx insns;
  
+   start_sequence ();
+ 
    if (GET_CODE (operands[2]) == CONST_INT)
      align = INTVAL (operands[2]);
***************
*** 11108,11115 ****
  	 shorter code.  */
        if (!TARGET_INLINE_ALL_STRINGOPS && align < 4)
! 	FAIL;
  
        if (TARGET_SINGLE_STRINGOP)
! 	emit_insn (gen_cld());
  
        countreg2 = gen_reg_rtx (SImode);
--- 11111,11121 ----
  	 shorter code.  */
        if (!TARGET_INLINE_ALL_STRINGOPS && align < 4)
! 	{
! 	  end_sequence ();
! 	  FAIL;
! 	}
  
        if (TARGET_SINGLE_STRINGOP)
! 	emit_insn (gen_cld ());
  
        countreg2 = gen_reg_rtx (SImode);
***************
*** 11205,11208 ****
--- 11211,11221 ----
  	}
      }
+ 
+   insns = get_insns ();
+   end_sequence ();
+ 
+   ix86_set_move_mem_attrs (insns, operands[0], operands[0], destreg, destreg);
+   emit_insns (insns);
+ 
    DONE;
  }")


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