Module Name: src Committed By: bouyer Date: Sat Aug 27 13:19:39 UTC 2011
Modified Files: src/external/gpl3/binutils/dist/gas/config: tc-mips.c src/external/gpl3/binutils/dist/gas/doc: c-mips.texi src/external/gpl3/binutils/dist/include/opcode: mips.h src/external/gpl3/binutils/dist/opcodes: mips-opc.c Log Message: Add a fix-loongson2f-btb option to gas, from OpenBSD. This works around a bug in the branch prediction logic of the CPU which can cause a hard hang. The existing fix-loongson2f-jump works around the same bug, but by 'fixing' the jump target to be within the same 256MB region as the kernel. This will (silently) cause a jump to the wrong address if the jump is intentionally to some other region (e.g. a call to pmon). fix-loongson2f-btb instead works around the issue by adding an explicit flush of the branch target buffer (via a write to a cop0 register) before every jump register instruction. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/binutils/dist/gas/config/tc-mips.c cvs rdiff -u -r1.3 -r1.4 src/external/gpl3/binutils/dist/gas/doc/c-mips.texi cvs rdiff -u -r1.3 -r1.4 \ src/external/gpl3/binutils/dist/include/opcode/mips.h cvs rdiff -u -r1.5 -r1.6 src/external/gpl3/binutils/dist/opcodes/mips-opc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.