Struct rsim::processor::elements::cheri::registers::CheriRV64RegisterFile [−][src]
pub struct CheriRV64RegisterFile { regs: [SafeTaggedCap; 31], }
Register file for 64-bit RISC-V that can hold tagged 128-bit capabilities.
Implements RegisterFile
Fields
regs: [SafeTaggedCap; 31]
Implementations
impl CheriRV64RegisterFile
[src]
impl CheriRV64RegisterFile
[src]pub fn read_u64(&mut self, idx: u8) -> Result<u64, RegisterFileError>
[src]
pub fn write_u64(&mut self, idx: u8, val: u64) -> Result<(), RegisterFileError>
[src]
pub fn read_maybe_cap(
&mut self,
idx: u8
) -> Result<SafeTaggedCap, RegisterFileError>
[src]
&mut self,
idx: u8
) -> Result<SafeTaggedCap, RegisterFileError>
Reads a valid capability from the register file.
pub fn write_maybe_cap(
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
[src]
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
pub fn dump(&self)
[src]
pub fn reset(&mut self)
[src]
Trait Implementations
impl Default for CheriRV64RegisterFile
[src]
impl Default for CheriRV64RegisterFile
[src]impl RegisterFile<SafeTaggedCap> for CheriRV64RegisterFile
[src]
impl RegisterFile<SafeTaggedCap> for CheriRV64RegisterFile
[src]fn read(&mut self, idx: u8) -> Result<SafeTaggedCap, RegisterFileError>
[src]
fn write(
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
[src]
&mut self,
idx: u8,
val: SafeTaggedCap
) -> Result<(), RegisterFileError>
impl RegisterFile<u64> for CheriRV64RegisterFile
[src]
impl RegisterFile<u64> for CheriRV64RegisterFile
[src]Interface used by normal RV32 instructions
impl<'a> VecRegInterface<u64> for CheriRV64RegisterFile
[src]
impl<'a> VecRegInterface<u64> for CheriRV64RegisterFile
[src]fn sreg_read_xlen(&mut self, reg: u8) -> Result<u64>
[src]
fn sreg_write_xlen(&mut self, reg: u8, val: u64) -> Result<()>
[src]
fn get_addr_provenance(&mut self, reg: u8) -> Result<(u64, Provenance)>
[src]
fn check_addr_range_against_provenance(
&mut self,
addr_range: Range<u64>,
prov: Provenance,
dir: MemOpDir
) -> Result<()>
[src]
&mut self,
addr_range: Range<u64>,
prov: Provenance,
dir: MemOpDir
) -> Result<()>
fn check_elem_bounds_against_provenance(
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance),
dir: MemOpDir
) -> Result<()>
[src]
&mut self,
eew: Sew,
addr_provenance: (u64, Provenance),
dir: MemOpDir
) -> Result<()>