This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
STRICT_LOW_PART
- To: gcc-patches at gcc dot gnu dot org
- Subject: STRICT_LOW_PART
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 12 Sep 2000 08:58:21 -0600
- Reply-To: law at cygnus dot com
More STRICT_LOW_PART fixes:
* convex.md: Use "+" instead of "=" for outputs wrapped in a
STRICT_LOW_PART.
* i370.md, i386.md, ns32k.md, sh.md, vax.md: Likewise.
Index: config/convex/convex.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/convex/convex.md,v
retrieving revision 1.3
diff -c -3 -p -r1.3 convex.md
*** convex.md 1999/09/07 05:48:25 1.3
--- convex.md 2000/09/12 14:54:42
***************
*** 301,307 ****
operands[1] = force_reg (SImode, operands[1]);")
(define_insn ""
! [(set (strict_low_part (match_operand:SI 0 "general_operand"
"=d,r,d,r,r,m"))
(match_operand:SI 1 "general_operand" "d,r,Q,m,i,r"))]
"register_operand (operands[0], SImode)
|| register_operand (operands[1], SImode)"
--- 301,307 ----
operands[1] = force_reg (SImode, operands[1]);")
(define_insn ""
! [(set (strict_low_part (match_operand:SI 0 "general_operand"
"+d,r,d,r,r,m"))
(match_operand:SI 1 "general_operand" "d,r,Q,m,i,r"))]
"register_operand (operands[0], SImode)
|| register_operand (operands[1], SImode)"
Index: config/i370/i370.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i370/i370.md,v
retrieving revision 1.13
diff -c -3 -p -r1.13 i370.md
*** i370.md 2000/09/07 22:24:33 1.13
--- i370.md 2000/09/12 14:54:47
*************** check_label_emit ();
*** 1065,1071 ****
;
(define_insn "movstrictqi"
! [(set (strict_low_part (match_operand:QI 0 "general_operand" "=d"))
(match_operand:QI 1 "general_operand" "g"))]
""
"*
--- 1065,1071 ----
;
(define_insn "movstrictqi"
! [(set (strict_low_part (match_operand:QI 0 "general_operand" "+d"))
(match_operand:QI 1 "general_operand" "g"))]
""
"*
*************** check_label_emit ();
*** 1087,1093 ****
;
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "=d"))
(match_operand:HI 1 "r_or_s_operand" "g"))]
""
"*
--- 1087,1093 ----
;
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "+d"))
(match_operand:HI 1 "r_or_s_operand" "g"))]
""
"*
*************** check_label_emit ();
*** 1110,1116 ****
)
(define_insn "movstricthi"
! [(set (strict_low_part (match_operand:HI 0 "general_operand" "=dm"))
(match_operand:HI 1 "general_operand" "d"))]
""
"*
--- 1110,1116 ----
)
(define_insn "movstricthi"
! [(set (strict_low_part (match_operand:HI 0 "general_operand" "+dm"))
(match_operand:HI 1 "general_operand" "d"))]
""
"*
Index: config/i386/i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.178
diff -c -3 -p -r1.178 i386.md
*** i386.md 2000/09/11 23:54:11 1.178
--- i386.md 2000/09/12 14:55:08
***************
*** 1717,1723 ****
(set_attr "mode" "HI")])
(define_insn "*movstricthi_xor"
! [(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)"
--- 1717,1723 ----
(set_attr "mode" "HI")])
(define_insn "*movstricthi_xor"
! [(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)"
Index: config/ns32k/ns32k.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/ns32k/ns32k.md,v
retrieving revision 1.15
diff -c -3 -p -r1.15 ns32k.md
*** ns32k.md 2000/08/08 22:40:49 1.15
--- ns32k.md 2000/09/12 14:55:13
***************
*** 993,999 ****
}")
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "=r"))
(plus:HI (match_operand:HI 1 "general_operand" "0")
(match_operand:HI 2 "general_operand" "g")))]
""
--- 993,999 ----
}")
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r"))
(plus:HI (match_operand:HI 1 "general_operand" "0")
(match_operand:HI 2 "general_operand" "g")))]
""
***************
*** 1021,1027 ****
}")
(define_insn ""
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "=r"))
(plus:QI (match_operand:QI 1 "general_operand" "0")
(match_operand:QI 2 "general_operand" "g")))]
""
--- 1021,1027 ----
}")
(define_insn ""
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "+r"))
(plus:QI (match_operand:QI 1 "general_operand" "0")
(match_operand:QI 2 "general_operand" "g")))]
""
***************
*** 1136,1142 ****
}")
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "=r"))
(minus:HI (match_operand:HI 1 "general_operand" "0")
(match_operand:HI 2 "general_operand" "g")))]
""
--- 1136,1142 ----
}")
(define_insn ""
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "+r"))
(minus:HI (match_operand:HI 1 "general_operand" "0")
(match_operand:HI 2 "general_operand" "g")))]
""
***************
*** 1165,1171 ****
}")
(define_insn ""
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "=r"))
(minus:QI (match_operand:QI 1 "general_operand" "0")
(match_operand:QI 2 "general_operand" "g")))]
""
--- 1165,1171 ----
}")
(define_insn ""
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "+r"))
(minus:QI (match_operand:QI 1 "general_operand" "0")
(match_operand:QI 2 "general_operand" "g")))]
""
Index: config/sh/sh.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/sh/sh.md,v
retrieving revision 1.46
diff -c -3 -p -r1.46 sh.md
*** sh.md 2000/09/08 11:00:17 1.46
--- sh.md 2000/09/12 14:55:25
***************
*** 2351,2357 ****
(set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,0")])
(define_insn "movsi_i_lowpart"
! [(set (strict_low_part (match_operand:SI 0 "general_movdst_operand"
"=r,r,r,r,r,m,r"))
(match_operand:SI 1 "general_movsrc_operand" "Q,rI,mr,xl,t,r,i"))]
"register_operand (operands[0], SImode)
|| register_operand (operands[1], SImode)"
--- 2351,2357 ----
(set_attr "length" "*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,*,0")])
(define_insn "movsi_i_lowpart"
! [(set (strict_low_part (match_operand:SI 0 "general_movdst_operand"
"+r,r,r,r,r,m,r"))
(match_operand:SI 1 "general_movsrc_operand" "Q,rI,mr,xl,t,r,i"))]
"register_operand (operands[0], SImode)
|| register_operand (operands[1], SImode)"
Index: config/vax/vax.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/vax/vax.md,v
retrieving revision 1.11
diff -c -3 -p -r1.11 vax.md
*** vax.md 2000/08/29 19:10:05 1.11
--- vax.md 2000/09/12 14:55:27
***************
*** 257,263 ****
}")
(define_insn "movstricthi"
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "=g"))
(match_operand:HI 1 "general_operand" "g"))]
""
"*
--- 257,263 ----
}")
(define_insn "movstricthi"
! [(set (strict_low_part (match_operand:HI 0 "register_operand" "+g"))
(match_operand:HI 1 "general_operand" "g"))]
""
"*
***************
*** 307,313 ****
}")
(define_insn "movstrictqi"
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "=g"))
(match_operand:QI 1 "general_operand" "g"))]
""
"*
--- 307,313 ----
}")
(define_insn "movstrictqi"
! [(set (strict_low_part (match_operand:QI 0 "register_operand" "+g"))
(match_operand:QI 1 "general_operand" "g"))]
""
"*