aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa/pa.h
diff options
context:
space:
mode:
authorKazu Hirata <kazu@cs.umass.edu>2004-01-26 00:09:47 +0000
committerKazu Hirata <kazu@gcc.gnu.org>2004-01-26 00:09:47 +0000
commit3f12cd9b3cfa9d4011eda8a9b469107a59ffe6e0 (patch)
tree12ffb8fbb5d5960c65feb60cbb87a19c6f75430f /gcc/config/pa/pa.h
parentf289e226f1468a16627cef00b4678259c7a8d653 (diff)
downloadgcc-3f12cd9b3cfa9d4011eda8a9b469107a59ffe6e0.zip
gcc-3f12cd9b3cfa9d4011eda8a9b469107a59ffe6e0.tar.gz
gcc-3f12cd9b3cfa9d4011eda8a9b469107a59ffe6e0.tar.bz2
pa-protos.h: Remove the prototype for hppa_builtin_saveregs.
* config/pa/pa-protos.h: Remove the prototype for hppa_builtin_saveregs. Add a prototype for pa_return_in_memory. * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New. (TARGET_PROMOTE_PROTOTYPES): Likewise. (TARGET_STRUCT_VALUE_RTX): Likewise. (TARGET_RETURN_IN_MEMORY): Likewise. (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise. (pa_struct_value_rtx): Likewise. (pa_return_in_memory): Likewise. * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to PA_STRUCT_VALUE_REGNUM. (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory. (EXPAND_BUILTIN_SAVEREGS): Remove. (PROMOTE_PROTOTYPES): Likewise. (PROMOTE_FUNCTION_RETURN): Likewise. From-SVN: r76600
Diffstat (limited to 'gcc/config/pa/pa.h')
-rw-r--r--gcc/config/pa/pa.h27
1 files changed, 2 insertions, 25 deletions
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index f2ae999..95fb2f2 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -554,21 +554,9 @@ extern struct rtx_def *hppa_pic_save_rtx (void);
#define DEFAULT_PCC_STRUCT_RETURN 0
-/* SOM ABI says that objects larger than 64 bits are returned in memory.
- PA64 ABI says that objects larger than 128 bits are returned in memory.
- Note, int_size_in_bytes can return -1 if the size of the object is
- variable or larger than the maximum value that can be expressed as
- a HOST_WIDE_INT. It can also return zero for an empty type. The
- simplest way to handle variable and empty types is to pass them in
- memory. This avoids problems in defining the boundaries of argument
- slots, allocating registers, etc. */
-#define RETURN_IN_MEMORY(TYPE) \
- (int_size_in_bytes (TYPE) > (TARGET_64BIT ? 16 : 8) \
- || int_size_in_bytes (TYPE) <= 0)
-
/* Register in which address to store a structure value
is passed to a function. */
-#define STRUCT_VALUE_REGNUM 28
+#define PA_STRUCT_VALUE_REGNUM 28
/* Describe how we implement __builtin_eh_return. */
#define EH_RETURN_DATA_REGNO(N) \
@@ -804,7 +792,7 @@ struct hppa_args {int words, nargs_prototype, incoming, indirect; };
(CUM).nargs_prototype = (FNTYPE && TYPE_ARG_TYPES (FNTYPE) \
? (list_length (TYPE_ARG_TYPES (FNTYPE)) - 1 \
+ (TYPE_MODE (TREE_TYPE (FNTYPE)) == BLKmode \
- || RETURN_IN_MEMORY (TREE_TYPE (FNTYPE)))) \
+ || pa_return_in_memory (TREE_TYPE (FNTYPE), 0))) \
: 0)
@@ -1153,13 +1141,6 @@ extern int may_call_alloca;
#define TRAMPOLINE_ADJUST_ADDRESS(ADDR) \
if (!TARGET_64BIT) (ADDR) = memory_address (Pmode, plus_constant ((ADDR), 46))
-/* Emit code for a call to builtin_saveregs. We must emit USE insns which
- reference the 4 integer arg registers and 4 fp arg registers.
- Ordinarily they are not call used registers, but they are for
- _builtin_saveregs, so we must make this explicit. */
-
-#define EXPAND_BUILTIN_SAVEREGS() hppa_builtin_saveregs ()
-
/* Implement `va_start' for varargs and stdarg. */
#define EXPAND_BUILTIN_VA_START(valist, nextarg) \
@@ -1734,10 +1715,6 @@ do { \
is done just by pretending it is already truncated. */
#define TRULY_NOOP_TRUNCATION(OUTPREC, INPREC) 1
-/* When a prototype says `char' or `short', really pass an `int'. */
-#define PROMOTE_PROTOTYPES 1
-#define PROMOTE_FUNCTION_RETURN 1
-
/* Specify the machine mode that pointers have.
After generation of rtl, the compiler makes no further distinction
between pointers and any other objects of this machine mode. */