OSDN Git Service

Fix m68k-elf coldfire run-time address error for tablejumps.
authorwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Feb 1999 16:00:12 +0000 (16:00 +0000)
committerwilson <wilson@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 18 Feb 1999 16:00:12 +0000 (16:00 +0000)
* m68kelf.h (ASM_RETURN_CASE_JUMP): Add 5200 support.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@25288 138bc75d-0d04-0410-961f-82ee72b054a4

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

index d8a8c01..d4e3b4f 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 fad325b..476692d 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.