Browse Source

[dynarmic] fix 64-bit indexing in pagetable being cutoff on ARM64 (#3314)

Signed-off-by: lizzie <lizzie@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3314
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
revertrevert
lizzie 2 weeks ago
committed by crueter
parent
commit
16c7c03b33
No known key found for this signature in database GPG Key ID: 425ACD2D4830EBC6
  1. 2
      src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp

2
src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp

@ -269,7 +269,7 @@ std::pair<oaknut::XReg, oaknut::XReg> InlinePageTableEmitVAddrLookup(oaknut::Cod
} }
// index = index << log2 // index = index << log2
code.SBFIZ(Xscratch0, Xscratch0, ctx.conf.page_table_log2_stride, 32);
code.LSL(Xscratch0, Xscratch0, ctx.conf.page_table_log2_stride);
// load x0 = *<(u8*)pagetable + index> // load x0 = *<(u8*)pagetable + index>
code.LDR(Xscratch0, Xpagetable, Xscratch0); code.LDR(Xscratch0, Xpagetable, Xscratch0);

Loading…
Cancel
Save