Struct rsim::processor::elements::cheri::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<()>