Enum rsim::processor::decode::InstructionBits[][src]

pub enum InstructionBits {
    RType {
        rd: u8,
        funct3: u8,
        rs1: u8,
        rs2: u8,
        funct7: u8,
    },
    IType {
        rd: u8,
        funct3: u8,
        rs1: u8,
        imm: Imm,
    },
    ROrIType {
        rd: u8,
        funct3: u8,
        rs1: u8,
        rs2: u8,
        funct7: u8,
        imm: Imm,
    },
    SType {
        funct3: u8,
        rs1: u8,
        rs2: u8,
        imm: Imm,
    },
    UType {
        rd: u8,
        imm: Imm,
    },
    JType {
        rd: u8,
        imm: Imm,
    },
    BType {
        funct3: u8,
        rs1: u8,
        rs2: u8,
        imm: Imm,
    },
    VType {
        funct3: u8,
        rs1: u8,
        rs2: u8,
        rd: u8,
        funct6: u8,
        vm: bool,
        zimm11: u16,
        zimm10: u16,
    },
    FLdStType {
        rd: u8,
        width: u8,
        rs1: u8,
        rs2: u8,
        funct7: u8,
        vm: bool,
        mew: bool,
        mop: u8,
        nf: u8,
    },
}

TODO - Right now this does sign extension up to 32-bits. These should really all be 64-bit, now that we could be decoding 32 or 64-bit instructions. TODO - Make each of these a separate struct? Then we can combine variants in enums, e.g. type ROrIType = (RType, IType).

Variants

RType
Show fields

Fields of RType

rd: u8funct3: u8rs1: u8rs2: u8funct7: u8
IType
Show fields

Fields of IType

rd: u8funct3: u8rs1: u8imm: Imm
ROrIType
Show fields

Fields of ROrIType

rd: u8funct3: u8rs1: u8rs2: u8funct7: u8imm: Imm
SType
Show fields

Fields of SType

funct3: u8rs1: u8rs2: u8imm: Imm
UType
Show fields

Fields of UType

rd: u8imm: Imm
JType
Show fields

Fields of JType

rd: u8imm: Imm
BType
Show fields

Fields of BType

funct3: u8rs1: u8rs2: u8imm: Imm
VType
Show fields

Fields of VType

funct3: u8rs1: u8rs2: u8rd: u8funct6: u8vm: boolzimm11: u16zimm10: u16
FLdStType
Show fields

Fields of FLdStType

rd: u8width: u8rs1: u8rs2: u8funct7: u8vm: boolmew: boolmop: u8nf: u8

Implementations

impl InstructionBits[src]

Trait Implementations

impl Clone for InstructionBits[src]

impl Debug for InstructionBits[src]

impl Copy for InstructionBits[src]

Auto Trait Implementations

impl RefUnwindSafe for InstructionBits

impl Send for InstructionBits

impl Sync for InstructionBits

impl Unpin for InstructionBits

impl UnwindSafe for InstructionBits

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.