diff options
Diffstat (limited to 'gcc/config/m68k/mot3300.h')
-rw-r--r-- | gcc/config/m68k/mot3300.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/config/m68k/mot3300.h b/gcc/config/m68k/mot3300.h index fb7dffa8fc7..e035148ebdc 100644 --- a/gcc/config/m68k/mot3300.h +++ b/gcc/config/m68k/mot3300.h @@ -1,6 +1,6 @@ /* Definitions of target machine for GNU compiler, SysV68 Motorola 3300 Delta Series. - Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000 + Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2002 Free Software Foundation, Inc. Contributed by Abramo and Roberto Bagnara (bagnara@dipisa.di.unipi.it) based on Alex Crain's 3B1 definitions. @@ -437,12 +437,17 @@ Boston, MA 02111-1307, USA. */ #define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\ asm_fprintf (file, "12(%Rpc,%s.", regname) -#define ASM_RETURN_CASE_JUMP \ - do { \ - if (TARGET_5200) \ - return "ext%.l %0\n\tjmp 8(%%pc,%0.l)"; \ - else \ - return "jmp 8(%%pc,%0.w)"; \ +#define ASM_RETURN_CASE_JUMP \ + do { \ + if (TARGET_5200) \ + { \ + if (ADDRESS_REG_P (operands[0])) \ + return "jmp 8(%%pc,%0.l)"; \ + else \ + return "ext%.l %0\n\tjmp 8(%%pc,%0.l)"; \ + } \ + else \ + return "jmp 8(%%pc,%0.w)"; \ } while (0) #else /* USE_GAS */ |