[patch] [MIPS] Implement Errata for 24K and 24KE
Catherine Moore
clm@codesourcery.com
Wed Apr 8 21:14:00 GMT 2009
This patch implements the errata for the 24K and 24KE. The errata calls for a NOP to be emitted
after an ERET/DERET instruction followed by a branch. If the ERET/DERET is in a noreorder section,
then a warning will be issued instead. This functionality requires the -mfix-24k option.
In addition, there was an error in the delay slot handling in append_insn. The code failed to
exclude an ERET or DERET instuction from being moved into a delay slot. That failure is also
corrected with this patch.
Does this look okay to install?
Thanks,
Catherine
2009-04-08 Catherine Moore <clm@codesourcery.com>
gas/
* config/tc-mips.c (mips_fix_24k): Declare.
(check_for_24k_errata): New.
(mips_cleanup): Call check_for_24k_errata.
(start_noreorder): Likewise.
(md_mips_end): Likewise.
(s_change_sec): Likewise.
(s_change_section): Likewise.
(append_insn): Call check_for_24k_errata. Prevent
ERET/DERET instructions from being moved into delay
slots.
(OPTION_FIX_24K): New.
(OPTION_NO_FIX_24k) New.
(md_longopts): Add "mfix-24k" and "mno-fix-24k".
(md_parse_option): Handle fix-24k options.
(md_show_usage): Display fix-24k options.
* doc/c-mips.texi: Document.
* testsuite/gas/mips/mips.exp: Run new tests.
* testsuite/gas/mips/eret.s: New test.
* testsuite/gas/mips/eret.d: New test output.
* testsuite/gas/mips/eret.l: New test output.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eret.patch
Type: text/x-diff
Size: 13005 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20090408/5bc9d064/attachment.bin>
More information about the Binutils
mailing list