diff options
author | Jeffrey A Law <law@cygnus.com> | 1999-11-28 20:24:48 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1999-11-28 13:24:48 -0700 |
commit | 8b4b9b7ad3d1bbc16516a5a73a6ba3c3c21d1822 (patch) | |
tree | 52b7fb8406c23eb66376c44906b44098482d0c7e /gcc | |
parent | 2e02044af4bc83dd1bfcaf0c8f881eb6d9f73ded (diff) | |
download | gcc-8b4b9b7ad3d1bbc16516a5a73a6ba3c3c21d1822.zip gcc-8b4b9b7ad3d1bbc16516a5a73a6ba3c3c21d1822.tar.gz gcc-8b4b9b7ad3d1bbc16516a5a73a6ba3c3c21d1822.tar.bz2 |
* pa.md (reload shift-add patterns): Remove.
From-SVN: r30688
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/pa/pa.md | 41 |
2 files changed, 4 insertions, 41 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4428e5d..f4f058e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload shift-add patterns): Remove. + 1999-11-28 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl> * reorg.c (dbr_schedule) Print more statistics. Corrected diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md index a837a71..d342764 100644 --- a/gcc/config/pa/pa.md +++ b/gcc/config/pa/pa.md @@ -3118,25 +3118,6 @@ (set_attr "pa_combine_type" "addmove") (set_attr "length" "4,4")]) -;; Disgusting kludge to work around reload bugs with frame pointer -;; elimination. Similar to other magic reload patterns in the -;; indexed memory operations. -(define_insn "" - [(set (match_operand:SI 0 "register_operand" "=&r") - (plus:SI (plus:SI (match_operand:SI 1 "register_operand" "%r") - (match_operand:SI 2 "register_operand" "r")) - (match_operand:SI 3 "const_int_operand" "rL")))] - "reload_in_progress" - "* -{ - if (GET_CODE (operands[3]) == CONST_INT) - return \"ldo %3(%2),%0\;{addl|add,l} %1,%0,%0\"; - else - return \"{addl|add,l} %3,%2,%0\;{addl|add,l} %1,%0,%0\"; -}" - [(set_attr "type" "binary") - (set_attr "length" "8")]) - (define_expand "subdi3" [(set (match_operand:DI 0 "register_operand" "") (minus:DI (match_operand:DI 1 "register_operand" "") @@ -4223,28 +4204,6 @@ [(set_attr "type" "binary") (set_attr "length" "4")]) -;; This variant of the above insn can occur if the first operand -;; is the frame pointer. This is a kludge, but there doesn't -;; seem to be a way around it. Only recognize it while reloading. -;; Note how operand 3 uses a predicate of "const_int_operand", but -;; has constraints allowing a register. I don't know how this works, -;; but it somehow makes sure that out-of-range constants are placed -;; in a register which somehow magically is a "const_int_operand". -;; (this was stolen from alpha.md, I'm not going to try and change it. - -(define_insn "" - [(set (match_operand:SI 0 "register_operand" "=&r,r") - (plus:SI (plus:SI (mult:SI (match_operand:SI 2 "register_operand" "r,r") - (match_operand:SI 4 "shadd_operand" "")) - (match_operand:SI 1 "register_operand" "r,r")) - (match_operand:SI 3 "const_int_operand" "r,J")))] - "reload_in_progress" - "@ - {sh%O4addl %2,%1,%0|shladd,l %2,%O4,%1,%0}\;{addl|add,l} %3,%0,%0 - {sh%O4addl %2,%1,%0|shladd,l %2,%O4,%1,%0}\;ldo %3(%0),%0" - [(set_attr "type" "multi") - (set_attr "length" "8")]) - ;; This anonymous pattern and splitter wins because it reduces the latency ;; of the shadd sequence without increasing the latency of the shift. ;; |