This addresses a bug that shows up building perlbmk (SPEC) in LNO
branch.
cse pastes together the high and low parts of
(CONST (MINUS (LABEL_REF) (0)))
each valid in context, into a REG_EQUAL; this propagates into the RHS
of an
assignment without being validated, and since it is not in fact valid,
an ICE results.
There's already a case where a similar pasting is disallowed, so I'd
like to add
this one. (I don't know why it happens only in LNO branch.)
(It seems obvious to approach this instead by getting rid of the
redundant MINUS 0,
but that turns out to lead into some very dusty twisty little passages
of the
darwin-specific address generation code.) Bootstrapped and tested on
darwin.
2004-04-29 Dale Johannesen <dalej@apple.com>
* cse.c (cse_insn): Disallow construction of
(CONST (MINUS (LABEL_REF) (0))) in a REG_EQUAL note.