Commit 9fb9ea4a by Richard Kenner

(ASM_RETURN_CASE_JUMP): Use extl to explicitly sign extend index

register on TARGET_5200.

From-SVN: r13800
parent 641241db
/* Definitions of target machine for GNU compiler. Apollo 680X0 version.
Copyright (C) 1989,1992, 1996 Free Software Foundation, Inc.
Copyright (C) 1989, 1992, 1996, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
......@@ -180,8 +180,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)
/* Here are the new register names. */
......
/* Definitions of target machine for GNU compiler.
m68k series COFF object files and debugging, version.
Copyright (C) 1994, 1996 Free Software Foundation, Inc.
Copyright (C) 1994, 1996, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
......@@ -55,7 +55,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)
/* Here are the new register names. */
......
......@@ -156,9 +156,13 @@ Boston, MA 02111-1307, USA. */
/* Use the default action for outputting the case label. */
#undef ASM_OUTPUT_CASE_LABEL
#define ASM_RETURN_CASE_JUMP \
return "jmp (2,%%pc,%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)
/* This is how to output an assembler line that says to advance the
location counter to a multiple of 2**LOG bytes. */
......
/* Definitions of target machine for GNU compiler,
SysV68 Motorola 3300 Delta Series.
Copyright (C) 1987, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
Copyright (C) 1987, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
Contributed by Abramo and Roberto Bagnara (bagnara@dipisa.di.unipi.it)
based on Alex Crain's 3B1 definitions.
Maintained by Philippe De Muyter (phdm@info.ucl.ac.be).
......@@ -566,7 +566,13 @@ do { long l; \
#define ASM_OUTPUT_CASE_FETCH(file, labelno, regname)\
asm_fprintf (file, "12(%Rpc,%s.", regname)
#define ASM_RETURN_CASE_JUMP return "jmp 8(%%pc,%0.w)"
#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)"; \
} while (0)
#else /* USE_GAS */
......
/* Definitions of target machine for GNU compiler.
Citicorp/TTI Unicom PBB version (using GAS with a %-register prefix)
Copyright (C) 1987, 1988, 1990, 1996 Free Software Foundation, Inc.
Copyright (C) 1987, 1988, 1990, 1996, 1997 Free Software Foundation, Inc.
This file is part of GNU CC.
......@@ -114,7 +114,13 @@ Boston, MA 02111-1307, USA. */
! find_equiv_reg (0, get_last_insn (), 0, 0, 0, 8, Pmode)) \
asm_fprintf (FILE, "\tmovl %Rd0,%Ra0\n"); }
#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)
/* Although the gas we use can create .ctor and .dtor sections from N_SETT
stabs, it does not support section directives, so we need to have the loader
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment