This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: apparent typo in combine.c
- To: zackw at panix dot com
- Subject: Re: apparent typo in combine.c
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Fri, 17 Aug 01 15:56:09 EDT
- Cc: gcc at gcc dot gnu dot org
> Now how can that be right? Generate an arithmetic shift only if we
> *don't* have an arithmetic shift insn for this mode? I would think
> that either the != and == should be swapped in the first two lines,
>
> I think that's correct. Amazing this has been around for so long!
Which of the changes I suggested do you think is better?
The one I repeated!
Here's another one:
/* If OP0 is an AND and we don't have an AND in MODE either,
make a new AND in the proper mode. */
if (GET_CODE (op0) == AND
&& (add_optab->handlers[(int) mode].insn_code
== CODE_FOR_nothing))
op0 = gen_binary (AND, tmode,
gen_lowpart_for_combine (tmode,
XEXP (op0, 0)),
gen_lowpart_for_combine (tmode,
XEXP (op0, 1)));
-- that should be and_optab, I think.
Oops, yes, it should!