From f969e71f17d9cb99202a41ff4835e33533bf6940 Mon Sep 17 00:00:00 2001 From: Logan McNaughton <848146+loganmc10@users.noreply.github.com> Date: Tue, 24 Oct 2023 11:45:22 +0300 Subject: [PATCH] don't use !0 (#21) * don't use !0 * fix type --- src/device/cop0.rs | 24 ++++++++++++------------ src/device/cpu_instructions.rs | 12 ++++++------ src/device/rsp_cpu.rs | 2 +- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/device/cop0.rs b/src/device/cop0.rs index 81bb1cc..3407fcf 100644 --- a/src/device/cop0.rs +++ b/src/device/cop0.rs @@ -204,7 +204,7 @@ pub fn set_control_registers(device: &mut device::Device, index: u32, mut data: let mut compare_event_diff = (data as u32).wrapping_sub(current_count as u32); if compare_event_diff == 0 { - compare_event_diff += !0 as u32; + compare_event_diff += u32::MAX; } device::events::create_event( @@ -237,7 +237,7 @@ pub fn compare_event(device: &mut device::Device) { device::events::create_event( device, device::events::EventType::Compare, - device.cpu.next_event_count + (!0 as u32 as u64), + device.cpu.next_event_count + (u32::MAX as u64), compare_event, ); device::exceptions::check_pending_interrupts(device); @@ -266,15 +266,15 @@ pub fn init(device: &mut device::Device) { COP0_CONTEXT_REG_MASK, COP0_PAGEMASK_REG_MASK, COP0_WIRED_REG_MASK, - 0, // 7 - 0, // BadVAddr, read only - !0 as u32 as u64, // count + 0, // 7 + 0, // BadVAddr, read only + u32::MAX as u64, // count COP0_ENTRYHI_REG_MASK, - !0 as u32 as u64, // compare + u32::MAX as u64, // compare COP0_STATUS_REG_MASK, COP0_CAUSE_REG_MASK, - !0, // EPC - 0, // previd, read only + u64::MAX, // EPC + 0, // previd, read only COP0_CONFIG_REG_MASK, COP0_LLADDR_REG_MASK, COP0_WATCHLO_REG_MASK, @@ -288,9 +288,9 @@ pub fn init(device: &mut device::Device) { COP0_PARITYERR_REG_MASK, 0, // cache error COP0_TAGLO_REG_MASK, - 0, // taghi - !0, // ErrorPC - 0, // 31 + 0, // taghi + u64::MAX, // ErrorPC + 0, // 31 ]; device.cpu.cop0.instrs = [ @@ -375,7 +375,7 @@ pub fn init(device: &mut device::Device) { device::events::create_event( device, device::events::EventType::Compare, - !0 as u32 as u64, + u32::MAX as u64, compare_event, ) } diff --git a/src/device/cpu_instructions.rs b/src/device/cpu_instructions.rs index d1790c6..9b6531a 100644 --- a/src/device/cpu_instructions.rs +++ b/src/device/cpu_instructions.rs @@ -505,7 +505,7 @@ pub fn swl(device: &mut device::Device, opcode: u32) { let mask; if n == 0 { - mask = !0 as u32 + mask = u32::MAX } else { mask = bits_below_mask(8 * (4 - n)) as u32 } @@ -552,7 +552,7 @@ pub fn sdl(device: &mut device::Device, opcode: u32) { let mask; if n == 0 { - mask = !0 as u64 + mask = u64::MAX } else { mask = bits_below_mask(8 * (8 - n)) } @@ -1060,7 +1060,7 @@ pub fn div(device: &mut device::Device, opcode: u32) { if (device.cpu.gpr[rs(opcode) as usize] as i32) < 0 { device.cpu.lo = 1 } else { - device.cpu.lo = !0 as u64 + device.cpu.lo = u64::MAX } device.cpu.hi = se32(device.cpu.gpr[rs(opcode) as usize] as i32) } @@ -1079,7 +1079,7 @@ pub fn divu(device: &mut device::Device, opcode: u32) { % (device.cpu.gpr[rt(opcode) as usize] as u32)) as i32, ); } else { - device.cpu.lo = !0 as u64; + device.cpu.lo = u64::MAX; device.cpu.hi = se32(device.cpu.gpr[rs(opcode) as usize] as u32 as i32) } @@ -1112,7 +1112,7 @@ pub fn ddiv(device: &mut device::Device, opcode: u32) { if ((device.cpu.gpr[rs(opcode) as usize]) as i64) < 0 { device.cpu.lo = 1 } else { - device.cpu.lo = !0 as u64 + device.cpu.lo = u64::MAX } device.cpu.hi = device.cpu.gpr[rs(opcode) as usize] } @@ -1124,7 +1124,7 @@ pub fn ddivu(device: &mut device::Device, opcode: u32) { device.cpu.lo = device.cpu.gpr[rs(opcode) as usize] / device.cpu.gpr[rt(opcode) as usize]; device.cpu.hi = device.cpu.gpr[rs(opcode) as usize] % device.cpu.gpr[rt(opcode) as usize] } else { - device.cpu.lo = !0 as u64; + device.cpu.lo = u64::MAX; device.cpu.hi = device.cpu.gpr[rs(opcode) as usize] } device::cop0::add_cycles(device, 68); diff --git a/src/device/rsp_cpu.rs b/src/device/rsp_cpu.rs index c83188b..f221e64 100644 --- a/src/device/rsp_cpu.rs +++ b/src/device/rsp_cpu.rs @@ -161,7 +161,7 @@ pub fn decode_opcode(device: &mut device::Device, opcode: u32) -> fn(&mut device } pub fn init(device: &mut device::Device) { - device.rsp.cpu.reciprocals[0] = !0 as u16; + device.rsp.cpu.reciprocals[0] = u16::MAX; let mut index = 1; while index < 512 { let a = (index + 512) as u64;