From 153890758784e2cac8a3a42462d8907549964ae0 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Sun, 25 Jan 1998 14:22:29 -0800 Subject: [PATCH] * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. From-SVN: r17485 --- gcc/ChangeLog | 4 ++++ gcc/config/alpha/alpha.c | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c0c433f8f54..48aa92cfb96 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Sun Jan 25 22:22:04 1998 Richard Henderson + + * alpha.c (alpha_expand_block_move): Copy ADDRESSOF to reg. + Sun Jan 25 22:14:28 1998 Richard Henderson * toplev.c (get_run_time): Make sure each case gets its variables. diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index 859683af8e8..0762de4c462 100644 --- a/gcc/config/alpha/alpha.c +++ b/gcc/config/alpha/alpha.c @@ -1614,6 +1614,12 @@ alpha_expand_block_move (operands) if (bytes > MAX_MOVE_WORDS*8) return 0; + /* Ideally we would do nice things when noticing the addressof. */ + if (GET_CODE (XEXP (orig_src, 0)) == ADDRESSOF) + orig_src = copy_addr_to_reg (XEXP (orig_src, 0)); + if (GET_CODE (XEXP (orig_dst, 0)) == ADDRESSOF) + orig_dst = copy_addr_to_reg (XEXP (orig_dst, 0)); + /* Handle a block of contiguous words first. */ if (align >= 8 && bytes >= 8) -- 2.30.2