[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