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]

Obvious patch into i386 movsfcc_1


Adds the garbage to get preferences right out of reg-stack.

Honza

Wed Feb 19 17:16:56 CET 2003  Jan Hubicka  <jh at suse dot cz>
	* i386.md (movsfcc_1, movdfcc_1): Fix constrains.
Index: i386.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.md,v
retrieving revision 1.401.2.17
diff -c -3 -p -r1.401.2.17 i386.md
*** i386.md	19 Feb 2003 13:26:20 -0000	1.401.2.17
--- i386.md	19 Feb 2003 16:11:41 -0000
***************
*** 16626,16636 ****
    "if (! ix86_expand_fp_movcc (operands)) FAIL; DONE;")
  
  (define_insn "*movsfcc_1"
!   [(set (match_operand:SF 0 "register_operand" "=f,f,r,r")
  	(if_then_else:SF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:SF 2 "nonimmediate_operand" "f,0,rm,0")
! 		      (match_operand:SF 3 "nonimmediate_operand" "0,f,0,rm")))]
    "TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@
--- 16671,16681 ----
    "if (! ix86_expand_fp_movcc (operands)) FAIL; DONE;")
  
  (define_insn "*movsfcc_1"
!   [(set (match_operand:SF 0 "register_operand" "=f#r,f#r,r#f,r#f")
  	(if_then_else:SF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:SF 2 "nonimmediate_operand" "f#r,0,rm#f,0")
! 		      (match_operand:SF 3 "nonimmediate_operand" "0,f#r,0,rm#f")))]
    "TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@
***************
*** 16650,16660 ****
    "if (! ix86_expand_fp_movcc (operands)) FAIL; DONE;")
  
  (define_insn "*movdfcc_1"
!   [(set (match_operand:DF 0 "register_operand" "=f,f,&r,&r")
  	(if_then_else:DF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:DF 2 "nonimmediate_operand" "f,0,rm,0")
! 		      (match_operand:DF 3 "nonimmediate_operand" "0,f,0,rm")))]
    "!TARGET_64BIT && TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@
--- 16695,16705 ----
    "if (! ix86_expand_fp_movcc (operands)) FAIL; DONE;")
  
  (define_insn "*movdfcc_1"
!   [(set (match_operand:DF 0 "register_operand" "=f#r,f#r,&r#f,&r#f")
  	(if_then_else:DF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:DF 2 "nonimmediate_operand" "f#r,0,rm#f,0")
! 		      (match_operand:DF 3 "nonimmediate_operand" "0,f#r,0,rm#f")))]
    "!TARGET_64BIT && TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@
***************
*** 16669,16676 ****
!   [(set (match_operand:DF 0 "register_operand" "=f,f,&r,&r")
  	(if_then_else:DF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:DF 2 "nonimmediate_operand" "f,0,rm,0")
! 		      (match_operand:DF 3 "nonimmediate_operand" "0,f,0,rm")))]
    "TARGET_64BIT && TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@
--- 16714,16721 ----
!   [(set (match_operand:DF 0 "register_operand" "=f#r,f#r,&r#f,&r#f")
  	(if_then_else:DF (match_operator 1 "fcmov_comparison_operator" 
  				[(reg 17) (const_int 0)])
! 		      (match_operand:DF 2 "nonimmediate_operand" "f#r,0#r,rm#f,0#f")
! 		      (match_operand:DF 3 "nonimmediate_operand" "0#r,f#r,0#f,rm#f")))]
    "TARGET_64BIT && TARGET_CMOVE
     && (GET_CODE (operands[2]) != MEM || GET_CODE (operands[3]) != MEM)"
    "@


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