aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-08-17 18:03:02 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1994-08-17 18:03:02 -0400
commit9fb8a9748b5081d5943483160030931394e5ef54 (patch)
tree53ea78e97b3449d0150f7ed360ed53a29ea86928 /gcc
parentf79367423e4327f7a2cfe49817be48453dc56565 (diff)
downloadgcc-9fb8a9748b5081d5943483160030931394e5ef54.zip
gcc-9fb8a9748b5081d5943483160030931394e5ef54.tar.gz
gcc-9fb8a9748b5081d5943483160030931394e5ef54.tar.bz2
(tablejump): Add SIGN_EXTEND to HImode offset so can add to SImode PC.
Likewise for matching pattern. From-SVN: r7938
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/m68k/m68k.md6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/config/m68k/m68k.md b/gcc/config/m68k/m68k.md
index 04f1d70..6815a06 100644
--- a/gcc/config/m68k/m68k.md
+++ b/gcc/config/m68k/m68k.md
@@ -4492,7 +4492,8 @@
"
{
#ifdef CASE_VECTOR_PC_RELATIVE
- operands[0] = gen_rtx (PLUS, SImode, pc_rtx, operands[0]);
+ operands[0] = gen_rtx (PLUS, SImode, pc_rtx,
+ gen_rtx (SIGN_EXTEND, SImode, operands[0]));
#endif
}")
@@ -4512,7 +4513,8 @@
;; Jump to variable address from dispatch table of relative addresses.
(define_insn ""
[(set (pc)
- (plus:SI (pc) (match_operand:HI 0 "register_operand" "r")))
+ (plus:SI (pc)
+ (sign_extend:SI (match_operand:HI 0 "register_operand" "r"))))
(use (label_ref (match_operand 1 "" "")))]
""
"*