diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-17 18:03:02 -0400 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1994-08-17 18:03:02 -0400 |
commit | 9fb8a9748b5081d5943483160030931394e5ef54 (patch) | |
tree | 53ea78e97b3449d0150f7ed360ed53a29ea86928 /gcc | |
parent | f79367423e4327f7a2cfe49817be48453dc56565 (diff) | |
download | gcc-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.md | 6 |
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 "" "")))] "" "* |