Trait ckb_vm::instructions::Register
source · pub trait Register: Sized + Clone + Default + Display + Not<Output = Self> + BitAnd<Output = Self> + BitOr<Output = Self> + BitXor<Output = Self> + Shl<Self, Output = Self> + Shr<Self, Output = Self> {
const BITS: u8;
const SHIFT_MASK: u8;
Show 52 methods
// Required methods
fn zero() -> Self;
fn one() -> Self;
fn min_value() -> Self;
fn max_value() -> Self;
fn eq(&self, other: &Self) -> Self;
fn lt(&self, other: &Self) -> Self;
fn lt_s(&self, other: &Self) -> Self;
fn logical_not(&self) -> Self;
fn cond(&self, true_value: &Self, false_value: &Self) -> Self;
fn overflowing_add(&self, rhs: &Self) -> Self;
fn overflowing_sub(&self, rhs: &Self) -> Self;
fn overflowing_mul(&self, rhs: &Self) -> Self;
fn overflowing_div(&self, rhs: &Self) -> Self;
fn overflowing_rem(&self, rhs: &Self) -> Self;
fn overflowing_div_signed(&self, rhs: &Self) -> Self;
fn overflowing_rem_signed(&self, rhs: &Self) -> Self;
fn overflowing_mul_high_signed(&self, rhs: &Self) -> Self;
fn overflowing_mul_high_unsigned(&self, rhs: &Self) -> Self;
fn overflowing_mul_high_signed_unsigned(&self, rhs: &Self) -> Self;
fn clz(&self) -> Self;
fn ctz(&self) -> Self;
fn cpop(&self) -> Self;
fn clmul(&self, rhs: &Self) -> Self;
fn clmulh(&self, rhs: &Self) -> Self;
fn clmulr(&self, rhs: &Self) -> Self;
fn orcb(&self) -> Self;
fn rev8(&self) -> Self;
fn signed_shl(&self, rhs: &Self) -> Self;
fn signed_shr(&self, rhs: &Self) -> Self;
fn rol(&self, rhs: &Self) -> Self;
fn ror(&self, rhs: &Self) -> Self;
fn zero_extend(&self, start_bit: &Self) -> Self;
fn sign_extend(&self, start_bit: &Self) -> Self;
fn to_i8(&self) -> i8;
fn to_i16(&self) -> i16;
fn to_i32(&self) -> i32;
fn to_i64(&self) -> i64;
fn to_u8(&self) -> u8;
fn to_u16(&self) -> u16;
fn to_u32(&self) -> u32;
fn to_u64(&self) -> u64;
fn from_i8(v: i8) -> Self;
fn from_i16(v: i16) -> Self;
fn from_i32(v: i32) -> Self;
fn from_i64(v: i64) -> Self;
fn from_u8(v: u8) -> Self;
fn from_u16(v: u16) -> Self;
fn from_u32(v: u32) -> Self;
fn from_u64(v: u64) -> Self;
// Provided methods
fn ne(&self, rhs: &Self) -> Self { ... }
fn ge(&self, other: &Self) -> Self { ... }
fn ge_s(&self, other: &Self) -> Self { ... }
}
Required Associated Constants§
Required Methods§
fn zero() -> Self
fn one() -> Self
fn min_value() -> Self
fn max_value() -> Self
fn eq(&self, other: &Self) -> Self
fn lt(&self, other: &Self) -> Self
fn lt_s(&self, other: &Self) -> Self
fn logical_not(&self) -> Self
fn cond(&self, true_value: &Self, false_value: &Self) -> Self
fn overflowing_add(&self, rhs: &Self) -> Self
fn overflowing_sub(&self, rhs: &Self) -> Self
fn overflowing_mul(&self, rhs: &Self) -> Self
fn overflowing_div(&self, rhs: &Self) -> Self
fn overflowing_rem(&self, rhs: &Self) -> Self
fn overflowing_div_signed(&self, rhs: &Self) -> Self
fn overflowing_rem_signed(&self, rhs: &Self) -> Self
fn overflowing_mul_high_signed(&self, rhs: &Self) -> Self
fn overflowing_mul_high_unsigned(&self, rhs: &Self) -> Self
fn overflowing_mul_high_signed_unsigned(&self, rhs: &Self) -> Self
fn clz(&self) -> Self
fn ctz(&self) -> Self
fn cpop(&self) -> Self
fn clmul(&self, rhs: &Self) -> Self
fn clmulh(&self, rhs: &Self) -> Self
fn clmulr(&self, rhs: &Self) -> Self
fn orcb(&self) -> Self
fn rev8(&self) -> Self
fn signed_shl(&self, rhs: &Self) -> Self
fn signed_shr(&self, rhs: &Self) -> Self
fn rol(&self, rhs: &Self) -> Self
fn ror(&self, rhs: &Self) -> Self
fn zero_extend(&self, start_bit: &Self) -> Self
fn sign_extend(&self, start_bit: &Self) -> Self
fn to_i8(&self) -> i8
fn to_i16(&self) -> i16
fn to_i32(&self) -> i32
fn to_i64(&self) -> i64
fn to_u8(&self) -> u8
fn to_u16(&self) -> u16
fn to_u32(&self) -> u32
fn to_u64(&self) -> u64
fn from_i8(v: i8) -> Self
fn from_i16(v: i16) -> Self
fn from_i32(v: i32) -> Self
fn from_i64(v: i64) -> Self
fn from_u8(v: u8) -> Self
fn from_u16(v: u16) -> Self
fn from_u32(v: u32) -> Self
fn from_u64(v: u64) -> Self
Provided Methods§
fn ne(&self, rhs: &Self) -> Self
fn ge(&self, other: &Self) -> Self
fn ge_s(&self, other: &Self) -> Self
Object Safety§
This trait is not object safe.