Update rbpf's behaviour for operations that include potential divisions by zero (32-bit and 64-bit division and modulo operations from immediate or register). The new behaviour is as follows:
Dividing by zero means setting the destination register to zero.
Taking the modulo of a division by zero means leaving the destination register unchanged.
This updated behaviour is aligned on what Linux does, and on what the (in-progress) eBPF specification requires.
Update the interpreter and the JIT accordingly, update the verifier, update the tests, and enable the relevant conformance tests in the GitHub workflow.
Update rbpf's behaviour for operations that include potential divisions by zero (32-bit and 64-bit division and modulo operations from immediate or register). The new behaviour is as follows:
This updated behaviour is aligned on what Linux does, and on what the (in-progress) eBPF specification requires.
Update the interpreter and the JIT accordingly, update the verifier, update the tests, and enable the relevant conformance tests in the GitHub workflow.
Fixes: #53 Fixes: #54 Fixes: #56