[][src]Enum quake3_qvm::bytecode::Instruction

pub enum Instruction {
    UNDEF,
    IGNORE,
    BREAK,
    ENTER(FrameSize),
    LEAVE(FrameSize),
    CALL,
    PUSH,
    POP,
    CONST(Literal),
    LOCAL(FrameOffset),
    JUMP,
    EQ(Address),
    NE(Address),
    LTI(Address),
    LEI(Address),
    GTI(Address),
    GEI(Address),
    LTU(Address),
    LEU(Address),
    GTU(Address),
    GEU(Address),
    EQF(Address),
    NEF(Address),
    LTF(Address),
    LEF(Address),
    GTF(Address),
    GEF(Address),
    LOAD1,
    LOAD2,
    LOAD4,
    STORE1,
    STORE2,
    STORE4,
    ARG(ArgOffset),
    BLOCK_COPY(BlockSize),
    SEX8,
    SEX16,
    NEGI,
    ADD,
    SUB,
    DIVI,
    DIVU,
    MODI,
    MODU,
    MULI,
    MULU,
    BAND,
    BOR,
    BXOR,
    BCOM,
    LSH,
    RSHI,
    RSHU,
    NEGF,
    ADDF,
    SUBF,
    DIVF,
    MULF,
    CVIF,
    CVFI,
}

A QVM instruction.

Variants

UNDEF

Undefined instruction.

Used for padding the code segment. Should not occur at runtime.

IGNORE

No-operation (NOP).

BREAK

Software breakpoint.

ENTER(FrameSize)

Enter a procedure, adjusting stack.

LEAVE(FrameSize)

Leave a procedure, adjusting stack.

CALL

Call a procedure.

PUSH

Push stack.

POP

Pop stack.

CONST(Literal)

Push constant onto stack.

Get address of frame local variable or argument.

JUMP

Jump to top of stack.

Check (signed integer) equality, jump to Address if true.

Check (signed integer) inequality, jump to Address if true.

LTI(Address)

Check (signed integer) less-than, jump to Address if true.

LEI(Address)

Check (signed integer) less-than or equal-to, jump to Address if true.

GTI(Address)

Check (signed integer) greater-than, jump to Address if true.

GEI(Address)

Check (signed integer) greater-than or equal-to, jump to Address if true.

LTU(Address)

Check (unsigned integer) less-than, jump to Address if true.

LEU(Address)

Check (unsigned integer) less-than or equal-to, jump to Address if true.

GTU(Address)

Check (unsigned integer) greater-than, jump to Address if true.

GEU(Address)

Check (unsigned integer) greater-than or equal-to, jump to Address if true.

EQF(Address)

Check (float) equality, jump to Address if true.

NEF(Address)

Check (float) inequality, jump to Address if true.

LTF(Address)

Check (float) less-than, jump to Address if true.

LEF(Address)

Check (float) less-than or equal-to, jump to Address if true.

GTF(Address)

Check (float) greater-than, jump to Address if true.

GEF(Address)

Check (float) greater-than or equal-to, jump to Address if true.

LOAD1

Load 1-octet value.

LOAD2

Load 2-octet value.

LOAD4

Load 4-octet value.

STORE1

Store 1-octet value.

STORE2

Store 2-octet value.

STORE4

Store 4-octet value.

Store value into marshalling space.

BLOCK_COPY(BlockSize)

Copy a block of memory.

SEX8

Sign-extend 8-bit.

SEX16

Sign-extend 16-bit.

NEGI

Negate (signed integer).

ADD

Add.

SUB

Subtract.

DIVI

Divide (signed integer).

DIVU

Divide (unsigned integer).

MODI

Modulo (signed integer).

MODU

Modulo (unsigned integer).

MULI

Multiply (signed integer).

MULU

Multiply (unsigned integer).

BAND

Bitwise AND.

BOR

Bitwise OR.

BXOR

Bitwise XOR.

BCOM

Bitwise complement.

LSH

Bitwise left-shift.

RSHI

Algebraic (signed) right-shift.

RSHU

Bitwise (unsigned) right-shift.

NEGF

Negate (float).

ADDF

Add (float).

SUBF

Subtract (float).

DIVF

Divide (float).

MULF

Multiply (float).

CVIF

Convert signed integer to float.

CVFI

Convert float to signed integer.

Trait Implementations

impl Clone for Instruction[src]

impl Copy for Instruction[src]

impl Debug for Instruction[src]

impl PartialEq<Instruction> for Instruction[src]

impl StructuralPartialEq for Instruction[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.