diff options
author | Jakub Jelinek <jakub@redhat.com> | 2002-08-08 19:55:37 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2002-08-08 19:55:37 +0200 |
commit | 3b85fe5f203700eaad317ac7f7b1586cffe0b58a (patch) | |
tree | 437930dd4dee09afdcc971163d7735028d24f02a | |
parent | e10c79fe9ab14e64078bfdeb7f4348a9cd4476c1 (diff) | |
download | gcc-3b85fe5f203700eaad317ac7f7b1586cffe0b58a.zip gcc-3b85fe5f203700eaad317ac7f7b1586cffe0b58a.tar.gz gcc-3b85fe5f203700eaad317ac7f7b1586cffe0b58a.tar.bz2 |
rs6000.h, [...]: Revert last two patches.
* config/rs6000/rs6000.h, config/rs6000/aix.h,
config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last
two patches.
* config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN.
From-SVN: r56135
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/aix.h | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/darwin.h | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/linux64.h | 7 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 9 | ||||
-rw-r--r-- | gcc/config/rs6000/sysv4.h | 6 |
6 files changed, 34 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3c578c2..596f5ab 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2002-08-08 Jakub Jelinek <jakub@redhat.com> + + * config/rs6000/rs6000.h, config/rs6000/aix.h, + config/rs6000/darwin.h, config/rs6000/linux64.h: Revert last + two patches. + * config/rs6000/sysv4.h: Likewise, remove #undef ADJUST_FIELD_ALIGN. + 2002-08-08 Lars Brinkhoff <lars@nocrew.org> Richard Henderson <rth@redhat.com> diff --git a/gcc/config/rs6000/aix.h b/gcc/config/rs6000/aix.h index 592ca55..051780c 100644 --- a/gcc/config/rs6000/aix.h +++ b/gcc/config/rs6000/aix.h @@ -128,6 +128,13 @@ Boston, MA 02111-1307, USA. */ #define LIB_SPEC "%{pg:-L/lib/profiled -L/usr/lib/profiled}\ %{p:-L/lib/profiled -L/usr/lib/profiled} %{!shared:%{g*:-lg}} -lc" +/* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ +#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ + ? get_inner_array_type (FIELD) \ + : TREE_TYPE (FIELD)) == DFmode \ + ? MIN ((COMPUTED), 32) : (COMPUTED)) + /* AIX increases natural record alignment to doubleword if the first field is an FP double while the FP fields remain word aligned. */ #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ diff --git a/gcc/config/rs6000/darwin.h b/gcc/config/rs6000/darwin.h index 6b6ca11..417cfb9 100644 --- a/gcc/config/rs6000/darwin.h +++ b/gcc/config/rs6000/darwin.h @@ -196,6 +196,13 @@ Boston, MA 02111-1307, USA. */ /* Fix for emit_group_load (): force large constants to be pushed via regs. */ #define ALWAYS_PUSH_CONSTS_USING_REGS_P 1 +/* Darwin word-aligns FP doubles but doubleword-aligns 64-bit ints. */ +#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ + ? get_inner_array_type (FIELD) \ + : TREE_TYPE (FIELD)) == DFmode \ + ? MIN ((COMPUTED), 32) : (COMPUTED)) + /* Darwin increases natural record alignment to doubleword if the first field is an FP double while the FP fields remain word aligned. */ #define ROUND_TYPE_ALIGN(STRUCT, COMPUTED, SPECIFIED) \ diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h index 1d9b1a1..a1f162e 100644 --- a/gcc/config/rs6000/linux64.h +++ b/gcc/config/rs6000/linux64.h @@ -72,6 +72,13 @@ Boston, MA 02111-1307, USA. */ #define USER_LABEL_PREFIX "" +/* AIX word-aligns FP doubles but doubleword-aligns 64-bit ints. */ +#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + (TYPE_MODE (TREE_CODE (TREE_TYPE (FIELD)) == ARRAY_TYPE \ + ? get_inner_array_type (FIELD) \ + : TREE_TYPE (FIELD)) == DFmode \ + ? MIN ((COMPUTED), 32) : (COMPUTED)) + /* AIX increases natural record alignment to doubleword if the first field is an FP double while the FP fields remain word aligned. */ #undef ROUND_TYPE_ALIGN diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index dadcc21..17a3015 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -631,15 +631,6 @@ extern int rs6000_default_long_calls; /* A bitfield declared as `int' forces `int' alignment for the struct. */ #define PCC_BITFIELD_TYPE_MATTERS 1 -/* Most ABIs word-align FP doubles but doubleword-align 64-bit ints. */ -#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ - (DEFAULT_ABI == ABI_V4 \ - ? ((TARGET_ALTIVEC \ - && TREE_CODE (get_inner_array_type (FIELD)) == VECTOR_TYPE) \ - ? 128 : (COMPUTED)) \ - : ((TYPE_MODE (get_inner_array_type (FIELD)) == DFmode) \ - ? MIN (32, (COMPUTED)) : (COMPUTED))) - /* Make strings word-aligned so strcpy from constants will be faster. Make vector constants quadword aligned. */ #define CONSTANT_ALIGNMENT(EXP, ALIGN) \ diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h index 24a5c9c..8b6cf1c 100644 --- a/gcc/config/rs6000/sysv4.h +++ b/gcc/config/rs6000/sysv4.h @@ -380,6 +380,12 @@ do { \ /* Real stack boundary as mandated by the appropriate ABI. */ #define ABI_STACK_BOUNDARY ((TARGET_EABI && !TARGET_ALTIVEC_ABI) ? 64 : 128) +/* An expression for the alignment of a structure field FIELD if the + alignment computed in the usual way is COMPUTED. */ +#define ADJUST_FIELD_ALIGN(FIELD, COMPUTED) \ + ((TARGET_ALTIVEC && TREE_CODE (TREE_TYPE (FIELD)) == VECTOR_TYPE) \ + ? 128 : COMPUTED) + /* Define this macro as an expression for the alignment of a type (given by TYPE as a tree node) if the alignment computed in the usual way is COMPUTED and the alignment explicitly specified was |