Skip to main content

PseudoOpcode

Enum PseudoOpcode 

Source
#[repr(u16)]
pub enum PseudoOpcode { AnnotationsPlaceholder = 256, Jump = 257, JumpIfFalse = 258, JumpIfTrue = 259, JumpNoInterrupt = 260, LoadClosure = 261, PopBlock = 262, SetupCleanup = 263, SetupFinally = 264, SetupWith = 265, StoreFastMaybeNull = 266, }

Variants§

§

AnnotationsPlaceholder = 256

§

Jump = 257

§

JumpIfFalse = 258

§

JumpIfTrue = 259

§

JumpNoInterrupt = 260

§

LoadClosure = 261

§

PopBlock = 262

§

SetupCleanup = 263

§

SetupFinally = 264

§

SetupWith = 265

§

StoreFastMaybeNull = 266

Implementations§

Source§

impl PseudoOpcode

Source

pub const fn as_instruction(&self) -> PseudoInstruction

Converts this opcode to PseudoInstruction.

Source

pub const fn deoptimize(self) -> PseudoOpcode

Map a specialized or instrumented opcode back to its adaptive (base) variant.

Source§

impl PseudoOpcode

Source

pub const fn is_block_push(&self) -> bool

Source

pub const fn is_scope_exit(&self) -> bool

Source

pub const fn is_unconditional_jump(&self) -> bool

Source

pub const fn is_assembler(&self) -> bool

Source

pub const fn is_terminator(&self) -> bool

CPython’s IS_TERMINATOR_OPCODE.

Source

pub const fn is_no_fallthrough(&self) -> bool

CPython’s IS_SCOPE_EXIT_OPCODE || IS_UNCONDITIONAL_JUMP_OPCODE.

Source

pub const fn has_target(&self) -> bool

CPython’s HAS_TARGET.

Source

pub fn stack_effect(&self, oparg: u32) -> i32

flowgraph.c get_stack_effects block-push non-jump case.

Source

pub fn stack_effect_jump(&self, oparg: u32) -> i32

Handler entry effect for SETUP_* pseudo ops.

Fallthrough effect is 0 (NOPs), but when the branch is taken the handler block starts with extra values on the stack: SETUP_FINALLY: +1 (exc) SETUP_CLEANUP: +2 (lasti + exc) SETUP_WITH: +1 (pops enter result, pushes lasti + exc)

Source§

impl PseudoOpcode

Source

pub const fn as_u16(self) -> u16

Returns Self as u16.

Source

pub const fn cache_entries(self) -> usize

Source

pub const fn deopt(self) -> Option<PseudoOpcode>

Source

pub const fn has_arg(self) -> bool

Does this opcode have ‘HAS_ARG_FLAG’ set.

Source

pub const fn has_const(self) -> bool

Does this opcode have ‘HAS_CONST_FLAG’ set.

Source

pub const fn has_eval_break(self) -> bool

Does this opcode have ‘HAS_EVAL_BREAK_FLAG’ set.

Source

pub const fn has_free(self) -> bool

Does this opcode have ‘HAS_FREE_FLAG’ set.

Source

pub const fn has_jump(self) -> bool

Does this opcode have ‘HAS_JUMP_FLAG’ set.

Source

pub const fn has_local(self) -> bool

Does this opcode have ‘HAS_LOCAL_FLAG’ set.

Source

pub const fn has_name(self) -> bool

Does this opcode have ‘HAS_NAME_FLAG’ set.

Source

pub const fn is_instrumented(self) -> bool

Source

pub fn stack_effect_info(&self, _oparg: u32) -> StackEffect

Source

pub const fn to_base(self) -> Option<PseudoOpcode>

Source

pub const fn to_instrumented(self) -> Option<PseudoOpcode>

Source

pub const fn try_from_u16(value: u16) -> Result<PseudoOpcode, MarshalError>

Trait Implementations§

Source§

impl Clone for PseudoOpcode

Source§

fn clone(&self) -> PseudoOpcode

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PseudoOpcode

Source§

impl Debug for PseudoOpcode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Eq for PseudoOpcode

Source§

impl From<PseudoInstruction> for PseudoOpcode

Source§

fn from(instr: PseudoInstruction) -> PseudoOpcode

Converts to this type from the input type.
Source§

impl From<PseudoOpcode> for PseudoInstruction

Source§

fn from(opcode: PseudoOpcode) -> PseudoInstruction

Converts to this type from the input type.
Source§

impl From<PseudoOpcode> for AnyInstruction

Source§

fn from(value: PseudoOpcode) -> AnyInstruction

Converts to this type from the input type.
Source§

impl From<PseudoOpcode> for AnyOpcode

Source§

fn from(value: PseudoOpcode) -> AnyOpcode

Converts to this type from the input type.
Source§

impl PartialEq for PseudoOpcode

Source§

fn eq(&self, other: &PseudoOpcode) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PseudoOpcode

Source§

impl TryFrom<u16> for PseudoOpcode

Source§

type Error = MarshalError

The type returned in the event of a conversion error.
Source§

fn try_from( value: u16, ) -> Result<PseudoOpcode, <PseudoOpcode as TryFrom<u16>>::Error>

Performs the conversion.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T, U> ExactFrom<T> for U
where U: TryFrom<T>,

Source§

fn exact_from(value: T) -> U

Source§

impl<T, U> ExactInto<U> for T
where U: ExactFrom<T>,

Source§

fn exact_into(self) -> U

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Helper for T

Source§

impl<T, U> ImaginaryInto<U> for T
where U: ImaginaryFrom<T>,

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> OverflowingInto<U> for T
where U: OverflowingFrom<T>,

Source§

impl<T> PrimitiveIntRandomBounds for T

Source§

impl<T> PrimitiveSignedRandomBounds for T

Source§

impl<T> PyThreadingConstraint for T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> RoundingInto<U> for T
where U: RoundingFrom<T>,

Source§

impl<T, U> SaturatingInto<U> for T
where U: SaturatingFrom<T>,

Source§

impl<T> ToDebugString for T
where T: Debug,

Source§

fn to_debug_string(&self) -> String

Returns the String produced by Ts Debug implementation.

§Examples
use malachite_base::strings::ToDebugString;

assert_eq!([1, 2, 3].to_debug_string(), "[1, 2, 3]");
assert_eq!(
    [vec![2, 3], vec![], vec![4]].to_debug_string(),
    "[[2, 3], [], [4]]"
);
assert_eq!(Some(5).to_debug_string(), "Some(5)");
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T, U> WrappingInto<U> for T
where U: WrappingFrom<T>,

Source§

fn wrapping_into(self) -> U