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

Catherine Moore clm@codesourcery.com
Wed May 27 14:17:00 GMT 2009


Hi Richard,

Richard Sandiford wrote:
> 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.
>
    Yep.  I think you're right.  My part of the patch has been committed as well.

    Catherine



More information about the Binutils mailing list