From 8d9607ec6056ee42b5ce60b9798882c808e47f82 Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 14 Jan 2026 23:08:57 +0100 Subject: [PATCH] [dynarmic] fix qlaunch on android (#3310) Signed-off-by: lizzie Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3310 Reviewed-by: Maufeat Reviewed-by: CamilleLaVey Co-authored-by: lizzie Co-committed-by: lizzie --- .../src/dynarmic/backend/arm64/emit_arm64_memory.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp index 5205287850..25020523c3 100644 --- a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp +++ b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp @@ -268,7 +268,10 @@ std::pair InlinePageTableEmitVAddrLookup(oaknut::Cod code.B(NE, *fallback); } - code.LDR(Xscratch0, Xpagetable, Xscratch0, LSL, ctx.conf.page_table_log2_stride); + // index = index << log2 + code.SBFIZ(Xscratch0, Xscratch0, ctx.conf.page_table_log2_stride, 32); + // load x0 = *<(u8*)pagetable + index> + code.LDR(Xscratch0, Xpagetable, Xscratch0); if (ctx.conf.page_table_pointer_mask_bits != 0) { const u64 mask = u64(~u64(0)) << ctx.conf.page_table_pointer_mask_bits;