diff options
Diffstat (limited to 'gcc/config/m68k/linux.h')
-rw-r--r-- | gcc/config/m68k/linux.h | 17 |
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 |