aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1999-11-03 13:25:17 +0000
committerJeff Law <law@gcc.gnu.org>1999-11-03 06:25:17 -0700
commiteb5a48980d6537052f07b30d0ec80079fda8d35e (patch)
treeff4d3a78bb154643332114ef927465fe68e50639 /gcc
parent4aa95f0d43e1b7c0abadf40e533fe11e013e2025 (diff)
downloadgcc-eb5a48980d6537052f07b30d0ec80079fda8d35e.zip
gcc-eb5a48980d6537052f07b30d0ec80079fda8d35e.tar.gz
gcc-eb5a48980d6537052f07b30d0ec80079fda8d35e.tar.bz2
pa.c (ireg_operand): New function.
* pa.c (ireg_operand): New function. * pa.h (PREDICATE_CODES): Handle ireg_operand. * pa.md (parallel_addb, parallel_movb): Use ireg_operand. Fix out of date comment. From-SVN: r30375
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/pa/pa.c9
-rw-r--r--gcc/config/pa/pa.h1
-rw-r--r--gcc/config/pa/pa.md17
4 files changed, 21 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d3ff777..2cb9eb8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -4,6 +4,11 @@ Wed Nov 3 12:12:59 1999 Bernd Schmidt <bernds@cygnus.co.uk>
Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com)
+ * pa.c (ireg_operand): New function.
+ * pa.h (PREDICATE_CODES): Handle ireg_operand.
+ * pa.md (parallel_addb, parallel_movb): Use ireg_operand.
+ Fix out of date comment.
+
* pa.md (negdi2): Turn into expander + anonymous pattern.
* reload.c (find_reloads): Fix typos in recent change.
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 28fdf93..2145ef7 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -478,6 +478,15 @@ ireg_or_int5_operand (op, mode)
|| (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32));
}
+/* Return nonzero if OP is an integer register, else return zero. */
+int
+ireg_operand (op, mode)
+ rtx op;
+ enum machine_mode mode ATTRIBUTE_UNUSED;
+{
+ return (GET_CODE (op) == REG && REGNO (op) > 0 && REGNO (op) < 32);
+}
+
/* Return truth value of whether OP is a integer which fits the
range constraining immediate operands in three-address insns. */
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index 9a113d0..966e813 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -2307,4 +2307,5 @@ extern struct rtx_def *return_addr_rtx ();
{"shadd_operand", {CONST_INT}}, \
{"basereg_operand", {REG}}, \
{"div_operand", {REG, CONST_INT}}, \
+ {"ireg_operand", {REG}}, \
{"movb_comparison_operator", {EQ, NE, LT, GE}},
diff --git a/gcc/config/pa/pa.md b/gcc/config/pa/pa.md
index d753035..34e82e6 100644
--- a/gcc/config/pa/pa.md
+++ b/gcc/config/pa/pa.md
@@ -5389,15 +5389,10 @@
(const_int 8)
(const_int 12)))))])
-;; The next several patterns (parallel_addb, parallel_movb, fmpyadd and
-;; fmpysub aren't currently used by the FSF sources, but will be soon.
-;;
-;; They're in the FSF tree for documentation and to make Cygnus<->FSF
-;; merging easier.
(define_insn ""
[(set (pc) (label_ref (match_operand 3 "" "" )))
- (set (match_operand:SI 0 "register_operand" "=r")
- (plus:SI (match_operand:SI 1 "register_operand" "r")
+ (set (match_operand:SI 0 "ireg_operand" "=r")
+ (plus:SI (match_operand:SI 1 "ireg_operand" "r")
(match_operand:SI 2 "ireg_or_int5_operand" "rL")))]
"(reload_completed && operands[0] == operands[1]) || operands[0] == operands[2]"
"*
@@ -5413,7 +5408,7 @@
(define_insn ""
[(set (pc) (label_ref (match_operand 2 "" "" )))
- (set (match_operand:SF 0 "register_operand" "=r")
+ (set (match_operand:SF 0 "ireg_operand" "=r")
(match_operand:SF 1 "ireg_or_int5_operand" "rL"))]
"reload_completed"
"*
@@ -5429,7 +5424,7 @@
(define_insn ""
[(set (pc) (label_ref (match_operand 2 "" "" )))
- (set (match_operand:SI 0 "register_operand" "=r")
+ (set (match_operand:SI 0 "ireg_operand" "=r")
(match_operand:SI 1 "ireg_or_int5_operand" "rL"))]
"reload_completed"
"*
@@ -5445,7 +5440,7 @@
(define_insn ""
[(set (pc) (label_ref (match_operand 2 "" "" )))
- (set (match_operand:HI 0 "register_operand" "=r")
+ (set (match_operand:HI 0 "ireg_operand" "=r")
(match_operand:HI 1 "ireg_or_int5_operand" "rL"))]
"reload_completed"
"*
@@ -5461,7 +5456,7 @@
(define_insn ""
[(set (pc) (label_ref (match_operand 2 "" "" )))
- (set (match_operand:QI 0 "register_operand" "=r")
+ (set (match_operand:QI 0 "ireg_operand" "=r")
(match_operand:QI 1 "ireg_or_int5_operand" "rL"))]
"reload_completed"
"*