From: Bob Wilson Date: Thu, 10 Mar 2005 16:44:48 +0000 (+0000) Subject: * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9a7363b9fbe199b230c34d5c78c79c92f2ef1391;p=gcc.git * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define. From-SVN: r96245 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2e5b1f14ca1..22849e206f6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2005-03-10 Bob Wilson + + * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define. + 2005-03-10 Nathan Sidwell * bitmap.c (bitmap_copy): Remove manual loop unrolling. diff --git a/gcc/config/xtensa/xtensa.h b/gcc/config/xtensa/xtensa.h index 2f4b3d37c48..a2b4b4850a5 100644 --- a/gcc/config/xtensa/xtensa.h +++ b/gcc/config/xtensa/xtensa.h @@ -209,6 +209,15 @@ extern unsigned xtensa_current_frame_size; bitfields and the structures that contain them. */ #define PCC_BITFIELD_TYPE_MATTERS 1 +/* Disable the use of word-sized or smaller complex modes for structures, + and for function arguments in particular, where they cause problems with + register a7. The xtensa_copy_incoming_a7 function assumes that there is + a single reference to an argument in a7, but with small complex modes the + real and imaginary components may be extracted separately, leading to two + uses of the register, only one of which would be replaced. */ +#define MEMBER_TYPE_FORCES_BLK(FIELD, MODE) \ + ((MODE) == CQImode || (MODE) == CHImode) + /* Align string constants and constructors to at least a word boundary. The typical use of this macro is to increase alignment for string constants to be word aligned so that 'strcpy' calls that copy