From b76e0b7680d1e2a13af717e52475e5114208c33e Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Tue, 3 Nov 1992 16:24:25 +0000 Subject: [PATCH] don't use psh.w sp From-SVN: r2683 --- gcc/config/convex/convex.h | 5 ++++- gcc/config/convex/convex.md | 8 ++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gcc/config/convex/convex.h b/gcc/config/convex/convex.h index ba4bb55b421..2754fd11137 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 8f35309e4ea..7398e1be1a0 100644 --- a/gcc/config/convex/convex.md +++ b/gcc/config/convex/convex.md @@ -249,6 +249,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"))]