This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
i386 splitter fixes
- To: Richard Henderson <rth at redhat dot com>, Jan Hubicka <jh at suse dot cz>, gcc-patches at gcc dot gnu dot org, patches at x86-64 dot org, gcc at gcc dot gnu dot org
- Subject: i386 splitter fixes
- From: Jan Hubicka <jh at suse dot cz>
- Date: Mon, 25 Jun 2001 13:40:31 +0200
Hi,
this patch fixes few splitters to add missing reload_completed predicate.
Bootstrapped and regtested on i586.
Honza
Mon Jun 25 13:35:07 CEST 2001 Jan Hubicka <jh@suse.cz>
* i386.md (float_truncate splitter, and to mov splitters): Add
reload_completted; fix operand predicate.
Index: config/i386/i386.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/i386/i386.md,v
retrieving revision 1.279
diff -c -3 -p -r1.279 i386.md
*** i386.md 2001/06/25 09:16:37 1.279
--- i386.md 2001/06/25 11:34:56
***************
*** 4410,4416 ****
(float_truncate:SF
(match_operand:DF 1 "nonimmediate_operand" "")))
(clobber (match_operand 2 "" ""))]
! "TARGET_80387 && !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])"
[(set (match_dup 0) (float_truncate:SF (match_dup 1)))]
"")
--- 4410,4417 ----
(float_truncate:SF
(match_operand:DF 1 "nonimmediate_operand" "")))
(clobber (match_operand 2 "" ""))]
! "TARGET_80387 && reload_completed
! && !FP_REG_P (operands[0]) && !FP_REG_P (operands[1])"
[(set (match_dup 0) (float_truncate:SF (match_dup 1)))]
"")
***************
*** 8310,8316 ****
(set_attr "mode" "SI")])
(define_split
! [(set (match_operand 0 "ext_register_operand" "")
(and (match_dup 0)
(const_int -65536)))
(clobber (reg:CC 17))]
--- 8311,8317 ----
(set_attr "mode" "SI")])
(define_split
! [(set (match_operand 0 "register_operand" "")
(and (match_dup 0)
(const_int -65536)))
(clobber (reg:CC 17))]
***************
*** 8323,8329 ****
(and (match_dup 0)
(const_int -256)))
(clobber (reg:CC 17))]
! "(optimize_size || !TARGET_PARTIAL_REG_STALL)"
[(set (strict_low_part (match_dup 1)) (const_int 0))]
"operands[1] = gen_lowpart (QImode, operands[0]);")
--- 8324,8330 ----
(and (match_dup 0)
(const_int -256)))
(clobber (reg:CC 17))]
! "(optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed"
[(set (strict_low_part (match_dup 1)) (const_int 0))]
"operands[1] = gen_lowpart (QImode, operands[0]);")
***************
*** 8332,8338 ****
(and (match_dup 0)
(const_int -65281)))
(clobber (reg:CC 17))]
! "(optimize_size || !TARGET_PARTIAL_REG_STALL)"
[(parallel [(set (zero_extract:SI (match_dup 0)
(const_int 8)
(const_int 8))
--- 8333,8339 ----
(and (match_dup 0)
(const_int -65281)))
(clobber (reg:CC 17))]
! "(optimize_size || !TARGET_PARTIAL_REG_STALL) && reload_completed"
[(parallel [(set (zero_extract:SI (match_dup 0)
(const_int 8)
(const_int 8))