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) {