in comments, remove some target-independent comments about target
macros, and/or add minimal function comments for target hook
implementations.
* config/avr/avr.c: Likewise.
* config/ia64/ia64.h: Likewise.
* config/ip2k/ip2k.c: Likewise.
* config/iq2000/iq2000.c: Likewise.
* config/m32r/m32r.h: Likewise.
* config/m68hc11/m68hc11.c: Likewise.
* config/mcore/mcore.c: Likewise.
* config/mmix/mmix.c: Likewise.
* config/mn10300/mn10300.c: Likewise.
* config/pa/pa.c: Likewise.
* config/pdp11/pdp11.c: Likewise.
* config/rs6000/rs6000.h: Likewise.
* config/sh/sh.c: Likewise.
* config/sh/sh.h: Likewise.
* config/sparc/sparc.c: Likewise.
* config/sparc/sparc.h: Likewise.
* config/stormy16/stormy16.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@77005
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-01-30 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/alpha/alpha.c: Remove mentions of deprecates macros
+ in comments, remove some target-independent comments about target
+ macros, and/or add minimal function comments for target hook
+ implementations.
+ * config/avr/avr.c: Likewise.
+ * config/ia64/ia64.h: Likewise.
+ * config/ip2k/ip2k.c: Likewise.
+ * config/iq2000/iq2000.c: Likewise.
+ * config/m32r/m32r.h: Likewise.
+ * config/m68hc11/m68hc11.c: Likewise.
+ * config/mcore/mcore.c: Likewise.
+ * config/mmix/mmix.c: Likewise.
+ * config/mn10300/mn10300.c: Likewise.
+ * config/pa/pa.c: Likewise.
+ * config/pdp11/pdp11.c: Likewise.
+ * config/rs6000/rs6000.h: Likewise.
+ * config/sh/sh.c: Likewise.
+ * config/sh/sh.h: Likewise.
+ * config/sparc/sparc.c: Likewise.
+ * config/sparc/sparc.h: Likewise.
+ * config/stormy16/stormy16.c: Likewise.
+ * config/xtensa/xtensa.c: Likewise.
+
2004-01-30 Ulrich Weigand <uweigand@de.ibm.com>
PR optimization/12147
2004-01-30 Jan Hubicka <jh@suse.cz>
- * reload.c (get_secondary_mem): Fix updating of
+ * reload.c (get_secondary_mem): Fix updating of
secondary_memlocs_elim_used.
2004-01-30 Richard Henderson <rth@redhat.com>
if (TARGET_ABI_UNICOSMK)
std_expand_builtin_va_start (valist, nextarg);
- /* For Unix, SETUP_INCOMING_VARARGS moves the starting address base
+ /* For Unix, TARGET_SETUP_INCOMING_VARARGS moves the starting address base
up by 48, storing fp arg registers in the first 48 bytes, and the
integer arg registers in the next 48 bytes. This is only done,
however, if any integer registers need to be stored.
return "";
}
+/* Worker function for TARGET_ASM_CONSTRUCTOR. */
+
static void
avr_asm_out_ctor (rtx symbol, int priority)
{
default_ctor_section_asm_out_constructor (symbol, priority);
}
+/* Worker function for TARGET_ASM_DESTRUCTOR. */
+
static void
avr_asm_out_dtor (rtx symbol, int priority)
{
default_dtor_section_asm_out_destructor (symbol, priority);
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
avr_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
\f
/* How Large Values are Returned */
-/* If you define this macro to be 0, then the conventions used for structure
- and union return values are decided by the `RETURN_IN_MEMORY' macro. */
-
#define DEFAULT_PCC_STRUCT_RETURN 0
\f
&& unsigned_condition (GET_CODE (op)) == GET_CODE (op));
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
ip2k_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
return (TYPE_MODE (type) == BLKmode) ? int_size_in_bytes (type) > 8 : 0;
}
+/* Worker function for TARGET_SETUP_INCOMING_VARARGS. */
+
static void
ip2k_setup_incoming_varargs (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED,
enum machine_mode mode ATTRIBUTE_UNUSED,
return NULL_RTX;
}
\f
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
iq2000_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
|| (int_size_in_bytes (type) == -1));
}
+/* Worker function for TARGET_SETUP_INCOMING_VARARGS. */
+
static void
iq2000_setup_incoming_varargs (CUMULATIVE_ARGS *cum,
enum machine_mode mode ATTRIBUTE_UNUSED,
/* ??? What about r1 in DI/DF values. */
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 0)
-/* Tell GCC to use RETURN_IN_MEMORY. */
+/* Tell GCC to use TARGET_RETURN_IN_MEMORY. */
#define DEFAULT_PCC_STRUCT_RETURN 0
\f
/* Function entry and exit. */
}
\f
+/* Worker function for TARGET_ASM_FILE_START. */
+
static void
m68hc11_file_start (void)
{
}
+/* Worker function for TARGET_ASM_CONSTRUCTOR. */
+
static void
m68hc11_asm_out_constructor (rtx symbol, int priority)
{
fprintf (asm_out_file, "\t.globl\t__do_global_ctors\n");
}
+/* Worker function for TARGET_ASM_DESTRUCTOR. */
+
static void
m68hc11_asm_out_destructor (rtx symbol, int priority)
{
fprintf (asm_out_file, "\t.globl\t__do_global_dtors\n");
}
+/* Worker function for TARGET_STRUCT_VALUE_RTX. */
+
static rtx
m68hc11_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED,
int incoming ATTRIBUTE_UNUSED)
/* Code to generate prologue and epilogue sequences. */
static int number_of_regs_before_varargs;
-/* Set by SETUP_INCOMING_VARARGS to indicate to prolog that this is
+/* Set by TARGET_SETUP_INCOMING_VARARGS to indicate to prolog that this is
for a varargs function. */
static int current_function_anonymous_args;
HOST_WIDE_INT vcall_offset ATTRIBUTE_UNUSED,
tree func)
{
- /* If you define STRUCT_VALUE to 0, rather than use STRUCT_VALUE_REGNUM,
- (i.e. pass location of structure to return as invisible first
- argument) you need to tweak this code too. */
+ /* If you define TARGET_STRUCT_VALUE_RTX that returns 0 (i.e. pass
+ location of structure to return as invisible first argument), you
+ need to tweak this code too. */
const char *regname = reg_names[MMIX_FIRST_INCOMING_ARG_REGNUM];
if (delta >= 0 && delta < 65536)
abort ();
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
mn10300_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
}
}
+/* Worker function for TARGET_STRUCT_VALUE_RTX. */
+
static rtx
pa_struct_value_rtx (tree fntype ATTRIBUTE_UNUSED,
int incoming ATTRIBUTE_UNUSED)
return gen_rtx_REG (Pmode, PA_STRUCT_VALUE_REGNUM);
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
bool
pa_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
}
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
pdp11_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{
/* DRAFT_V4_STRUCT_RET defaults off. */
#define DRAFT_V4_STRUCT_RET 0
-/* Let RETURN_IN_MEMORY control what happens. */
+/* Let TARGET_RETURN_IN_MEMORY control what happens. */
#define DEFAULT_PCC_STRUCT_RETURN 0
/* Mode of stack savearea.
interrupted. */
int pragma_nosave_low_regs;
-/* This is used for communication between SETUP_INCOMING_VARARGS and
+/* This is used for communication between TARGET_SETUP_INCOMING_VARARGS and
sh_expand_prologue. */
int current_function_anonymous_args;
: ROUND_ADVANCE (GET_MODE_SIZE (mode)))));
}
-/* If the structure value address is not passed in a register, define
- `STRUCT_VALUE' as an expression returning an RTX for the place
- where the address is passed. If it returns 0, the address is
- passed as an "invisible" first argument. */
/* The Renesas calling convention doesn't quite fit into this scheme since
the address is passed like an invisible argument, but one that is always
passed in memory. */
return gen_rtx_REG (Pmode, 2);
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
sh_return_in_memory (tree type, tree fndecl)
{
#define STATIC_CHAIN_REGNUM (TARGET_SH5 ? 1 : 3)
/* Don't default to pcc-struct-return, because we have already specified
- exactly how to return structures in the RETURN_IN_MEMORY macro. */
+ exactly how to return structures in the TARGET_RETURN_IN_MEMORY
+ target hook. */
#define DEFAULT_PCC_STRUCT_RETURN 0
cum->libcall_p = fntype == 0;
}
-/* Handle the PROMOTE_PROTOTYPES macro.
+/* Handle the TARGET_PROMOTE_PROTOTYPES target hook.
When a prototype says `char' or `short', really pass an `int'. */
static bool
return TARGET_ARCH32 ? true : false;
}
-/* Handle the STRICT_ARGUMENT_NAMING macro. */
+/* Handle the TARGET_STRICT_ARGUMENT_NAMING target hook. */
static bool
sparc_strict_argument_naming (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED)
return TARGET_V9 ? true : false;
}
-/* Handle the RETURN_IN_MEMORY macro.
+/* Handle the TARGET_RETURN_IN_MEMORY target hook.
Specify whether to return the return value in memory. */
static bool
&& (unsigned HOST_WIDE_INT) int_size_in_bytes (type) > 32));
}
-/* Handle the STRUCT_VALUE macro.
+/* Handle the TARGET_STRUCT_VALUE target hook.
Return where to find the structure return value address. */
static rtx
&& GET_MODE_SIZE (MODE) < UNITS_PER_WORD) \
(MODE) = word_mode;
-/* Define this macro if the promotion described by PROMOTE_MODE
- should _only_ be performed for outgoing function arguments or
- function return values, as specified by PROMOTE_FUNCTION_ARGS
- and PROMOTE_FUNCTION_RETURN, respectively. */
/* This is only needed for TARGET_ARCH64, but since PROMOTE_MODE is a no-op
for TARGET_ARCH32 this is ok. Otherwise we'd need to add a runtime test
for this value. For TARGET_ARCH64 we need it, as we don't have instructions
emit_move_insn (reg_addr_mem, reg_fnaddr);
}
-/* Create an RTX representing the place where a function returns a
- value of data type VALTYPE. VALTYPE is a tree node representing a
- data type. Write `TYPE_MODE (VALTYPE)' to get the machine mode
- used to represent that type. On many machines, only the mode is
- relevant. (Actually, on most machines, scalar values are returned
- in the same place regardless of mode).
-
- If `TARGET_PROMOTE_FUNCTION_RETURN' is defined to return true, you
- must apply the same promotion rules specified in `PROMOTE_MODE' if
- VALTYPE is a scalar type.
-
- If the precise function being called is known, FUNC is a tree node
- (`FUNCTION_DECL') for it; otherwise, FUNC is a null pointer. This makes it
- possible to use a different value-returning convention for specific
- functions when all their calls are known.
-
- `FUNCTION_VALUE' is not used for return vales with aggregate data types,
- because these are returned in another way. See `STRUCT_VALUE_REGNUM' and
- related macros. */
+/* Worker function for FUNCTION_VALUE. */
+
rtx
xstormy16_function_value (tree valtype, tree func ATTRIBUTE_UNUSED)
{
}
}
+/* Worker function for TARGET_RETURN_IN_MEMORY. */
+
static bool
xtensa_return_in_memory (tree type, tree fntype ATTRIBUTE_UNUSED)
{