diff options
author | Alan Modra <amodra@bigpond.net.au> | 2005-01-12 12:22:25 +0000 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2005-01-12 22:52:25 +1030 |
commit | 409f61cd325af79b30cf0d9862643cb265c961f1 (patch) | |
tree | 032f5514f2f5d60e652a2aa87637e15e609a2646 /gcc | |
parent | 1237487644a2e164aee455f99a6925279ecb992e (diff) | |
download | gcc-409f61cd325af79b30cf0d9862643cb265c961f1.zip gcc-409f61cd325af79b30cf0d9862643cb265c961f1.tar.gz gcc-409f61cd325af79b30cf0d9862643cb265c961f1.tar.bz2 |
re PR target/19389 (Odd gpr mem load unrecognizable insn)
PR target/19389
* config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
with r->Y and Y->r.
From-SVN: r93224
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 8 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d308993..d666e25 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-01-12 Alan Modra <amodra@bigpond.net.au> + + PR target/19389 + * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r + with r->Y and Y->r. + 2005-01-12 Nick Clifton <nickc@redhat.com> * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c5b1dcd..e3ba021 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -1,6 +1,6 @@ ;; Machine description for IBM RISC System 6000 (POWER) for GNU C compiler ;; Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, -;; 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +;; 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. ;; Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu) ;; This file is part of GCC. @@ -8234,10 +8234,10 @@ ; It's important to list the o->f and f->o moves before f->f because ; otherwise reload, given m->f, will try to pick f->f and reload it, -; which doesn't make progress. Likewise r->o<> must be before r->r. +; which doesn't make progress. Likewise r->Y must be before r->r. (define_insn_and_split "*movtf_internal" - [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,f,r,o<>,r") - (match_operand:TF 1 "input_operand" "f,o,f,mGHF,r,r"))] + [(set (match_operand:TF 0 "nonimmediate_operand" "=o,f,f,r,Y,r") + (match_operand:TF 1 "input_operand" "f,o,f,YGHF,r,r"))] "(DEFAULT_ABI == ABI_AIX || DEFAULT_ABI == ABI_DARWIN) && TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_LONG_DOUBLE_128 && (gpc_reg_operand (operands[0], TFmode) |