diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-28 22:17:21 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-01-28 22:17:21 +0000 |
commit | 251538cedba8a9200716284faae81608779f5b3d (patch) | |
tree | a87256b3d8466749e82908bcca67d8f54182767d /gcc/config/m68k/m68kelf.h | |
parent | a455589cd089b44cb788a1d9369cee33bf22f264 (diff) | |
download | gcc-251538cedba8a9200716284faae81608779f5b3d.tar.gz |
* config/m68k/m68k.md (tablejump+2): Don't sign extend an address
register.
* config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
* config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@62030 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/m68k/m68kelf.h')
-rw-r--r-- | gcc/config/m68k/m68kelf.h | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gcc/config/m68k/m68kelf.h b/gcc/config/m68k/m68kelf.h index 7866a239209..e5145c9d70c 100644 --- a/gcc/config/m68k/m68kelf.h +++ b/gcc/config/m68k/m68kelf.h @@ -1,7 +1,7 @@ /* m68kelf support, derived from m68kv4.h */ /* Target definitions for GNU compiler for mc680x0 running System V.4 - Copyright (C) 1991, 1993, 2000 Free Software Foundation, Inc. + Copyright (C) 1991, 1993, 2000, 2002 Free Software Foundation, Inc. Written by Ron Guilmette (rfg@netcom.com) and Fred Fish (fnf@cygnus.com). @@ -73,12 +73,17 @@ 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 \ - 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) /* How to refer to registers in assembler output. |