stor-layout.c (compute_record_mode): Remove very obsolete test that forces BLKmode for records with fields crossing...
* stor-layout.c (compute_record_mode): Remove very obsolete test that forces BLKmode for records with fields crossing word boundary. From-SVN: r69297
This commit is contained in:
parent
ae26c8e25f
commit
0acf4f8857
@ -1,3 +1,8 @@
|
||||
2003-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* stor-layout.c (compute_record_mode): Remove very obsolete test
|
||||
that forces BLKmode for records with fields crossing word boundary.
|
||||
|
||||
2003-07-13 Zack Weinberg <zack@codesourcery.com>
|
||||
|
||||
* Makefile.in: Remove orphan reference to acconfig.h.
|
||||
|
@ -1310,8 +1310,6 @@ compute_record_mode (tree type)
|
||||
BLKmode only because it isn't aligned. */
|
||||
for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field))
|
||||
{
|
||||
unsigned HOST_WIDE_INT bitpos;
|
||||
|
||||
if (TREE_CODE (field) != FIELD_DECL)
|
||||
continue;
|
||||
|
||||
@ -1323,19 +1321,6 @@ compute_record_mode (tree type)
|
||||
|| ! host_integerp (DECL_SIZE (field), 1))
|
||||
return;
|
||||
|
||||
bitpos = int_bit_position (field);
|
||||
|
||||
/* Must be BLKmode if any field crosses a word boundary,
|
||||
since extract_bit_field can't handle that in registers. */
|
||||
if (bitpos / BITS_PER_WORD
|
||||
!= ((tree_low_cst (DECL_SIZE (field), 1) + bitpos - 1)
|
||||
/ BITS_PER_WORD)
|
||||
/* But there is no problem if the field is entire words
|
||||
or bigger than a word. */
|
||||
&& ! (tree_low_cst (DECL_SIZE (field), 1) % BITS_PER_WORD == 0
|
||||
|| compare_tree_int (DECL_SIZE (field), BITS_PER_WORD) > 0))
|
||||
return;
|
||||
|
||||
/* If this field is the whole struct, remember its mode so
|
||||
that, say, we can put a double in a class into a DF
|
||||
register instead of forcing it to live in the stack. */
|
||||
|
Loading…
Reference in New Issue
Block a user