aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Smith <cks@gnu.org>1992-11-03 16:24:25 +0000
committerChris Smith <cks@gnu.org>1992-11-03 16:24:25 +0000
commitb76e0b7680d1e2a13af717e52475e5114208c33e (patch)
treeefb6ba3421807fea85cea41e2a9d94279ee3e18d
parent151584408409a1a05cf1aaddcb073ef1687d2984 (diff)
downloadgcc-b76e0b7680d1e2a13af717e52475e5114208c33e.zip
gcc-b76e0b7680d1e2a13af717e52475e5114208c33e.tar.gz
gcc-b76e0b7680d1e2a13af717e52475e5114208c33e.tar.bz2
don't use psh.w sp
From-SVN: r2683
-rw-r--r--gcc/config/convex/convex.h5
-rw-r--r--gcc/config/convex/convex.md8
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h
index ba4bb55..2754fd1 100644
--- a/gcc/config/convex/convex.h
+++ b/gcc/config/convex/convex.h
@@ -315,7 +315,10 @@ enum reg_class {
/* S regs use the letter 'd' because 's' is taken. */
#define REG_CLASS_FROM_LETTER(C) \
- ((C) == 'a' ? A_REGS : (C) == 'd' ? S_REGS : NO_REGS)
+ ((C) == 'a' ? A_REGS : \
+ (C) == 'd' ? S_REGS : \
+ (C) == 'A' ? INDEX_REGS : \
+ NO_REGS)
/* The letters I, J, K, L and M in a register constraint string
can be used to stand for particular ranges of immediate operands.
diff --git a/gcc/config/convex/convex.md b/gcc/config/convex/convex.md
index 8f35309..7398e1b 100644
--- a/gcc/config/convex/convex.md
+++ b/gcc/config/convex/convex.md
@@ -250,6 +250,14 @@
"")
(define_insn ""
+ [(set (match_operand:SI 0 "push_operand" "=<,<")
+ (match_operand:SI 1 "general_operand" "Ad,io"))]
+ ""
+ "@
+ psh.w %1
+ pshea %a1")
+
+(define_insn ""
[(set (match_operand:SI 0 "general_operand" "=g,r,<")
(match_operand:SI 1 "general_operand" "r,g,io"))]
"TARGET_INDIRECTS"