pub enum Opcode {
Show 138 variants
Lddw,
Ldxb,
Ldxh,
Ldxw,
Ldxdw,
Stb,
Sth,
Stw,
Stdw,
Stxb,
Stxh,
Stxw,
Stxdw,
Add32Imm,
Add32Reg,
Sub32Imm,
Sub32Reg,
Mul32Imm,
Mul32Reg,
Div32Imm,
Div32Reg,
Or32Imm,
Or32Reg,
And32Imm,
And32Reg,
Lsh32Imm,
Lsh32Reg,
Rsh32Imm,
Rsh32Reg,
Mod32Imm,
Mod32Reg,
Xor32Imm,
Xor32Reg,
Mov32Imm,
Mov32Reg,
Arsh32Imm,
Arsh32Reg,
Lmul32Imm,
Lmul32Reg,
Udiv32Imm,
Udiv32Reg,
Urem32Imm,
Urem32Reg,
Sdiv32Imm,
Sdiv32Reg,
Srem32Imm,
Srem32Reg,
Le,
Be,
Add64Imm,
Add64Reg,
Sub64Imm,
Sub64Reg,
Mul64Imm,
Mul64Reg,
Div64Imm,
Div64Reg,
Or64Imm,
Or64Reg,
And64Imm,
And64Reg,
Lsh64Imm,
Lsh64Reg,
Rsh64Imm,
Rsh64Reg,
Mod64Imm,
Mod64Reg,
Xor64Imm,
Xor64Reg,
Mov64Imm,
Mov64Reg,
Arsh64Imm,
Arsh64Reg,
Hor64Imm,
Lmul64Imm,
Lmul64Reg,
Uhmul64Imm,
Uhmul64Reg,
Udiv64Imm,
Udiv64Reg,
Urem64Imm,
Urem64Reg,
Shmul64Imm,
Shmul64Reg,
Sdiv64Imm,
Sdiv64Reg,
Srem64Imm,
Srem64Reg,
Neg32,
Neg64,
Ja,
JeqImm,
JeqReg,
JgtImm,
JgtReg,
JgeImm,
JgeReg,
JltImm,
JltReg,
JleImm,
JleReg,
JsetImm,
JsetReg,
JneImm,
JneReg,
JsgtImm,
JsgtReg,
JsgeImm,
JsgeReg,
JsltImm,
JsltReg,
JsleImm,
JsleReg,
Jeq32Imm,
Jeq32Reg,
Jgt32Imm,
Jgt32Reg,
Jge32Imm,
Jge32Reg,
Jlt32Imm,
Jlt32Reg,
Jle32Imm,
Jle32Reg,
Jset32Imm,
Jset32Reg,
Jne32Imm,
Jne32Reg,
Jsgt32Imm,
Jsgt32Reg,
Jsge32Imm,
Jsge32Reg,
Jslt32Imm,
Jslt32Reg,
Jsle32Imm,
Jsle32Reg,
Call,
Callx,
Exit,
}Variants§
Lddw
Ldxb
Ldxh
Ldxw
Ldxdw
Stb
Sth
Stw
Stdw
Stxb
Stxh
Stxw
Stxdw
Add32Imm
Add32Reg
Sub32Imm
Sub32Reg
Mul32Imm
Mul32Reg
Div32Imm
Div32Reg
Or32Imm
Or32Reg
And32Imm
And32Reg
Lsh32Imm
Lsh32Reg
Rsh32Imm
Rsh32Reg
Mod32Imm
Mod32Reg
Xor32Imm
Xor32Reg
Mov32Imm
Mov32Reg
Arsh32Imm
Arsh32Reg
Lmul32Imm
Lmul32Reg
Udiv32Imm
Udiv32Reg
Urem32Imm
Urem32Reg
Sdiv32Imm
Sdiv32Reg
Srem32Imm
Srem32Reg
Le
Be
Add64Imm
Add64Reg
Sub64Imm
Sub64Reg
Mul64Imm
Mul64Reg
Div64Imm
Div64Reg
Or64Imm
Or64Reg
And64Imm
And64Reg
Lsh64Imm
Lsh64Reg
Rsh64Imm
Rsh64Reg
Mod64Imm
Mod64Reg
Xor64Imm
Xor64Reg
Mov64Imm
Mov64Reg
Arsh64Imm
Arsh64Reg
Hor64Imm
Lmul64Imm
Lmul64Reg
Uhmul64Imm
Uhmul64Reg
Udiv64Imm
Udiv64Reg
Urem64Imm
Urem64Reg
Shmul64Imm
Shmul64Reg
Sdiv64Imm
Sdiv64Reg
Srem64Imm
Srem64Reg
Neg32
Neg64
Ja
JeqImm
JeqReg
JgtImm
JgtReg
JgeImm
JgeReg
JltImm
JltReg
JleImm
JleReg
JsetImm
JsetReg
JneImm
JneReg
JsgtImm
JsgtReg
JsgeImm
JsgeReg
JsltImm
JsltReg
JsleImm
JsleReg
Jeq32Imm
Jeq32Reg
Jgt32Imm
Jgt32Reg
Jge32Imm
Jge32Reg
Jlt32Imm
Jlt32Reg
Jle32Imm
Jle32Reg
Jset32Imm
Jset32Reg
Jne32Imm
Jne32Reg
Jsgt32Imm
Jsgt32Reg
Jsge32Imm
Jsge32Reg
Jslt32Imm
Jslt32Reg
Jsle32Imm
Jsle32Reg
Call
Callx
Exit
Implementations§
Source§impl Opcode
impl Opcode
Sourcepub fn try_from_sbpf_v3(opcode: u8) -> Result<Self, SBPFError>
pub fn try_from_sbpf_v3(opcode: u8) -> Result<Self, SBPFError>
Decode opcode byte with sBPF v3 semantics.
pub fn to_str(&self) -> &'static str
pub fn from_size(size: &str, kind: MemOpKind) -> Option<Opcode>
pub fn to_size(&self) -> Option<&'static str>
pub fn to_operator(&self) -> Option<&'static str>
pub fn is_32bit(&self) -> bool
Trait Implementations§
impl Copy for Opcode
Source§impl<'de> Deserialize<'de> for Opcode
impl<'de> Deserialize<'de> for Opcode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl Eq for Opcode
Source§impl FromPrimitive for Opcode
impl FromPrimitive for Opcode
Source§fn from_i64(n: i64) -> Option<Self>
fn from_i64(n: i64) -> Option<Self>
Converts an
i64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u64(n: u64) -> Option<Self>
fn from_u64(n: u64) -> Option<Self>
Converts an
u64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
Converts an
isize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
Converts an
i8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
Converts an
i16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
Converts an
i32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
Converts an
i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
Converts a
usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
Converts an
u8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
Converts an
u16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
Converts an
u32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
Converts an
u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreimpl StructuralPartialEq for Opcode
Auto Trait Implementations§
impl Freeze for Opcode
impl RefUnwindSafe for Opcode
impl Send for Opcode
impl Sync for Opcode
impl Unpin for Opcode
impl UnsafeUnpin for Opcode
impl UnwindSafe for Opcode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more