This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH:[darwin] fix load of a misaligned double word
- From: "Hartmut Penner" <HPENNER at de dot ibm dot com>
- To: Geoff Keating <geoffk at geoffk dot org>
- Cc: dje at watson dot ibm dot com, fjahanian at apple dot com, gcc-patches at gcc dot gnu dot org, geoffk at desire dot geoffk dot org, lucier at math dot purdue dot edu, pinskia at physics dot uc dot edu, "Ulrich Weigand" <Ulrich dot Weigand at de dot ibm dot com>
- Date: Thu, 22 Jan 2004 13:53:14 +0100
- Subject: Re: PATCH:[darwin] fix load of a misaligned double word
Geoff wrote:
> Right. So we should be trying to arrange for reload to choose the
> alternative that will actually make progress. Since in this case, one
> alternative requires reloading two operands, but the better
> alternative requires reloading only one, this should not be a problem.
Of course, we end up in this situation, because the right alternative
has two '?'. We wouldn't run into this, if we would change
the distribution of '?' in this particular insn, maybe
take them totally away, as already discussed in this thread.
But I have the suspicion, that we will sooner or later will have
a reoccurrence of this problem, if we don't provide secondary
reload in/outs.
How should we proceed ? Change the constraints in the insn and
wait, if we will see the problem again ?
And if we change the constraints,
is this the proposed change:
[(set (match_operand:DF 0 "nonimmediate_operand" "=?Y,?r,!r,f,f,m,!cl,!r,!r,!r,!r")
or this:
[(set (match_operand:DF 0 "nonimmediate_operand" "=Y,r,!r,f,f,m,!cl,!r,!r,!r,!r")
regards, Hartmut