use crate::armv4t::Insn;
use crate::Mutate;
impl Mutate for Insn {
fn random() -> Self {
let mut s = Self(rand::random());
s.fixup();
s
}
fn mutate(&mut self) {
use rand::Rng;
if rand::random() {
let mask: u32 = 1 << rand::rng().random_range(0..32);
self.0 ^= mask;
} else {
self.0 = rand::random()
}
while !self.fixup() {
self.0 = rand::random()
}
}
}