mirror of
https://github.com/WinampDesktop/winamp.git
synced 2025-06-18 12:35:45 -04:00
JIT optimizations and refactoring (#675)
* CPU/Recompiler: Use rel32 call where possible for no-args * JitCodeBuffer: Support using preallocated buffer * CPU/Recompiler/AArch64: Use bl instead of blr for short branches * CPU/CodeCache: Allocate recompiler buffer in program space This means we don't need 64-bit moves for every call out of the recompiler. * GTE: Don't store as u16 and load as u32 * CPU/Recompiler: Add methods to emit global load/stores * GTE: Convert class to namespace * CPU/Recompiler: Call GTE functions directly * Settings: Turn into a global variable * GPU: Replace local pointers with global * InterruptController: Turn into a global pointer * System: Replace local pointers with global * Timers: Turn into a global instance * DMA: Turn into a global instance * SPU: Turn into a global instance * CDROM: Turn into a global instance * MDEC: Turn into a global instance * Pad: Turn into a global instance * SIO: Turn into a global instance * CDROM: Move audio FIFO to the heap * CPU/Recompiler: Drop ASMFunctions No longer needed since we have code in the same 4GB window. * CPUCodeCache: Turn class into namespace * Bus: Local pointer -> global pointers * CPU: Turn class into namespace * Bus: Turn into namespace * GTE: Store registers in CPU state struct Allows relative addressing on ARM. * CPU/Recompiler: Align code storage to page size * CPU/Recompiler: Fix relative branches on A64 * HostInterface: Local references to global * System: Turn into a namespace, move events out * Add guard pages * Android: Fix build
This commit is contained in:

committed by
GitHub

parent
1f9fc6ab74
commit
b6f871d2b9
@ -9,10 +9,10 @@
|
||||
#include <array>
|
||||
Log_SetChannel(PlayStationMouse);
|
||||
|
||||
PlayStationMouse::PlayStationMouse(System* system) : m_system(system)
|
||||
PlayStationMouse::PlayStationMouse()
|
||||
{
|
||||
m_last_host_position_x = system->GetHostInterface()->GetDisplay()->GetMousePositionX();
|
||||
m_last_host_position_y = system->GetHostInterface()->GetDisplay()->GetMousePositionY();
|
||||
m_last_host_position_x = g_host_interface->GetDisplay()->GetMousePositionX();
|
||||
m_last_host_position_y = g_host_interface->GetDisplay()->GetMousePositionY();
|
||||
}
|
||||
|
||||
PlayStationMouse::~PlayStationMouse() = default;
|
||||
@ -142,7 +142,7 @@ bool PlayStationMouse::Transfer(const u8 data_in, u8* data_out)
|
||||
void PlayStationMouse::UpdatePosition()
|
||||
{
|
||||
// get screen coordinates
|
||||
const HostDisplay* display = m_system->GetHostInterface()->GetDisplay();
|
||||
const HostDisplay* display = g_host_interface->GetDisplay();
|
||||
const s32 mouse_x = display->GetMousePositionX();
|
||||
const s32 mouse_y = display->GetMousePositionY();
|
||||
const s32 delta_x = mouse_x - m_last_host_position_x;
|
||||
@ -157,9 +157,9 @@ void PlayStationMouse::UpdatePosition()
|
||||
m_delta_y = static_cast<s8>(std::clamp<s32>(delta_y, std::numeric_limits<s8>::min(), std::numeric_limits<s8>::max()));
|
||||
}
|
||||
|
||||
std::unique_ptr<PlayStationMouse> PlayStationMouse::Create(System* system)
|
||||
std::unique_ptr<PlayStationMouse> PlayStationMouse::Create()
|
||||
{
|
||||
return std::make_unique<PlayStationMouse>(system);
|
||||
return std::make_unique<PlayStationMouse>();
|
||||
}
|
||||
|
||||
std::optional<s32> PlayStationMouse::StaticGetAxisCodeByName(std::string_view button_name)
|
||||
|
Reference in New Issue
Block a user