Fix m68k-elf coldfire run-time address error for tablejumps.
authorJim Wilson <wilson@cygnus.com>
Thu, 18 Feb 1999 16:00:12 +0000 (16:00 +0000)
committerJim Wilson <wilson@gcc.gnu.org>
Thu, 18 Feb 1999 16:00:12 +0000 (08:00 -0800)
* m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.

From-SVN: r25288

gcc/ChangeLog
gcc/config/m68k/m68kelf.h

index d8a8c016751015d068c35e291541b5ada3ddd133..d4e3b4f8af368072648175cf7ad35c83dd87fed8 100644 (file)
@@ -1,3 +1,7 @@
+Thu Feb 18 15:52:49 1999  Jim Wilson  <wilson@cygnus.com>
+
+       * m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.
+
 1999-02-18 18:32 -0500  Zack Weinberg  <zack@rabi.columbia.edu>
 
        * cpplib.c: Kill define of STDC_VALUE.  Don't include output.h
index fad325b399e6d573a468217be646ce0325cfbf30..476692db31dde1c927408a57152f0e16ce8e928a 100644 (file)
@@ -73,7 +73,13 @@ Boston, MA 02111-1307, USA.  */
 /* config/m68k.md has an explicit reference to the program counter,
    prefix this by the register prefix.  */
 
-#define ASM_RETURN_CASE_JUMP    return "jmp %%pc@(2,%0:w)"
+#define ASM_RETURN_CASE_JUMP                   \
+  do {                                         \
+    if (TARGET_5200)                           \
+      return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+    else                                       \
+      return "jmp %%pc@(2,%0:w)";              \
+  } while (0)
 
 /* How to refer to registers in assembler output.
    This sequence is indexed by compiler's hard-register-number.