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

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

Undefined instruction.

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

No-operation (NOP).

Software breakpoint.

Enter a procedure, adjusting stack.

Leave a procedure, adjusting stack.

Call a procedure.

Push stack.

Pop stack.

Push constant onto stack.

Get address of frame local variable or argument.

Jump to top of stack.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Load 1-octet value.

Load 2-octet value.

Load 4-octet value.

Store 1-octet value.

Store 2-octet value.

Store 4-octet value.

Store value into marshalling space.

Copy a block of memory.

Sign-extend 8-bit.

Sign-extend 16-bit.

Negate (signed integer).

Add.

Subtract.

Divide (signed integer).

Divide (unsigned integer).

Modulo (signed integer).

Modulo (unsigned integer).

Multiply (signed integer).

Multiply (unsigned integer).

Bitwise AND.

Bitwise OR.

Bitwise XOR.

Bitwise complement.

Bitwise left-shift.

Algebraic (signed) right-shift.

Bitwise (unsigned) right-shift.

Negate (float).

Add (float).

Subtract (float).

Divide (float).

Multiply (float).

Convert signed integer to float.

Convert float to signed integer.

Trait Implementations

impl Debug for Instruction
[src]

Formats the value using the given formatter.

impl PartialEq for Instruction
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.