diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2010-02-03 21:44:21 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2010-02-03 21:44:21 +0000 |
commit | f094bccdbc0b1467707677533e8287908130793b (patch) | |
tree | 7cc81f5b5a4cac5a0817d60baa2ff73d6d522ed0 /gnu/usr.bin/texinfo/makeinfo/sectioning.h | |
parent | 24d07ce9bbae3e45d13abbce36d74939d30d967d (diff) |
Add a new option to the mips64 gas, -mfix-loongson2f-btb. This option
is intended to be used when compiling kernel code which will run on a
Loongson 2E or 2F processor, and inserts an explicit BTB clear operation
before every jump through a register (jr or jalr instructions), unless
that register is k0 or k1, or we are in .set noat.
This is a reliable, although aggressive, workaround for the misbehaviour
of the branch prediction engine of many Loongson 2F processors with regard
to the Branch Translation Buffer, for which an official errata has yet
to be published, and for which the Loongson suggested workaround apparently
only works due to pipeline side effects, but requires all the executable
kernel code to be located in CKSEG0/CKSEG1.
These changes are inspired by a backport of the Loongson binutils 2.19 patch
to binutils 2.18; the idea of doing an aggressive BTB clear is mine.
This causes no functional change to code compiled without the
-mfix-loongson2f-btb option.
``looks reasonable'' kettenis@
Diffstat (limited to 'gnu/usr.bin/texinfo/makeinfo/sectioning.h')
0 files changed, 0 insertions, 0 deletions