use std::collections::HashSet; use crate::mem::Memory; pub struct CpuState { pub memory: Memory, pub registers: [u32; 32], pub f_registers: [f32; 32], pub pc: u32, pub reservations: HashSet } impl CpuState { pub fn new(memory: Memory) -> CpuState { CpuState { memory, registers: [0u32; 32], f_registers: [0f32; 32], pc: 0, reservations: HashSet::new() } } pub fn release_reservations(&mut self, indices: &[usize]) { for index in indices { self.reservations.remove(&index); } } pub fn acquire_reservations(&mut self, indices: &[usize]) { for index in indices { self.reservations.insert(*index); } } }