[PATCH][MIPS] GAS: Fix Loongson3 LLSC errata.

YunQiang Su syq@debian.org
Sat Dec 1 06:17:00 GMT 2018


Paul Hua <paul.hua.gm@gmail.com> 于2018年11月30日周五 下午8:46写道:
>
> Hi:
>
> In some older Loongson 3A1000 processors there is a LL/SC errata that

This problem only exists on "some older Loongson 3A1000"?
Does it exists on current 3A 3000 machines?

> can cause the CPU to deadlock occasionally.  The details are very
> complicated. We find a way to work around this errata by adding a sync
> before ll/lld instruction.
>
> This patch also add a configure options
> --enable-mips-fix-loongson3-llsc=[yes|no] to enable fix-loongson3-llsc
> by config.
>
> [MIPS] GAS: Fix Loongson3 LLSC errata.
>
> gas/
>         * NEWS: Mention -m[no-]fix-loongson3-llsc.
>         * configure.ac: Add --enable-mips-fix-loongson3-llsc.
>         Define DEFAULT_MIPS_FIX_LOONGSON3_LLSC.
>         * config.in: Regenerated.
>         * configure: Likewise.

Is configure patch needed here?
It seems been generated by some newer version autotools.

>         * config/tc-mips.c (sync_insn, mips_fix_loongson3_llsc):
>         New variables.
>         (options): New OPTION_FIX_LOONGSON3_LLSC,
>         OPTION_NO_FIX_LOONGSON3_LLSC.
>         (md_longopts): Add -m[no-]fix-loongson3-llsc.
>         (md_begin): Initialize sync insn.
>         (fix_loongson3_llsc): New.
>         (append_insn): Call fix_loongson3_llsc.
>         (md_parse_option): Handle OPTION_FIX_LOONGSON3_LLSC,
>         OPTION_NO_FIX_LOONGSON3_LLSC.
>         (md_show_usage): Display -m[no-]fix-loongson3-llsc.
>         * doc/c-mips.texi: Document -m[no-]fix-loongson3-llsc,
>         --enable-mips-fix-loongson3-llsc=[yes|no].

https://sourceware.org/ml/binutils/2018-01/msg00303.html
here is an older version of patch.
While somebody told me that it will generate a .fixup section.
What about this one?



More information about the Binutils mailing list