JvmInstruction

Enum JvmInstruction 

Source
pub enum JvmInstruction {
Show 168 variants Nop, AconstNull, IconstM1, Iconst0, Iconst1, Iconst2, Iconst3, Iconst4, Iconst5, Lconst0, Lconst1, Fconst0, Fconst1, Fconst2, Dconst0, Dconst1, Bipush { value: i8, }, Sipush { value: i16, }, Ldc { symbol: String, }, LdcW { symbol: String, }, Ldc2W { symbol: String, }, Iload { index: u16, }, Lload { index: u16, }, Fload { index: u16, }, Dload { index: u16, }, Aload { index: u16, }, Iload0, Iload1, Iload2, Iload3, Lload0, Lload1, Lload2, Lload3, Fload0, Fload1, Fload2, Fload3, Dload0, Dload1, Dload2, Dload3, Aload0, Aload1, Aload2, Aload3, Istore { index: u16, }, Lstore { index: u16, }, Fstore { index: u16, }, Dstore { index: u16, }, Astore { index: u16, }, Istore0, Istore1, Istore2, Istore3, Lstore0, Lstore1, Lstore2, Lstore3, Fstore0, Fstore1, Fstore2, Fstore3, Dstore0, Dstore1, Dstore2, Dstore3, Astore0, Astore1, Astore2, Astore3, Pop, Pop2, Dup, DupX1, DupX2, Dup2, Dup2X1, Dup2X2, Swap, Iadd, Ladd, Fadd, Dadd, Isub, Lsub, Fsub, Dsub, Imul, Lmul, Fmul, Dmul, Idiv, Ldiv, Fdiv, Ddiv, Irem, Lrem, Frem, Drem, Ineg, Lneg, Fneg, Dneg, Ishl, Lshl, Ishr, Lshr, Iushr, Lushr, Iand, Land, Ior, Lor, Ixor, Lxor, Lcmp, Fcmpl, Fcmpg, Dcmpl, Dcmpg, Ifeq { target: String, }, Ifne { target: String, }, Iflt { target: String, }, Ifge { target: String, }, Ifgt { target: String, }, Ifle { target: String, }, IfIcmpeq { target: String, }, IfIcmpne { target: String, }, IfIcmplt { target: String, }, IfIcmpge { target: String, }, IfIcmpgt { target: String, }, IfIcmple { target: String, }, IfAcmpeq { target: String, }, IfAcmpne { target: String, }, Goto { target: String, }, Jsr { target: String, }, Ret { index: u16, }, Ireturn, Lreturn, Freturn, Dreturn, Areturn, Return, Getstatic { class_name: String, field_name: String, descriptor: String, }, Putstatic { class_name: String, field_name: String, descriptor: String, }, Getfield { class_name: String, field_name: String, descriptor: String, }, Putfield { class_name: String, field_name: String, descriptor: String, }, Invokevirtual { class_name: String, method_name: String, descriptor: String, }, Invokespecial { class_name: String, method_name: String, descriptor: String, }, Invokestatic { class_name: String, method_name: String, descriptor: String, }, Invokeinterface { class_name: String, method_name: String, descriptor: String, }, Invokedynamic { class_name: String, method_name: String, descriptor: String, }, New { class_name: String, }, Newarray { atype: u8, }, Anewarray { class_name: String, }, Arraylength, Athrow, Checkcast { class_name: String, }, Instanceof { class_name: String, }, Monitorenter, Monitorexit, Wide, Multianewarray { class_name: String, dimensions: u8, }, Ifnull { target: String, }, Ifnonnull { target: String, }, GotoW { target: String, }, JsrW { target: String, },
}
Expand description

JVM 指令(高层表示)

Variants§

§

Nop

§

AconstNull

§

IconstM1

§

Iconst0

§

Iconst1

§

Iconst2

§

Iconst3

§

Iconst4

§

Iconst5

§

Lconst0

§

Lconst1

§

Fconst0

§

Fconst1

§

Fconst2

§

Dconst0

§

Dconst1

§

Bipush

Fields

§value: i8
§

Sipush

Fields

§value: i16
§

Ldc

Fields

§symbol: String
§

LdcW

Fields

§symbol: String
§

Ldc2W

Fields

§symbol: String
§

Iload

Fields

§index: u16
§

Lload

Fields

§index: u16
§

Fload

Fields

§index: u16
§

Dload

Fields

§index: u16
§

Aload

Fields

§index: u16
§

