From ec111683cd8148f42cd835d4eb3730d4014476cf Mon Sep 17 00:00:00 2001 From: PavelBARABANOV Date: Sat, 12 Sep 2026 02:19:48 +0300 Subject: [PATCH] [dynarmic] use UBFX + CBNZ instead of TBNZ for marked bit --- src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 1f758a190a..302a475a78 100644 --- a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp +++ b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_memory.cpp @@ -274,8 +274,8 @@ std::pair InlinePageTableEmitVAddrLookup(oaknut::Cod code.LDR(Xscratch0, Xpagetable, Xscratch0); if (ctx.conf.page_table_marked_bit) { - // check for marked bit - code.TBNZ(Xscratch0, *ctx.conf.page_table_marked_bit, *fallback); + code.UBFX(Xscratch1, Xscratch0, *ctx.conf.page_table_marked_bit, 1); + code.CBNZ(Xscratch1, *fallback); } if (ctx.conf.page_table_pointer_mask != 0) {