(bus: &mut SystemBus, addr: u64, funct3: u8)
| 307 | 2 => { |
| 308 | // FSW: lower 32 bits |
| 309 | bus.write_word(addr, bits as u32) |
| 310 | .map_err(|_| VmError::StoreAccessFault(addr)) |
| 311 | } |
| 312 | 3 => { |
| 313 | // FSD |
| 314 | bus.write_doubleword(addr, bits) |
| 315 | .map_err(|_| VmError::StoreAccessFault(addr)) |
| 316 | } |
| 317 | _ => Err(VmError::StoreAccessFault(addr)), |
| 318 | } |
| 319 | } |
| 320 | |
| 321 | // --- Atomics --- |
| 322 | |
| 323 | fn handle_atomic( |
| 324 | bus: &mut SystemBus, |
| 325 | reservation: &mut Option<u64>, |
| 326 | funct5: u8, |
| 327 | funct3: u8, |
| 328 | rd: usize, |
| 329 | addr: u64, |
| 330 | val: u64, |
no test coverage detected