From c3f8982c6295fea35c63101b8f2865ba7a66141c Mon Sep 17 00:00:00 2001 From: Thomas Harte Date: Sun, 18 Oct 2020 14:55:17 -0400 Subject: [PATCH] Resolves all internal implicit type-conversion warnings. Chasing those down, it looks like flags were wrong for PLB and PLD. So it's official: warnings help. --- .../Implementation/65816Implementation.hpp | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/Processors/65816/Implementation/65816Implementation.hpp b/Processors/65816/Implementation/65816Implementation.hpp index 5e888c359..3d84bcd9e 100644 --- a/Processors/65816/Implementation/65816Implementation.hpp +++ b/Processors/65816/Implementation/65816Implementation.hpp @@ -432,7 +432,7 @@ template void Processor void Processor void Processor void Processor void Processor void Processor void Processor void Processor void Processor> (7 + registers_.m_shift); + registers_.flags.carry = uint8_t(data_buffer_.value >> (7 + registers_.m_shift)); data_buffer_.value <<= 1; - registers_.flags.set_nz(data_buffer_.value, registers_.m_shift); + registers_.flags.set_nz(uint16_t(data_buffer_.value), registers_.m_shift); break; case LSR: - registers_.flags.carry = data_buffer_.value & 1; + registers_.flags.carry = uint8_t(data_buffer_.value & 1); data_buffer_.value >>= 1; - registers_.flags.set_nz(data_buffer_.value, registers_.m_shift); + registers_.flags.set_nz(uint16_t(data_buffer_.value), registers_.m_shift); break; case ROL: data_buffer_.value = (data_buffer_.value << 1) | registers_.flags.carry; - registers_.flags.carry = data_buffer_.value >> (8 + registers_.m_shift); - registers_.flags.set_nz(data_buffer_.value, registers_.m_shift); + registers_.flags.carry = uint8_t(data_buffer_.value >> (8 + registers_.m_shift)); + registers_.flags.set_nz(uint16_t(data_buffer_.value), registers_.m_shift); break; case ROR: { const uint8_t next_carry = data_buffer_.value & 1; - data_buffer_.value = (data_buffer_.value >> 1) | (registers_.flags.carry << (7 + registers_.m_shift)); + data_buffer_.value = (data_buffer_.value >> 1) | (uint32_t(registers_.flags.carry) << (7 + registers_.m_shift)); registers_.flags.carry = next_carry; - registers_.flags.set_nz(data_buffer_.value, registers_.m_shift); + registers_.flags.set_nz(uint16_t(data_buffer_.value), registers_.m_shift); } break; // @@ -872,7 +872,7 @@ template void Processor> (1 + registers_.m_shift))&0x40; - registers_.flags.set_nz(result, registers_.m_shift); + registers_.flags.set_nz(uint16_t(result), registers_.m_shift); registers_.flags.carry = ((borrow >> 16)&1)^1; LD(registers_.a, result, registers_.m_masks); @@ -901,11 +901,11 @@ template void Processor> (1 + registers_.m_shift))&0x40; - registers_.flags.set_nz(result, registers_.m_shift); + registers_.flags.overflow = (( (uint16_t(result) ^ registers_.a.full) & (uint16_t(result) ^ data_buffer_.value) ) >> (1 + registers_.m_shift))&0x40; + registers_.flags.set_nz(uint16_t(result), registers_.m_shift); registers_.flags.carry = (result >> (8 + registers_.m_shift))&1; LD(registers_.a, result, registers_.m_masks); } break;