blob: 2779023f773f4d96ccbe65e3cff04c8515c98491 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
use crate::rv32_cpu::rv32_cpu::State;
use std::error::Error;
use std::fmt::Debug;
#[derive(Debug, Clone, Hash, PartialEq, Eq)]
pub struct Opcode {
pub opcode6_2: u32,
pub opcode14_12: Option<u32>,
pub opcode31_27: Option<u32>,
}
pub trait Instruction: Debug {
fn opcode(&self) -> Opcode;
fn execute(&self, instruction: u32, cpu: &mut State) -> Result<(), Box<dyn Error>>;
}
|