Iload0

§

Iload1

§

Iload2

§

Iload3

§

Lload0

§

Lload1

§

Lload2

§

Lload3

§

Fload0

§

Fload1

§

Fload2

§

Fload3

§

Dload0

§

Dload1

§

Dload2

§

Dload3

§

Aload0

§

Aload1

§

Aload2

§

Aload3

§

Istore

Fields

§index: u16
§

Lstore

Fields

§index: u16
§

Fstore

Fields

§index: u16
§

Dstore

Fields

§index: u16
§

Astore

Fields

§index: u16
§

Istore0

§

Istore1

§

Istore2

§

Istore3

§

Lstore0

§

Lstore1

§

Lstore2

§

Lstore3

§

Fstore0

§

Fstore1

§

Fstore2

§

Fstore3

§

Dstore0

§

Dstore1

§

Dstore2

§

Dstore3

§

Astore0

§

Astore1

§

Astore2

§

Astore3

§

Pop

§

Pop2

§

Dup

§

DupX1

§

DupX2

§

Dup2

§

Dup2X1

§

Dup2X2

§

Swap

§

Iadd

§

Ladd

§

Fadd

§

Dadd

§

Isub

§

Lsub

§

Fsub

§

Dsub

§

Imul

§

Lmul

§

Fmul

§

Dmul

§

Idiv

§

Ldiv

§

Fdiv

§

Ddiv

§

Irem

§

Lrem

§

Frem

§

Drem

§

Ineg

§

Lneg

§

Fneg

§

Dneg

§

Ishl

§

Lshl

§

Ishr

§

Lshr

§

Iushr

§

Lushr

§

Iand

§

Land

§

Ior

§

Lor

§

Ixor

§

Lxor

§

Lcmp

§

Fcmpl

§

Fcmpg

§

Dcmpl

§

Dcmpg

§

Ifeq

Fields

§target: String
§

Ifne

Fields

§target: String
§

Iflt

Fields

§target: String
§

Ifge

Fields

§target: String
§

Ifgt

Fields

§target: String
§

Ifle

Fields

§target: String
§

IfIcmpeq

Fields

§target: String
§

IfIcmpne

Fields

§target: String
§

IfIcmplt

Fields

§target: String
§

IfIcmpge

Fields

§target: String
§

IfIcmpgt

Fields

§target: String
§

IfIcmple

Fields

§target: String
§

IfAcmpeq

Fields

§target: String
§

IfAcmpne

Fields

§target: String
§

Goto

Fields

§target: String
§

Jsr

Fields

§target: String
§

Ret

Fields

§index: u16
§

Ireturn

§

Lreturn

§

Freturn

§

Dreturn

§

Areturn

§

Return

§

Getstatic

Fields

§class_name: String
§field_name: String
§descriptor: String
§

Putstatic

Fields

§class_name: String
§field_name: String
§descriptor: String
§

Getfield

Fields

§class_name: String
§field_name: String
§descriptor: String
§

Putfield

Fields

§class_name: String
§field_name: String
§descriptor: String
§

Invokevirtual

Fields

§class_name: String
§method_name: String
§descriptor: String
§

Invokespecial

Fields

§class_name: String
§method_name: String
§descriptor: String
§

Invokestatic

Fields

§class_name: String
§method_name: String
§descriptor: String
§

Invokeinterface

Fields

§class_name: String
§method_name: String
§descriptor: String
§

Invokedynamic

Fields

§class_name: String
§method_name: String
§descriptor: String
§

New

Fields

§class_name: String
§

Newarray

Fields

§atype: u8
§

Anewarray

Fields

§class_name: String
§

Arraylength

§

Athrow

§

Checkcast

Fields

§class_name: String
§

Instanceof

Fields

§class_name: String
§

Monitorenter

§

Monitorexit

§

Wide

§

Multianewarray

Fields

§class_name: String
§dimensions: u8
§

Ifnull

Fields

§target: String
§

Ifnonnull

Fields

§target: String
§

GotoW

Fields

§target: String
§

JsrW

Fields

§target: String

Implementations§

Source§

impl JvmInstruction

Source

pub fn to_byte(&self) -> u8

获取指令的字节码值

Trait Implementations§

Source§

impl Clone for JvmInstruction

Source§

fn clone(&self) -> JvmInstruction

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for JvmInstruction

Source§

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

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

impl PartialEq for JvmInstruction

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for JvmInstruction

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<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<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> 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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

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