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]

i686/movstricthi fix


Hi
my pre-reload switching patch brought two i686 failures, as movstricthi
does not contain proper test.

Tue Jun 26 17:34:30 CEST 2001  Jan Hubicka  <jh@suse.cz>
	* i386.md (movstricthi) Enable for optimize_size
	(movstricthi_xor): Disable for partial reg stall machines.

Index: config/i386/i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.280
diff -c -3 -p -r1.280 i386.md
*** i386.md	2001/06/26 10:47:33	1.280
--- i386.md	2001/06/26 15:31:36
***************
*** 1953,1959 ****
  (define_expand "movstricthi"
    [(set (strict_low_part (match_operand:HI 0 "nonimmediate_operand" ""))
  	(match_operand:HI 1 "general_operand" ""))]
!   "! TARGET_PARTIAL_REG_STALL"
    "
  {
    /* Don't generate memory->memory moves, go through a register */
--- 1953,1959 ----
  (define_expand "movstricthi"
    [(set (strict_low_part (match_operand:HI 0 "nonimmediate_operand" ""))
  	(match_operand:HI 1 "general_operand" ""))]
!   "! TARGET_PARTIAL_REG_STALL && !optimize_size"
    "
  {
    /* Don't generate memory->memory moves, go through a register */
***************
*** 1964,1970 ****
  (define_insn "*movstricthi_1"
    [(set (strict_low_part (match_operand:HI 0 "nonimmediate_operand" "+rm,r"))
  	(match_operand:HI 1 "general_operand" "rn,m"))]
!   "! TARGET_PARTIAL_REG_STALL
     && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
    "mov{w}\\t{%1, %0|%0, %1}"
    [(set_attr "type" "imov")
--- 1964,1970 ----
  (define_insn "*movstricthi_1"
    [(set (strict_low_part (match_operand:HI 0 "nonimmediate_operand" "+rm,r"))
  	(match_operand:HI 1 "general_operand" "rn,m"))]
!   "(! TARGET_PARTIAL_REG_STALL || optimize_size)
     && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)"
    "mov{w}\\t{%1, %0|%0, %1}"
    [(set_attr "type" "imov")
***************
*** 1974,1980 ****
    [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r"))
  	(match_operand:HI 1 "const0_operand" "i"))
     (clobber (reg:CC 17))]
!   "reload_completed && (!TARGET_USE_MOV0 || optimize_size)"
    "xor{w}\\t{%0, %0|%0, %0}"
    [(set_attr "type" "alu1")
     (set_attr "mode" "HI")
--- 1974,1981 ----
    [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r"))
  	(match_operand:HI 1 "const0_operand" "i"))
     (clobber (reg:CC 17))]
!   "reload_completed
!    && ((!TARGET_USE_MOV0 && !TARGET_PARTIAL_REG_STALL) || optimize_size)"
    "xor{w}\\t{%0, %0|%0, %0}"
    [(set_attr "type" "alu1")
     (set_attr "mode" "HI")


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