MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / add_extract_model

Method add_extract_model

icicle-cortexm/src/mmio.rs:76–90  ·  view source on GitHub ↗
(&mut self, pc: u64, min_bit: u8, max_bit: u8)

Source from the content-addressed store, hash-verified

74
75impl<I> FuzzwareMmioHandler<I> {
76 pub fn add_extract_model(&mut self, pc: u64, min_bit: u8, max_bit: u8) {
77 let kind = if max_bit < min_bit {
78 // No bits are used (zero-sized load).
79 tracing::warn!("[{pc:#x}] removed zero sized load");
80 ModelKind::Constant { val: 0 }
81 }
82 else {
83 let required_bits = max_bit - min_bit + 1;
84 let size = required_bits.next_multiple_of(8) / 8;
85 let mask = (pcode::mask(required_bits as u64) as u32) << min_bit;
86 tracing::info!("adjusting load [{pc:#x}] size={size}, shift={min_bit}, mask={mask:#b}");
87 ModelKind::Bitextract { size, left_shift: min_bit, mask }
88 };
89 self.models.push(Model { pc: pc as u32, addr: u32::MAX, kind })
90 }
91
92 pub fn new(
93 models: &config::MmioModels,

Callers 1

injectMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected