pub trait MemoryInstructions: Sized {
// Required methods
fn lb(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn lh(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn lw(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn lbu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn lhu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn ld(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn lwu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64);
fn sb(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64);
fn sh(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64);
fn sw(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64);
fn sd(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64);
}Required Methods§
Sourcefn lb(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lb(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a byte from memory into a register.
lb: rd = m8(rs1 + imm)
Sourcefn lh(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lh(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a half word from memory into a register.
lh: rd = m16(rs1 + imm)
Sourcefn lw(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lw(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a word from memory into a register.
lw: rd = m32(rs1 + imm)
Sourcefn lbu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lbu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a byte from memory into a register, zero extended.
lbu: rd = zx(m8(rs1 + imm))
Sourcefn lhu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lhu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a half word from memory into a register, zero extended.
lhu: rd = zx(m16(rs1 + imm))
Sourcefn ld(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn ld(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a double word from memory into a register.
ldu: rd = m64(rs1 + imm)
Sourcefn lwu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
fn lwu(&mut self, rd: RiscRegister, rs1: RiscRegister, imm: u64)
Load a word from memory into a register, zero extended.
lwu: rd = zx(m32(rs1 + imm))
Sourcefn sb(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
fn sb(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
Store a byte into memory.
sb: m8(rs1 + imm) = rs2[7:0]
Sourcefn sh(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
fn sh(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
Store a half word into memory.
sh: m16(rs1 + imm) = rs2[15:0]
Sourcefn sw(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
fn sw(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
Store a word into memory.
sw: m32(rs1 + imm) = rs2[31:0]
Sourcefn sd(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
fn sd(&mut self, rs1: RiscRegister, rs2: RiscRegister, imm: u64)
Store a double word into memory.
sd: m64(rs1 + imm) = rs2[63:0]
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".