Commit fb213ecb authored by Yonghong Song's avatar Yonghong Song Committed by Alexei Starovoitov

docs/bpf: Fix malformed documentation

Two issues are fixed:
  1. Malformed table due to newly-introduced BPF_MOVSX
  2. Missing reference link for ``Sign-extension load operations``

Fixes: 245d4c40 ("docs/bpf: Add documentation for new instructions")
Cc: bpf@ietf.org
Reported-by: default avatarkernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202307291840.Cqhj7uox-lkp@intel.com/Signed-off-by: default avatarYonghong Song <yonghong.song@linux.dev>
Link: https://lore.kernel.org/r/20230730004251.381307-1-yonghong.song@linux.devSigned-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
parent eb03993a
...@@ -154,27 +154,27 @@ otherwise identical operations. ...@@ -154,27 +154,27 @@ otherwise identical operations.
The 'code' field encodes the operation as below, where 'src' and 'dst' refer The 'code' field encodes the operation as below, where 'src' and 'dst' refer
to the values of the source and destination registers, respectively. to the values of the source and destination registers, respectively.
======== ===== ======= ========================================================== ========= ===== ======= ==========================================================
code value offset description code value offset description
======== ===== ======= ========================================================== ========= ===== ======= ==========================================================
BPF_ADD 0x00 0 dst += src BPF_ADD 0x00 0 dst += src
BPF_SUB 0x10 0 dst -= src BPF_SUB 0x10 0 dst -= src
BPF_MUL 0x20 0 dst \*= src BPF_MUL 0x20 0 dst \*= src
BPF_DIV 0x30 0 dst = (src != 0) ? (dst / src) : 0 BPF_DIV 0x30 0 dst = (src != 0) ? (dst / src) : 0
BPF_SDIV 0x30 1 dst = (src != 0) ? (dst s/ src) : 0 BPF_SDIV 0x30 1 dst = (src != 0) ? (dst s/ src) : 0
BPF_OR 0x40 0 dst \|= src BPF_OR 0x40 0 dst \|= src
BPF_AND 0x50 0 dst &= src BPF_AND 0x50 0 dst &= src
BPF_LSH 0x60 0 dst <<= (src & mask) BPF_LSH 0x60 0 dst <<= (src & mask)
BPF_RSH 0x70 0 dst >>= (src & mask) BPF_RSH 0x70 0 dst >>= (src & mask)
BPF_NEG 0x80 0 dst = -dst BPF_NEG 0x80 0 dst = -dst
BPF_MOD 0x90 0 dst = (src != 0) ? (dst % src) : dst BPF_MOD 0x90 0 dst = (src != 0) ? (dst % src) : dst
BPF_SMOD 0x90 1 dst = (src != 0) ? (dst s% src) : dst BPF_SMOD 0x90 1 dst = (src != 0) ? (dst s% src) : dst
BPF_XOR 0xa0 0 dst ^= src BPF_XOR 0xa0 0 dst ^= src
BPF_MOV 0xb0 0 dst = src BPF_MOV 0xb0 0 dst = src
BPF_MOVSX 0xb0 8/16/32 dst = (s8,s16,s32)src BPF_MOVSX 0xb0 8/16/32 dst = (s8,s16,s32)src
BPF_ARSH 0xc0 0 sign extending dst >>= (src & mask) BPF_ARSH 0xc0 0 sign extending dst >>= (src & mask)
BPF_END 0xd0 0 byte swap operations (see `Byte swap instructions`_ below) BPF_END 0xd0 0 byte swap operations (see `Byte swap instructions`_ below)
======== ===== ======= ========================================================== ========= ===== ======= ==========================================================
Underflow and overflow are allowed during arithmetic operations, meaning Underflow and overflow are allowed during arithmetic operations, meaning
the 64-bit or 32-bit value will wrap. If eBPF program execution would the 64-bit or 32-bit value will wrap. If eBPF program execution would
...@@ -397,6 +397,9 @@ instructions that transfer data between a register and memory. ...@@ -397,6 +397,9 @@ instructions that transfer data between a register and memory.
Where size is one of: ``BPF_B``, ``BPF_H``, ``BPF_W``, or ``BPF_DW`` and Where size is one of: ``BPF_B``, ``BPF_H``, ``BPF_W``, or ``BPF_DW`` and
'unsigned size' is one of u8, u16, u32 or u64. 'unsigned size' is one of u8, u16, u32 or u64.
Sign-extension load operations
------------------------------
The ``BPF_MEMSX`` mode modifier is used to encode sign-extension load The ``BPF_MEMSX`` mode modifier is used to encode sign-extension load
instructions that transfer data between a register and memory. instructions that transfer data between a register and memory.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment