diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-12-09 03:53:58 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-09 03:53:58 +0100 |
| commit | 69a84ee0a6742a51b9059c6a597a6efca7f3af9c (patch) | |
| tree | 68864c7a26e85a3e9f8d1d854c8c79698c8f7b9b /src/dynarmic/docs/ReturnStackBufferOptimization.md | |
| parent | 5b019a81a72d84cfd17434cc779cca8975cdf231 (diff) | |
[dynarmic] remove reg_alloc from all arguments on x86 emitter (#3150)
From my tests this decreases JIT latency twofold, may be placebo.
saving reg_alloc while having it readily available is certainly a very interesting choice... afterall saving it onto %rdi is way more cheap isn't it? :)
Please test any performance rgressions, I got +20 FPS on Rain World (unlocked) off this change alone
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3150
Reviewed-by: crueter <crueter@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'src/dynarmic/docs/ReturnStackBufferOptimization.md')
| -rw-r--r-- | src/dynarmic/docs/ReturnStackBufferOptimization.md | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/dynarmic/docs/ReturnStackBufferOptimization.md b/src/dynarmic/docs/ReturnStackBufferOptimization.md index 0e72c3bce8..03bc5acfbd 100644 --- a/src/dynarmic/docs/ReturnStackBufferOptimization.md +++ b/src/dynarmic/docs/ReturnStackBufferOptimization.md @@ -77,9 +77,9 @@ void EmitX64::EmitPushRSB(IR::Block&, IR::Inst* inst) { ASSERT(inst->GetArg(0).IsImmediate()); u64 imm64 = inst->GetArg(0).GetU64(); - Xbyak::Reg64 code_ptr_reg = reg_alloc.ScratchGpr({HostLoc::RCX}); - Xbyak::Reg64 loc_desc_reg = reg_alloc.ScratchGpr(); - Xbyak::Reg32 index_reg = reg_alloc.ScratchGpr().cvt32(); + Xbyak::Reg64 code_ptr_reg = reg_alloc.ScratchGpr(code, {HostLoc::RCX}); + Xbyak::Reg64 loc_desc_reg = reg_alloc.ScratchGpr(code); + Xbyak::Reg32 index_reg = reg_alloc.ScratchGpr(code).cvt32(); u64 code_ptr = unique_hash_to_code_ptr.find(imm64) != unique_hash_to_code_ptr.end() ? u64(unique_hash_to_code_ptr[imm64]) : u64(code->GetReturnFromRunCodeAddress()); |
