[patch] [MIPS] Implement Errata for 24K and 24KE

Richard Sandiford rdsandiford@googlemail.com
Sat May 23 08:33:00 GMT 2009


Catherine Moore <clm@codesourcery.com> writes:
> Richard Sandiford wrote:
>> Catherine Moore <clm@codesourcery.com> writes:
>>> I've attached a new patch.  It adds the testcases that you asked for
>>> along with the other cleanups.  I had trouble with one section -- this
>>> first example:
>>>
>>> 	.set	noreorder
>>> 1:	eret
>>> 	.set	reorder
>>> 	b	1b
>>>
>>> insns_between is called only when the the history insn is not in a
>>> noreorder block.
>> 
>> Hmm, yeah.  So the current code doesn't behave as I said after all. ;(
>> Sorry about that.  Serves me right for going on memory.
>> 
>> I still think that what I said is what ought to happen.  I can't see
>> any reason for the current approach to non-24k hazards, where we insert
>> nops between A and B iff _A_ is not in a noreorder block.  Why should
>> A and B be assymetric in that way?
>
> This sounds like a good plan.  Will you let me know when you've
> checked in your bit?

OK, there were no objections, so I went ahead and applied it after
testing on mipsisa64-elf.

>> So assuming we can use the patch below, and drop the hunk above
>> from your patch, the rest looks good.  However, the logic is
>> overly complex: 
>
> (code snipped).  I think that you meant for the check on insn2 to be
> insn2 != NULL, otherwise this change looks okay to me as well.

I think the original "insn2 == NULL" was right.  If insn2 is null,
we need to assume the worst, and return 1.

Richard



More information about the Binutils mailing list