This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: more simplify_subreg aborts
- To: Richard Henderson <rth at redhat dot com>
- Subject: Re: more simplify_subreg aborts
- From: Catherine Moore <clm at cygnus dot com>
- Date: Thu, 28 Jun 2001 15:49:07 -0700
- cc: clm at redhat dot com, Geoff Keating <geoffk at geoffk dot org>, gcc at gcc dot gnu dot org
- Reply-To: clm at redhat dot com
:On Thu, Jun 28, 2001 at 12:14:08PM -0700, Catherine Moore wrote:
:> which eventually ends up aborting in simplify_gen_subreg because
:> the mode of labelref is VOIDmode.
:
:The label_ref should be Pmode. Where was it created?
It was created in the casesi pattern in v850.md. I could experiment
with changing it to Pmode, although alot of the ports use VOIDmode
for calls to gen_rtx_LABEL_REF.
I'll see how it goes...
Catherine
Index: v850.md
===================================================================
RCS file: /cvs/gcc/egcs/gcc/config/v850/v850.md,v
retrieving revision 1.16
diff -p -r1.16 v850.md
*** v850.md 1999/11/08 15:40:38 1.16
--- v850.md 2001/06/28 22:46:01
***************
*** 944,950 ****
emit_insn (gen_ashlsi3 (reg, reg, GEN_INT (TARGET_BIG_SWITCH ? 2 : 1)));
/* Load the table address into a pseudo. */
emit_insn (gen_movsi (tableaddress,
! gen_rtx_LABEL_REF (VOIDmode, operands[3])));
/* Add the table address to the index. */
emit_insn (gen_addsi3 (reg, reg, tableaddress));
/* Load the table entry. */
--- 944,950 ----
emit_insn (gen_ashlsi3 (reg, reg, GEN_INT (TARGET_BIG_SWITCH ? 2 : 1)));
/* Load the table address into a pseudo. */
emit_insn (gen_movsi (tableaddress,
! gen_rtx_LABEL_REF (Pmode, operands[3])));
/* Add the table address to the index. */
emit_insn (gen_addsi3 (reg, reg, tableaddress));
/* Load the table entry. */