aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/m68k/linux.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/m68k/linux.h')
-rw-r--r--gcc/config/m68k/linux.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/gcc/config/m68k/linux.h b/gcc/config/m68k/linux.h
index bf80cea9f9c..7693af1815a 100644
--- a/gcc/config/m68k/linux.h
+++ b/gcc/config/m68k/linux.h
@@ -194,12 +194,17 @@ Boston, MA 02111-1307, USA. */
/* Use the default action for outputting the case label. */
#undef ASM_OUTPUT_CASE_LABEL
-#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)"; \
+#define ASM_RETURN_CASE_JUMP \
+ do { \
+ if (TARGET_5200) \
+ { \
+ if (ADDRESS_REG_P (operands[0])) \
+ return "jmp %%pc@(2,%0:l)"; \
+ else \
+ return "ext%.l %0\n\tjmp %%pc@(2,%0:l)"; \
+ } \
+ else \
+ return "jmp %%pc@(2,%0:w)"; \
} while (0)
/* This is how to output an assembler line that says to advance the