summaryrefslogtreecommitdiffstats
path: root/gcc
diff options
context:
space:
mode:
authorfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 14:20:08 +0000
committerfroydnj <froydnj@138bc75d-0d04-0410-961f-82ee72b054a4>2010-10-09 14:20:08 +0000
commit385c19d15571d06e3a8cc55ba4d498c384f45a3c (patch)
treec1c7a728bf4c729cac85d962736e576977abcdb0 /gcc
parente8509befebc2a191243df50d164e2ea56724797b (diff)
downloadppe42-gcc-385c19d15571d06e3a8cc55ba4d498c384f45a3c.tar.gz
ppe42-gcc-385c19d15571d06e3a8cc55ba4d498c384f45a3c.zip
* config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
* config/m68k/m68k.c (m68k_function_arg): New function. (m68k_function_arg_advance): New function. (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165227 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/m68k/m68k.c30
-rw-r--r--gcc/config/m68k/m68k.h8
3 files changed, 37 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6ad88a007e3..f0b5968f79d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
+ * config/m68k/m68k.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
+ * config/m68k/m68k.c (m68k_function_arg): New function.
+ (m68k_function_arg_advance): New function.
+ (TARGET_FUNCTION_ARG, TARGET_FUNCTION_ARG_ADVANCE): Define.
+
+2010-10-09 Nathan Froyd <froydnj@codesourcery.com>
+
* config/avr/avr-protos.h (function_arg): Delete.
(function_arg_advance): Delete.
* config/avr/avr.h (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Delete.
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 09b7ccbd86f..f032a47f6df 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -157,6 +157,10 @@ static void m68k_output_dwarf_dtprel (FILE *, int, rtx) ATTRIBUTE_UNUSED;
static void m68k_trampoline_init (rtx, tree, rtx);
static int m68k_return_pops_args (tree, tree, int);
static rtx m68k_delegitimize_address (rtx);
+static void m68k_function_arg_advance (CUMULATIVE_ARGS *, enum machine_mode,
+ const_tree, bool);
+static rtx m68k_function_arg (CUMULATIVE_ARGS *, enum machine_mode,
+ const_tree, bool);
/* Specify the identification number of the library being built */
@@ -283,6 +287,12 @@ const char *m68k_library_id_string = "_current_shared_library_a5_offset_";
#undef TARGET_DELEGITIMIZE_ADDRESS
#define TARGET_DELEGITIMIZE_ADDRESS m68k_delegitimize_address
+#undef TARGET_FUNCTION_ARG
+#define TARGET_FUNCTION_ARG m68k_function_arg
+
+#undef TARGET_FUNCTION_ARG_ADVANCE
+#define TARGET_FUNCTION_ARG_ADVANCE m68k_function_arg_advance
+
static const struct attribute_spec m68k_attribute_table[] =
{
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler } */
@@ -1474,6 +1484,26 @@ m68k_ok_for_sibcall_p (tree decl, tree exp)
return false;
}
+/* On the m68k all args are always pushed. */
+
+static rtx
+m68k_function_arg (CUMULATIVE_ARGS *cum ATTRIBUTE_UNUSED,
+ enum machine_mode mode ATTRIBUTE_UNUSED,
+ const_tree type ATTRIBUTE_UNUSED,
+ bool named ATTRIBUTE_UNUSED)
+{
+ return NULL_RTX;
+}
+
+static void
+m68k_function_arg_advance (CUMULATIVE_ARGS *cum, enum machine_mode mode,
+ const_tree type, bool named ATTRIBUTE_UNUSED)
+{
+ *cum += (mode != BLKmode
+ ? (GET_MODE_SIZE (mode) + 3) & ~3
+ : (int_size_in_bytes (type) + 3) & ~3);
+}
+
/* Convert X to a legitimate function call memory reference and return the
result. */
diff --git a/gcc/config/m68k/m68k.h b/gcc/config/m68k/m68k.h
index 75217bae231..5aac599d711 100644
--- a/gcc/config/m68k/m68k.h
+++ b/gcc/config/m68k/m68k.h
@@ -558,14 +558,6 @@ extern enum reg_class regno_reg_class[];
#define INIT_CUMULATIVE_ARGS(CUM, FNTYPE, LIBNAME, INDIRECT, N_NAMED_ARGS) \
((CUM) = 0)
-#define FUNCTION_ARG_ADVANCE(CUM, MODE, TYPE, NAMED) \
- ((CUM) += ((MODE) != BLKmode \
- ? (GET_MODE_SIZE (MODE) + 3) & ~3 \
- : (int_size_in_bytes (TYPE) + 3) & ~3))
-
-/* On the m68k all args are always pushed. */
-#define FUNCTION_ARG(CUM, MODE, TYPE, NAMED) 0
-
#define FUNCTION_PROFILER(FILE, LABELNO) \
asm_fprintf (FILE, "\tlea %LLP%d,%Ra0\n\tjsr mcount\n", (LABELNO))
OpenPOWER on IntegriCloud