From 090e79add2f84981df974cfb4501b76c42d0e3e7 Mon Sep 17 00:00:00 2001 From: Merry Date: Sat, 30 Jul 2022 19:11:53 +0100 Subject: [PATCH] emit_arm64_data_processing: Implement CountLeadingZeros --- .../backend/arm64/emit_arm64_data_processing.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/dynarmic/backend/arm64/emit_arm64_data_processing.cpp b/src/dynarmic/backend/arm64/emit_arm64_data_processing.cpp index b3745b4b..23d80e09 100644 --- a/src/dynarmic/backend/arm64/emit_arm64_data_processing.cpp +++ b/src/dynarmic/backend/arm64/emit_arm64_data_processing.cpp @@ -1246,18 +1246,16 @@ void EmitIR(oaknut::CodeGenerator& code, EmitContex template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - ASSERT_FALSE("Unimplemented"); + EmitTwoOp<32>( + code, ctx, inst, + [&](auto& Wresult, auto& Woperand) { code.CLZ(Wresult, Woperand); }); } template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - ASSERT_FALSE("Unimplemented"); + EmitTwoOp<64>( + code, ctx, inst, + [&](auto& Xresult, auto& Xoperand) { code.CLZ(Xresult, Xoperand); }); } template<>