aboutsummaryrefslogtreecommitdiff
path: root/src/dynarmic/docs/ReturnStackBufferOptimization.md
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-12-09 03:53:58 +0100
committercrueter <crueter@eden-emu.dev>2025-12-09 03:53:58 +0100
commit69a84ee0a6742a51b9059c6a597a6efca7f3af9c (patch)
tree68864c7a26e85a3e9f8d1d854c8c79698c8f7b9b /src/dynarmic/docs/ReturnStackBufferOptimization.md
parent5b019a81a72d84cfd17434cc779cca8975cdf231 (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.md6
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());