OpenCloudOS-Kernel/arch/mips/net
Jiaxun Yang 7364d60c26 bpf, mips: Implement R4000 workarounds for JIT
For R4000 erratas around multiplication and division instructions,
as our use of those instructions are always followed by mflo/mfhi
instructions, the only issue we need care is

"MIPS R4000PC/SC Errata, Processor Revision 2.2 and 3.0" Errata 28:
"A double-word or a variable shift may give an incorrect result if
executed while an integer multiplication is in progress."

We just emit a mfhi $0 to ensure the operation is completed after
every multiplication instruction according to workaround suggestion
in the document.

Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Acked-by: Johan Almbladh <johan.almbladh@anyfinetworks.com>
Link: https://lore.kernel.org/bpf/20230228113305.83751-3-jiaxun.yang@flygoat.com
2023-02-28 14:52:55 +01:00
..
Makefile bpf, mips: Clean up config options about JIT 2021-10-11 15:29:37 +02:00
bpf_jit_comp.c bpf, mips: Implement DADDI workarounds for JIT 2023-02-28 14:52:40 +01:00
bpf_jit_comp.h mips, bpf: Fix reference to non-existing Kconfig symbol 2021-11-30 17:19:36 +01:00
bpf_jit_comp32.c bpf, mips: No need to use min() to get MAX_TAIL_CALL_CNT 2022-08-29 15:38:14 +02:00
bpf_jit_comp64.c bpf, mips: Implement R4000 workarounds for JIT 2023-02-28 14:52:55 +01:00