Struct rsim::processor::models::Rv64imvXCheriProcessor [−][src]
pub struct Rv64imvXCheriProcessor { pub running: bool, pub memory: CheriAggregateMemory, start_pc: u64, pcc: Cc128Cap, ddc: Cc128Cap, max_cap: Cc128Cap, sreg: CheriRV64RegisterFile, csrs: Rv64imvXCheriProcessorCSRs, initial_mode: CheriExecMode, }
RISC-V Processor Model where XLEN=64-bit, with CHERI support. Can execute in Integer or Capability mode. Holds scalar registers and configuration, all other configuration stored in Rv64imvXCheriProcessorModules
Fields
running: bool
memory: CheriAggregateMemory
start_pc: u64
pcc: Cc128Cap
ddc: Cc128Cap
max_cap: Cc128Cap
sreg: CheriRV64RegisterFile
csrs: Rv64imvXCheriProcessorCSRs
initial_mode: CheriExecMode
Implementations
impl Rv64imvXCheriProcessor
[src]
impl Rv64imvXCheriProcessor
[src]pub fn new(
start_pc: u64,
mem: CheriAggregateMemory,
mode: CheriExecMode
) -> (Rv64imvXCheriProcessor, Rv64imvXCheriProcessorModules)
[src]
start_pc: u64,
mem: CheriAggregateMemory,
mode: CheriExecMode
) -> (Rv64imvXCheriProcessor, Rv64imvXCheriProcessorModules)
Create a new processor and vector unit which operates on given memory.
Arguments
mem
- The memory the processor should hold. Currently a value, not a reference.
fn zicsr_conn<'a, 'b>(&'a mut self, rvv: &'a mut Rv64Cheriv) -> Zicsr64Conn<'b> where
'a: 'b,
[src]
'a: 'b,
fn xcheri64_conn<'a, 'b>(&'a mut self, mode: CheriExecMode) -> XCheri64Conn<'b> where
'a: 'b,
[src]
'a: 'b,
fn process_inst(
&mut self,
mods: &mut Rv64imvXCheriProcessorModules,
inst_bits: u32,
opcode: Opcode,
inst: InstructionBits
) -> Result<Cc128Cap>
[src]
&mut self,
mods: &mut Rv64imvXCheriProcessorModules,
inst_bits: u32,
opcode: Opcode,
inst: InstructionBits
) -> Result<Cc128Cap>
Process an instruction, returning the new PC value or any execution error
Arguments
v_unit
- The associated vector unit, which will execute vector instructions if they are found.inst_bits
- The raw instruction bitsopcode
- The major opcode of the decoded instructioninst
- The fields of the decoded instruction
Trait Implementations
impl Processor<Rv64imvXCheriProcessorModules> for Rv64imvXCheriProcessor
[src]
impl Processor<Rv64imvXCheriProcessorModules> for Rv64imvXCheriProcessor
[src]fn reset(&mut self, _mods: &mut Rv64imvXCheriProcessorModules)
[src]
Reset the processor and associated vector unit
fn exec_step(&mut self, mods: &mut Rv64imvXCheriProcessorModules) -> Result<()>
[src]
Run a fetch-decode-execute step on the processor, executing a single instruction
Arguments
v_unit
- The associated vector unit, which will execute vector instructions if they are found.
fn dump(&self, mods: &Rv64imvXCheriProcessorModules)
[src]
Dump processor and vector unit state to standard output.