This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RS6000] Fix rtl checking ICE building libjava
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Mon, 23 Feb 2015 16:02:19 -0500
- Subject: Re: [RS6000] Fix rtl checking ICE building libjava
- Authentication-results: sourceware.org; auth=none
- References: <20150223135639 dot GL11515 at bubble dot grove dot modra dot org>
On Mon, Feb 23, 2015 at 8:56 AM, Alan Modra <amodra@gmail.com> wrote:
> get_memreg_parts can return a memory base other than a REG, when the
> memory address in question is a PLUS with other than a REG as its
> first operand. This leads to an ICE with rtl checking enabled on the
> following, since the callers of get_memreg_parts expect a REG.
>
> (gdb) p debug_rtx(addr_rtx)
> (plus:DI (plus:DI (reg/f:DI 9 9 [162])
> (const_int 65536 [0x10000]))
> (const_int -31752 [0xffffffffffff83f8]))
>
> Bootstrapped and regression tested powerpc64-linux. OK for stage4?
>
> PR target/65182
> * config/rs6000/rs6000.c (get_memref_parts): Only return true
> when *base is a reg. Handle nested plus addresses. Simplify
> pre_modify test.
Okay for stage 4.
Thanks, David