FIRST INSTRUCTION WORKING
This commit is contained in:
22
src/instructions/gen_tools.rs
Normal file
22
src/instructions/gen_tools.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
use std::hint::unreachable_unchecked;
|
||||
|
||||
use crate::instructions::{OpcodeHandler, Splitter};
|
||||
|
||||
pub fn insert_funct3_splitter(splitter: &mut Option<Splitter>) -> &mut [OpcodeHandler; 8] {
|
||||
match splitter {
|
||||
Some(Splitter::Funct3Splitter(s)) => s.as_mut(),
|
||||
Some(_) => panic!("Unexpected splitter variant"),
|
||||
None => {
|
||||
*splitter = Some(Splitter::Funct3Splitter(Box::new(std::array::from_fn(
|
||||
|_i| OpcodeHandler {
|
||||
handler: None,
|
||||
splitter: None,
|
||||
},
|
||||
))));
|
||||
match splitter {
|
||||
Some(Splitter::Funct3Splitter(s)) => s.as_mut(),
|
||||
_ => unsafe { unreachable_unchecked() },
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user