From 4ba687c8587c546282a45d669dcb30653be79b25 Mon Sep 17 00:00:00 2001 From: "David S. Miller" Date: Thu, 5 Nov 1998 02:38:58 +0000 Subject: [PATCH] * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. From-SVN: r23535 --- gcc/ChangeLog | 4 ++++ gcc/config/sparc/sparc.md | 13 +++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5569de3bb40..29399945fb2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Thu Nov 5 03:42:54 1998 David S. Miller + + * config/sparc/sparc.md (movdf_const_intreg_sp64): Enable again. + Thu Nov 5 10:53:01 1998 Andreas Schwab * configure.in: Bring over gcc2 change of Nov 19 1997. diff --git a/gcc/config/sparc/sparc.md b/gcc/config/sparc/sparc.md index e7538a1ae65..69b68fdf86c 100644 --- a/gcc/config/sparc/sparc.md +++ b/gcc/config/sparc/sparc.md @@ -2949,15 +2949,13 @@ [(set_attr "type" "move") (set_attr "length" "1,2,2")]) -;; ?? This and split disabled on sparc64... When I change the destination -;; ?? reg to be DImode to emit the constant formation code, the instruction -;; ?? scheduler does not want to believe that it is the same as the DFmode -;; ?? subreg we started with... See the SFmode version of this above to -;; ?? see how it can be handled. +;; Now that we redo life analysis with a clean slate after +;; instruction splitting for sched2 this can work. (define_insn "*movdf_const_intreg_sp64" [(set (match_operand:DF 0 "general_operand" "=e,e,r") (match_operand:DF 1 "" "m,o,F"))] - "0 && TARGET_FPU && TARGET_ARCH64 + "TARGET_FPU + && TARGET_ARCH64 && GET_CODE (operands[1]) == CONST_DOUBLE && GET_CODE (operands[0]) == REG" "* @@ -2973,8 +2971,7 @@ (define_split [(set (match_operand:DF 0 "register_operand" "") (match_operand:DF 1 "const_double_operand" ""))] - "! TARGET_ARCH64 - && TARGET_FPU + "TARGET_FPU && GET_CODE (operands[1]) == CONST_DOUBLE && (GET_CODE (operands[0]) == REG && REGNO (operands[0]) < 32) -- 2.30.2