diff options
author | Jim Wilson <wilson@gcc.gnu.org> | 1992-09-28 14:16:10 -0700 |
---|---|---|
committer | Jim Wilson <wilson@gcc.gnu.org> | 1992-09-28 14:16:10 -0700 |
commit | 72f4648ec51398d2985f5b30922df02d8f8ade69 (patch) | |
tree | feffa4441d9cdcf3fd96eb8af9eda2555d2dee21 /gcc | |
parent | 339ae22de6e41bf83da880de0d1c5890d70aa3cb (diff) | |
download | gcc-72f4648ec51398d2985f5b30922df02d8f8ade69.zip gcc-72f4648ec51398d2985f5b30922df02d8f8ade69.tar.gz gcc-72f4648ec51398d2985f5b30922df02d8f8ade69.tar.bz2 |
(orcc peephole): Don't allow FP regs to match pattern.
From-SVN: r2274
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/sparc/sparc.md | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index 034d6ea..e516fd6 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -2945,7 +2945,8 @@ "std %3,%2") ;; Optimize the case of following a reg-reg move with a test -;; of reg just moved. +;; of reg just moved. Don't allow floating point regs for operand 1. +;; This can result from a float to fix conversion. (define_peephole [(set (match_operand:SI 0 "register_operand" "=r") @@ -2953,8 +2954,9 @@ (set (reg:CC 0) (compare:CC (match_operand:SI 2 "register_operand" "r") (const_int 0)))] - "rtx_equal_p (operands[2], operands[0]) - || rtx_equal_p (operands[2], operands[1])" + "(rtx_equal_p (operands[2], operands[0]) + || rtx_equal_p (operands[2], operands[1])) + && ! FP_REG_P (operands[1])" "orcc %1,%%g0,%0") ;; Do {sign,zero}-extended compares somewhat more efficiently. |