aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@libertysurf.fr>2003-10-18 09:24:59 +0200
committerEric Botcazou <ebotcazou@gcc.gnu.org>2003-10-18 07:24:59 +0000
commit67e53009556d04f437d5b855dc50fde37afcf124 (patch)
treea37c094ae2576d1dae8b8ad10af0cef3f19e97d3
parentfca086c1ab9c5293dea84494a6a1d51fd51b41af (diff)
downloadgcc-67e53009556d04f437d5b855dc50fde37afcf124.zip
gcc-67e53009556d04f437d5b855dc50fde37afcf124.tar.gz
gcc-67e53009556d04f437d5b855dc50fde37afcf124.tar.bz2
re PR rtl-optimization/8178 (__builtin_ffs broken with -march=k6)
PR optimization/8178 * config/i386/i386.md (*movsi_zero): New insn to set a register to zero on TARGET_USE_MOV0 targets. From-SVN: r72634
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/i386/i386.md9
2 files changed, 15 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a610747..b89036c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2003-10-18 Eric Botcazou <ebotcazou@libertysurf.fr>
+
+ PR optimization/8178
+ * config/i386/i386.md (*movsi_zero): New insn to set
+ a register to zero on TARGET_USE_MOV0 targets.
+
2003-10-18 Kelley Cook <kcook@gcc.gnu.org>
* Makefile.in (Makefile): Depend on the all Make-lang.in fragments.
@@ -16,7 +22,6 @@
* doc/install.texi: Document that zsh does not work when
configuring gcc.
-
2003-10-17 Nathanael Nerode <neroden@gcc.gnu.org>
* config/ptx4.h: Switch to DWARF 2; update comments.
diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
index 39a8a2c..c79f1dd 100644
--- a/gcc/config/i386/i386.md
+++ b/gcc/config/i386/i386.md
@@ -1162,6 +1162,15 @@
(set_attr "mode" "SI")
(set_attr "length_immediate" "0")])
+(define_insn "*movsi_zero"
+ [(set (match_operand:SI 0 "register_operand" "=r")
+ (match_operand:SI 1 "const0_operand" "i"))
+ (clobber (reg:CC 17))]
+ "reload_completed && (TARGET_USE_MOV0 && !optimize_size)"
+ "mov{l}\t{%1, %0|%0, %1}"
+ [(set_attr "type" "imov")
+ (set_attr "mode" "SI")])
+
(define_insn "*movsi_or"
[(set (match_operand:SI 0 "register_operand" "=r")
(match_operand:SI 1 "immediate_operand" "i"))