Small optimizations: Enable LTO + don't make those two functions virtual in CPU. Around 3 fps improvement

This commit is contained in:
SimoZ64
2025-07-23 22:08:10 +02:00
parent 129267256e
commit 27dc6cfddf
4 changed files with 5 additions and 6 deletions

View File

@@ -15,6 +15,7 @@ endif()
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
include_directories(
src/frontend

View File

@@ -8,8 +8,6 @@ struct BaseCPU {
virtual ~BaseCPU() = default;
virtual int Step() = 0;
virtual void Reset() = 0;
[[nodiscard]] virtual bool ShouldServiceInterrupt() const = 0;
virtual void CheckCompareInterrupt() = 0;
virtual std::vector<u8> Serialize() = 0;
virtual void Deserialize(const std::vector<u8> &) = 0;
virtual Mem &GetMem() = 0;

View File

@@ -29,8 +29,8 @@ private:
friend struct Cop1;
#define check_address_error(mask, vaddr) \
(((!regs.cop0.is64BitAddressing) && (s32)(vaddr) != (vaddr)) || (((vaddr) & (mask)) != 0))
bool ShouldServiceInterrupt() const override;
void CheckCompareInterrupt() override;
bool ShouldServiceInterrupt() const;
void CheckCompareInterrupt();
std::vector<u8> Serialize() override;
void Deserialize(const std::vector<u8> &) override;

View File

@@ -143,8 +143,8 @@ private:
#define check_address_error(mask, vaddr) \
(((!regs.cop0.is64BitAddressing) && (s32)(vaddr) != (vaddr)) || (((vaddr) & (mask)) != 0))
[[nodiscard]] bool ShouldServiceInterrupt() const override;
void CheckCompareInterrupt() override;
[[nodiscard]] bool ShouldServiceInterrupt() const;
void CheckCompareInterrupt();
std::vector<u8> Serialize() override;
void Deserialize(const std::vector<u8> &) override;
u32 FetchInstruction();