grow up correctly.
* config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Define.
(STACK_ALIGN): Define.
* hppa-tdep.c (hppa_alignof): Don't demand a minumim two byte
alignment on structs/unions.
Fixing assorted structure passing/return problems reported by the net.
+Wed Aug 7 09:59:19 1996 Jeffrey A Law (law@cygnus.com)
+
+ * valops.c (call_function_by_hand): Handle aligning stacks that
+ grow up correctly.
+ * config/pa/tm-hppa.h (USE_STRUCT_CONVENTION): Define.
+ (STACK_ALIGN): Define.
+ * hppa-tdep.c (hppa_alignof): Don't demand a minumim two byte
+ alignment on structs/unions.
+
Sun Aug 4 16:22:42 1996 Fred Fish <fnf@cygnus.com>
* config/powerpc/nm-aix.h (PTRACE_ARG3_TYPE): Define to "int *",
Sun Aug 4 16:22:42 1996 Fred Fish <fnf@cygnus.com>
* config/powerpc/nm-aix.h (PTRACE_ARG3_TYPE): Define to "int *",
#define REG_STRUCT_HAS_ADDR(gcc_p,type) \
(TYPE_LENGTH (type) > 8)
#define REG_STRUCT_HAS_ADDR(gcc_p,type) \
(TYPE_LENGTH (type) > 8)
+#define USE_STRUCT_CONVENTION(gcc_p,type) (TYPE_LENGTH (type) > 8)
+
/* Offset from address of function to start of its code.
Zero on most machines. */
/* Offset from address of function to start of its code.
Zero on most machines. */
probably much more common. (FIXME). */
#define COERCE_FLOAT_TO_DOUBLE (current_language -> la_language == language_c)
probably much more common. (FIXME). */
#define COERCE_FLOAT_TO_DOUBLE (current_language -> la_language == language_c)
+
+#define STACK_ALIGN(ADDR) (((ADDR) + 7) & -8)
return hppa_alignof (TYPE_FIELD_TYPE (type, 0));
case TYPE_CODE_STRUCT:
case TYPE_CODE_UNION:
return hppa_alignof (TYPE_FIELD_TYPE (type, 0));
case TYPE_CODE_STRUCT:
case TYPE_CODE_UNION:
for (i = 0; i < TYPE_NFIELDS (type); i++)
{
/* Bit fields have no real alignment. */
for (i = 0; i < TYPE_NFIELDS (type); i++)
{
/* Bit fields have no real alignment. */