Commit 7d2950e5 by Richard Kenner Committed by Richard Kenner

stor-layout.c (compute_record_type): Don't use mode of single field as mode of…

stor-layout.c (compute_record_type): Don't use mode of single field as mode of record if not integer mode of same type.

	* stor-layout.c (compute_record_type): Don't use mode of single
	field as mode of record if not integer mode of same type.

From-SVN: r35796
parent 26db2544
...@@ -6,13 +6,14 @@ Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com> ...@@ -6,13 +6,14 @@ Fri Aug 18 16:22:20 2000 Alexandre Oliva <aoliva@redhat.com>
* configure.in: Get them included with `tm_file's. * configure.in: Get them included with `tm_file's.
* configure: Rebuilt. * configure: Rebuilt.
Fri Aug 18 16:01:18 2000 Alexandre Oliva <aoliva@redhat.com>
* config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify. * config/sh/sh.md (fpu_switch0, fpu_switch1): Simplify.
* config/sh/sh.c (fpscr_set_from_mem): Use them. * config/sh/sh.c (fpscr_set_from_mem): Use them.
Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> Fri Aug 18 14:23:18 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* stor-layout.c (compute_record_type): Don't use mode of single
field as mode of record if not integer mode of same type.
* regmove.c (perhaps_ends_bb_p): New function. * regmove.c (perhaps_ends_bb_p): New function.
(optimize_reg_copy_1, optimize_reg_copy_2): Call it. (optimize_reg_copy_1, optimize_reg_copy_2): Call it.
(optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise. (optimize_reg_copy_3, fixup_match_2, regmove_optimize): Likewise.
......
...@@ -1062,8 +1062,11 @@ compute_record_mode (type) ...@@ -1062,8 +1062,11 @@ compute_record_mode (type)
/* If this field is the whole struct, remember its mode so /* If this field is the whole struct, remember its mode so
that, say, we can put a double in a class into a DF that, say, we can put a double in a class into a DF
register instead of forcing it to live in the stack. */ register instead of forcing it to live in the stack. However,
if (field == TYPE_FIELDS (type) && TREE_CHAIN (field) == 0) we don't support using such a mode if there is no integer mode
of the same size, so don't set it here. */
if (field == TYPE_FIELDS (type) && TREE_CHAIN (field) == 0
&& int_mode_for_mode (DECL_MODE (field)) != BLKmode)
mode = DECL_MODE (field); mode = DECL_MODE (field);
#ifdef STRUCT_FORCE_BLK #ifdef STRUCT_FORCE_BLK
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment