#ifndef _S390_H
#define _S390_H
-/* Override the __fixdfdi etc. routines when building libgcc2.
- ??? This should be done in a cleaner way ... */
-#if defined (IN_LIBGCC2) && !defined (__s390x__)
-#include <config/s390/fixdfdi.h>
-#endif
-
/* Which processor to generate code or schedule for. The cpu attribute
defines a list that mirrors this list, so changes to s390.md must be
made at the same time. */
#endif
#define MAX_BITS_PER_WORD 64
-/* Function arguments and return values are promoted to word size. */
-#define PROMOTE_FUNCTION_MODE(MODE, UNSIGNEDP, TYPE) \
-if (INTEGRAL_MODE_P (MODE) && \
- GET_MODE_SIZE (MODE) < UNITS_PER_WORD) { \
- (MODE) = Pmode; \
- }
-
/* Allocation boundary (in *bits*) for storing arguments in argument list. */
#define PARM_BOUNDARY (TARGET_64BIT ? 64 : 32)
{ RETURN_ADDRESS_POINTER_REGNUM, HARD_FRAME_POINTER_REGNUM }, \
{ BASE_REGNUM, BASE_REGNUM }}
-#define CAN_ELIMINATE(FROM, TO) \
- s390_can_eliminate ((FROM), (TO))
-
#define INITIAL_ELIMINATION_OFFSET(FROM, TO, OFFSET) \
(OFFSET) = s390_initial_elimination_offset ((FROM), (TO))
/* Scalar return values. */
#define FUNCTION_VALUE(VALTYPE, FUNC) \
- s390_function_value ((VALTYPE), VOIDmode)
+ s390_function_value ((VALTYPE), (FUNC), VOIDmode)
#define LIBCALL_VALUE(MODE) \
- s390_function_value (NULL, (MODE))
+ s390_function_value (NULL, NULL, (MODE))
/* Only gpr 2 and fpr 0 are ever used as return registers. */
#define FUNCTION_VALUE_REGNO_P(N) ((N) == 2 || (N) == 16)
/* Trampolines for nested functions. */
-#define TRAMPOLINE_SIZE (TARGET_64BIT ? 32 : 16)
-
-#define INITIALIZE_TRAMPOLINE(ADDR, FNADDR, CXT) \
- s390_initialize_trampoline ((ADDR), (FNADDR), (CXT))
-
-#define TRAMPOLINE_TEMPLATE(FILE) \
- s390_trampoline_template (FILE)
-
+#define TRAMPOLINE_SIZE (TARGET_64BIT ? 32 : 16)
+#define TRAMPOLINE_ALIGNMENT BITS_PER_WORD
/* Addressing modes, and classification of registers for them. */