aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-08-17 18:01:17 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-08-17 18:01:17 -0400
commitf79367423e4327f7a2cfe49817be48453dc56565 (patch)
tree02d65470ceee009f4039199d1dfe653dbe43c585
parent40ef0937543cae4a9016224d5315b72626c58d13 (diff)
downloadgcc-f79367423e4327f7a2cfe49817be48453dc56565.zip
gcc-f79367423e4327f7a2cfe49817be48453dc56565.tar.gz
gcc-f79367423e4327f7a2cfe49817be48453dc56565.tar.bz2
(casesi_2): Operand 0 is HImode; add SIGN_EXTEND when adding to pc.
(casesi): Operand 0 is HImode. (unnamed PC addition pattern): Add SIGN_EXTEND to add HImode offset to SImode PC. From-SVN: r7937
-rw-r--r--gcc/config/fx80/fx80.md9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/fx80/fx80.md b/gcc/config/fx80/fx80.md
index b0c6bec..5ca6dab 100644
--- a/gcc/config/fx80/fx80.md
+++ b/gcc/config/fx80/fx80.md
@@ -2238,11 +2238,11 @@
"")
(define_expand "casesi_2"
- [(set (match_operand:SI 0 "" "") (mem:HI (match_operand:SI 1 "" "")))
+ [(set (match_operand:HI 0 "" "") (mem:HI (match_operand:SI 1 "" "")))
;; The USE here is so that at least one jump-insn will refer to the label,
;; to keep it alive in jump_optimize.
(parallel [(set (pc)
- (plus:SI (pc) (match_dup 0)))
+ (plus:SI (pc) (sign_extend:SI (match_dup 0))))
(use (label_ref (match_operand 2 "" "")))])]
""
"")
@@ -2253,7 +2253,7 @@
(define_expand "casesi"
;; We don't use these for generating the RTL, but we must describe
;; the operands here.
- [(match_operand:SI 0 "general_operand" "")
+ [(match_operand:HI 0 "general_operand" "")
(match_operand:SI 1 "immediate_operand" "")
(match_operand:SI 2 "general_operand" "")
(match_operand 3 "" "")
@@ -2285,7 +2285,8 @@
;; Recognize one of the insns resulting from casesi_2.
(define_insn ""
[(set (pc)
- (plus:SI (pc) (match_operand:HI 0 "general_operand" "r")))
+ (plus:SI (pc)
+ (sign_extend:SI (match_operand:HI 0 "general_operand" "r"))))
(use (label_ref (match_operand 1 "" "")))]
""
"*