aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@redhat.com>2001-03-03 03:53:44 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>2001-03-03 03:53:44 +0000
commit31a02448c02a74e9e20dc3f456ad9614253d2909 (patch)
tree10c1e0656f3453c646774445c67f49fbce2877ec
parenteaf4e6183e957581cc1a01378a88f7ca571e7db7 (diff)
downloadgcc-31a02448c02a74e9e20dc3f456ad9614253d2909.zip
gcc-31a02448c02a74e9e20dc3f456ad9614253d2909.tar.gz
gcc-31a02448c02a74e9e20dc3f456ad9614253d2909.tar.bz2
tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
* tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK. * config/c4x/c4x.h: Likewise. * stor-layout.c (compute_record_mode): Likewise. (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK. From-SVN: r40200
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/c4x/c4x.h3
-rw-r--r--gcc/stor-layout.c9
-rw-r--r--gcc/tm.texi6
4 files changed, 18 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3dc3f19..37f1880 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+Sat Mar 3 03:46:47 2001 J"orn Rennecke <amylaar@redhat.com>
+
+ * tm.texi: Change STRUCT_FORCE_BLK to MEMBER_TYPE_FORCES_BLK.
+ * config/c4x/c4x.h: Likewise.
+ * stor-layout.c (compute_record_mode): Likewise.
+ (layout_type, case ARRAY_TYPE): Use MEMBER_TYPE_FORCES_BLK.
+
2001-03-02 Zack Weinberg <zackw@stanford.edu>
* configure.in: Kill tm.h. Include the files in the $tm_file
diff --git a/gcc/config/c4x/c4x.h b/gcc/config/c4x/c4x.h
index 4250bf5..7215565 100644
--- a/gcc/config/c4x/c4x.h
+++ b/gcc/config/c4x/c4x.h
@@ -370,7 +370,8 @@ extern const char *c4x_rpts_cycles_string, *c4x_cpu_version_string;
/* If a structure has a floating point field then force structure
to have BLKMODE. */
-#define STRUCT_FORCE_BLK(FIELD) (TREE_CODE (TREE_TYPE (FIELD)) == REAL_TYPE)
+#define MEMBER_TYPE_FORCES_BLK(FIELD) \
+ (TREE_CODE (TREE_TYPE (FIELD)) == REAL_TYPE)
/* Number of bits in the high and low parts of a two stage
load of an immediate constant. */
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 065d4f6..152eff1 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -1111,12 +1111,12 @@ compute_record_mode (type)
if (simple_cst_equal (TYPE_SIZE (type), DECL_SIZE (field)))
mode = DECL_MODE (field);
-#ifdef STRUCT_FORCE_BLK
+#ifdef MEMBER_TYPE_FORCES_BLK
/* With some targets, eg. c4x, it is sub-optimal
to access an aligned BLKmode structure as a scalar. */
- if (mode == VOIDmode && STRUCT_FORCE_BLK (field))
+ if (mode == VOIDmode && MEMBER_TYPE_FORCES_BLK (field))
return;
-#endif /* STRUCT_FORCE_BLK */
+#endif /* MEMBER_TYPE_FORCES_BLK */
}
/* If we only have one real field; use its mode. This only applies to
@@ -1450,6 +1450,9 @@ layout_type (type)
TYPE_MODE (type) = BLKmode;
if (TYPE_SIZE (type) != 0
+#ifdef MEMBER_TYPE_FORCES_BLK
+ && ! MEMBER_TYPE_FORCES_BLK (type)
+#endif
/* BLKmode elements force BLKmode aggregate;
else extract/store fields may lose. */
&& (TYPE_MODE (TREE_TYPE (type)) != BLKmode
diff --git a/gcc/tm.texi b/gcc/tm.texi
index 286e30f..9f20053 100644
--- a/gcc/tm.texi
+++ b/gcc/tm.texi
@@ -1118,9 +1118,9 @@ get from @code{PCC_BITFIELD_TYPE_MATTERS}.
Like PCC_BITFIELD_TYPE_MATTERS except that its effect is limited to
aligning a bitfield within the structure.
-@findex STRUCT_FORCE_BLK
-@item STRUCT_FORCE_BLK (@var{field})
-Return 1 if a structure containing @var{field} should be accessed using
+@findex MEMBER_TYPE_FORCES_BLK
+@item MEMBER_TYPE_FORCES_BLK (@var{field})
+Return 1 if a structure or array containing @var{field} should be accessed using
@code{BLKMODE}.
Normally, this is not needed. See the file @file{c4x.h} for an example