This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix minor bug in alpha.c:expand_block_move
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc-patches at gcc dot gnu dot org
- Date: Fri, 10 Oct 03 14:41:11 EDT
- Subject: Fix minor bug in alpha.c:expand_block_move
This fixes a bug which only shows up for a large Ada test case.
Tested on alphaev56-dec-osf4.0f.
2003-10-10 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* config/alpha/alpha.c (alpha_expand_block_mode): Don't use
gen_lowpart and company except for REG.
*** config/alpha/alpha.c 6 Oct 2003 22:47:19 -0000 1.330
--- config/alpha/alpha.c 9 Oct 2003 21:10:44 -0000
*************** alpha_expand_block_move (rtx operands[])
*** 4453,4457 ****
handles the exact size. */
mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 1);
! if (mode != BLKmode
&& GET_MODE_SIZE (GET_MODE (tmp)) >= bytes)
{
--- 4453,4458 ----
handles the exact size. */
mode = mode_for_size (bytes * BITS_PER_UNIT, MODE_INT, 1);
! if (GET_CODE (tmp) == REG
! && mode != BLKmode
&& GET_MODE_SIZE (GET_MODE (tmp)) >= bytes)
{
*************** alpha_expand_block_move (rtx operands[])
*** 4573,4577 ****
mode = mode_for_size (orig_bytes * BITS_PER_UNIT, MODE_INT, 1);
! if (GET_MODE (tmp) == mode)
{
if (nregs == 1)
--- 4574,4578 ----
mode = mode_for_size (orig_bytes * BITS_PER_UNIT, MODE_INT, 1);
! if (GET_CODE (tmp) == REG && GET_MODE (tmp) == mode)
{
if (nregs == 1)