diff --git a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_vector.cpp b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_vector.cpp index 6ac8531bfc..d575cd66ee 100644 --- a/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_vector.cpp +++ b/src/dynarmic/src/dynarmic/backend/arm64/emit_arm64_vector.cpp @@ -866,10 +866,10 @@ void EmitIR(oaknut::CodeGenerator& code, EmitContext& template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - UNREACHABLE(); + EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) { + code.CMGT(Qresult->D2(), Qa->D2(), Qb->D2()); + code.BSL(Qresult->B16(), Qa->B16(), Qb->B16()); + }); } template<> @@ -889,10 +889,10 @@ void EmitIR(oaknut::CodeGenerator& code, EmitContext& template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - UNREACHABLE(); + EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) { + code.CMHI(Qresult->D2(), Qa->D2(), Qb->D2()); + code.BSL(Qresult->B16(), Qa->B16(), Qb->B16()); + }); } template<> @@ -912,10 +912,10 @@ void EmitIR(oaknut::CodeGenerator& code, EmitContext& template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - UNREACHABLE(); + EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) { + code.CMGT(Qresult->D2(), Qb->D2(), Qa->D2()); + code.BSL(Qresult->B16(), Qa->B16(), Qb->B16()); + }); } template<> @@ -935,10 +935,10 @@ void EmitIR(oaknut::CodeGenerator& code, EmitContext& template<> void EmitIR(oaknut::CodeGenerator& code, EmitContext& ctx, IR::Inst* inst) { - (void)code; - (void)ctx; - (void)inst; - UNREACHABLE(); + EmitThreeOp(code, ctx, inst, [&](auto& Qresult, auto& Qa, auto& Qb) { + code.CMHI(Qresult->D2(), Qb->D2(), Qa->D2()); + code.BSL(Qresult->B16(), Qa->B16(), Qb->B16()); + }); } template<>