mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-20 11:29:12 +08:00
expr.c (store_field): Use adjust_address, not PUT_MODE.
* expr.c (store_field): Use adjust_address, not PUT_MODE. (expand_expr, case VIEW_CONVERT_EXPR): Likewise. * reload1.c (eliminate_regs, case SUBREG): Likewise, but use adjust_address_nv. * varasm.c (make_decl_rtl): Likewise. * integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use replace_equiv_address_nv. From-SVN: r48387
This commit is contained in:
parent
44e3910ab7
commit
c4e59f513b
@ -1,5 +1,13 @@
|
||||
Sat Dec 29 15:48:54 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
|
||||
|
||||
* expr.c (store_field): Use adjust_address, not PUT_MODE.
|
||||
(expand_expr, case VIEW_CONVERT_EXPR): Likewise.
|
||||
* reload1.c (eliminate_regs, case SUBREG): Likewise, but use
|
||||
adjust_address_nv.
|
||||
* varasm.c (make_decl_rtl): Likewise.
|
||||
* integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use
|
||||
replace_equiv_address_nv.
|
||||
|
||||
* varasm.c (decode_addr_const, case INTEGER_CST): Call
|
||||
output_constant_def instead of looking at TREE_CST_RTL.
|
||||
|
||||
|
@ -5006,9 +5006,7 @@ store_field (target, bitsize, bitpos, mode, exp, value_mode, unsignedp, type,
|
||||
= assign_temp
|
||||
(build_qualified_type (type, TYPE_QUALS (type) | TYPE_QUAL_CONST),
|
||||
0, 1, 1);
|
||||
rtx blk_object = copy_rtx (object);
|
||||
|
||||
PUT_MODE (blk_object, BLKmode);
|
||||
rtx blk_object = adjust_address (object, BLKmode, 0);
|
||||
|
||||
if (bitsize != (HOST_WIDE_INT) GET_MODE_BITSIZE (GET_MODE (target)))
|
||||
emit_move_insn (object, target);
|
||||
@ -7340,12 +7338,11 @@ expand_expr (exp, target, tmode, modifier)
|
||||
(HOST_WIDE_INT) GET_MODE_SIZE (TYPE_MODE (type)));
|
||||
rtx new = assign_stack_temp_for_type (TYPE_MODE (type),
|
||||
temp_size, 0, type);
|
||||
rtx new_with_op0_mode = copy_rtx (new);
|
||||
rtx new_with_op0_mode = adjust_address (new, GET_MODE (op0), 0);
|
||||
|
||||
if (TREE_ADDRESSABLE (exp))
|
||||
abort ();
|
||||
|
||||
PUT_MODE (new_with_op0_mode, GET_MODE (op0));
|
||||
if (GET_MODE (op0) == BLKmode)
|
||||
emit_block_move (new_with_op0_mode, op0,
|
||||
GEN_INT (GET_MODE_SIZE (TYPE_MODE (type))));
|
||||
@ -7355,7 +7352,7 @@ expand_expr (exp, target, tmode, modifier)
|
||||
op0 = new;
|
||||
}
|
||||
|
||||
PUT_MODE (op0, TYPE_MODE (type));
|
||||
op0 = adjust_address (op0, TYPE_MODE (type), 0);
|
||||
}
|
||||
|
||||
return op0;
|
||||
|
@ -2263,10 +2263,9 @@ copy_rtx_and_substitute (orig, map, for_lhs)
|
||||
return validize_mem (force_const_mem (const_mode, constant));
|
||||
}
|
||||
|
||||
copy = rtx_alloc (MEM);
|
||||
PUT_MODE (copy, mode);
|
||||
XEXP (copy, 0) = copy_rtx_and_substitute (XEXP (orig, 0), map, 0);
|
||||
MEM_COPY_ATTRIBUTES (copy, orig);
|
||||
copy = replace_equiv_address_nv (orig,
|
||||
copy_rtx_and_substitute (XEXP (orig, 0),
|
||||
map, 0));
|
||||
|
||||
/* If inlining and this is not for the LHS, turn off RTX_UNCHANGING_P
|
||||
since this may be an indirect reference to a parameter and the
|
||||
|
@ -2552,14 +2552,7 @@ eliminate_regs (x, mem_mode, insn)
|
||||
)
|
||||
|| x_size == new_size)
|
||||
)
|
||||
{
|
||||
int offset = SUBREG_BYTE (x);
|
||||
enum machine_mode mode = GET_MODE (x);
|
||||
|
||||
PUT_MODE (new, mode);
|
||||
XEXP (new, 0) = plus_constant (XEXP (new, 0), offset);
|
||||
return new;
|
||||
}
|
||||
return adjust_address_nv (x, GET_MODE (x), SUBREG_BYTE (x));
|
||||
else
|
||||
return gen_rtx_SUBREG (GET_MODE (x), new, SUBREG_BYTE (x));
|
||||
}
|
||||
|
@ -840,10 +840,8 @@ make_decl_rtl (decl, asmspec)
|
||||
{
|
||||
/* If the old RTL had the wrong mode, fix the mode. */
|
||||
if (GET_MODE (DECL_RTL (decl)) != DECL_MODE (decl))
|
||||
{
|
||||
rtx rtl = DECL_RTL (decl);
|
||||
PUT_MODE (rtl, DECL_MODE (decl));
|
||||
}
|
||||
SET_DECL_RTL (decl, adjust_address_nv (DECL_RTL (decl),
|
||||
DECL_MODE (decl), 0));
|
||||
|
||||
/* ??? Another way to do this would be to do what halfpic.c does
|
||||
and maintain a hashed table of such critters. */
|
||||
|
Loading…
Reference in New Issue
Block a user