diff --git a/gcc/ChangeLog b/gcc/ChangeLog index efa0b76539e..a6ef0f414fb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-10-09 John David Anglin + + * config/pa/pa.h (BIGGEST_ALIGNMENT): Adjust comment. + (MALLOC_ABI_ALIGNMENT): Define. + 2016-10-09 Jakub Jelinek * tree-ssa.c (target_for_debug_bind, verify_phi_args, diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 3efcc3a9975..f0aa1ae68c6 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -292,9 +292,21 @@ typedef struct GTY(()) machine_function /* A bit-field declared as `int' forces `int' alignment for the struct. */ #define PCC_BITFIELD_TYPE_MATTERS 1 -/* No data type wants to be aligned rounder than this. */ +/* No data type wants to be aligned rounder than this. The long double + type has 16-byte alignment on the 64-bit target even though it was never + implemented in hardware. The software implementation only needs 8-byte + alignment. This is to match the HP compilers. */ #define BIGGEST_ALIGNMENT (2 * BITS_PER_WORD) +/* Alignment, in bits, a C conformant malloc implementation has to provide. + The HP-UX malloc implementation provides a default alignment of 8 bytes. + This can be increased with mallopt. The glibc implementation also provides + 8-byte alignment. Note that this isn't enough for various POSIX types such + as pthread_mutex_t. However, since we no longer need the 16-byte alignment + for atomic operations, we ignore the nominal alignment specified for these + types. The same is true for long double on 64-bit HP-UX. */ +#define MALLOC_ABI_ALIGNMENT (64) + /* Get around hp-ux assembler bug, and make strcpy of constants fast. */ #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ (TREE_CODE (EXP) == STRING_CST \