On 06/22/10 13:18, Hans-Peter Nilsson wrote:
On Mon, 21 Jun 2010, Boris Boesler wrote:
The four instructions before the jump are placed into the
delay slots, such that the delay slots are completely filled;
but there is still the pipeline hazard, which can't be resolved
by inserting NOPs now, because there are no free slots.
GCC ports with more than one delay-slot are SOL; there be bugs.
(No port in the official repository has more than one
delay-slot, so if reorg.c ever was bug-free in that regard,
there's little chance to spot any regression. It might even
be sanity-preserving to erroring out (or emitting a warning) in
genwhatever for such a define_delay.)
Agreed. You probably know more about the pitfalls of dealing with
multiple delay slots in GCC than anyone.
What's worse is there is an ever-decreasing focus on targets with delay
slots. I think these days most developers largely ignore the delay slot
code and just hope it doesn't break.
Jeff