Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DSP/Jit: Load address of m_cycles_left into register #5067

Merged
merged 1 commit into from Mar 11, 2017

Conversation

merryhime
Copy link
Contributor

When using the DSP LLE recompiler, the address of m_cycles_left sometimes exceeds the maximal 32-bit offset from RIP.

On some platforms, the address of m_cycles_left exceeds the maximal 32-bit
offset from RIP.
@degasus
Copy link
Member

degasus commented Mar 11, 2017

The patch looks fine to me, but I wonder why you've choosen RCX and RAX as temporary register. I haven't found the register allocation on DSP LLE, are those general scratch registers?

@merryhime
Copy link
Contributor Author

My understanding:

In DSPEmitter.cpp, the register choice doesn't matter.

In DSPJitBranch.cpp, rax, rcx and rdx are reserved scratch registers (see: DSPJitRegCache). Note that FlushRegs() is called beforehand which kinda makes register choice kind of irrelevant.

@degasus degasus merged commit f65d0c5 into dolphin-emu:master Mar 11, 2017
@merryhime merryhime deleted the cycles-offset-too-big branch March 11, 2017 23:38
@lioncash
Copy link
Member

❤️️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
4 participants