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

Catherine Moore clm@codesourcery.com
Mon May 18 21:47:00 GMT 2009


Hi Richard,

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.  For this 
errata, I think we need to call insns between if we're fixing 24k_errata and 1) the history insn is 
a noreorder block or 2) the history insn is in a noreorder block and the following instruction is 
not in a noreorder block.   For the above example, insns_between was not called for the eret.

Let me know if this patch looks okay.
Thanks,
Catherine


2009-05-18  Catherine Moore  <clm@codesourcery.com>

         gas/
         * config/tc-mips.c (check_for_24k_errata): Remove.
         (md_mips_end): Remove call to check_for_24k_errata.
         (start_noreorder): Likewise.
         (s_change_sec): Likewise.
         (s_change_section): Likewise.
         (insns_between): Add 24k errata checks.
         (nops_for_insn): Add check for 24k errata.
         (append_insn): Remove declaration and references to nhdx_24k.
         Remove calls to check_for_24k_errata.

         gas/testsuite:
         * eret.s, eret.d eret.l: Remove.
         * eret-1.s, eret-1.d: New.
         * eret-2.s, eret-2.d: New.
         * eret-3.s, eret-3.d: New.
         * mips.exp: Run new tests.  Remove old tests.



Richard Sandiford wrote:

> 
> One upshot of this is that gas ought to insert nops in the
> following situations:
> 
> 	.set	noreorder
> 1:	eret
> 	.set	reorder
> 	b	1b
> 
> 1:	eret
> 	.set	noreorder
> 	b	1b
> 	.set	reorder
> 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: new.eret.patch
Type: text/x-diff
Size: 15079 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20090518/1fd70ab8/attachment.bin>


More information about the Binutils mailing list