From eb2d28d2b119b8862b8f860c14fed36d7ac15505 Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 21 Mar 2018 11:35:21 -0400 Subject: [PATCH] emit_x64_vector_floating_point: Fix out of bounds array access in EmitVectorOperation64 --- src/backend_x64/emit_x64_vector_floating_point.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/backend_x64/emit_x64_vector_floating_point.cpp b/src/backend_x64/emit_x64_vector_floating_point.cpp index 8dff0d23..eea98ded 100644 --- a/src/backend_x64/emit_x64_vector_floating_point.cpp +++ b/src/backend_x64/emit_x64_vector_floating_point.cpp @@ -160,7 +160,7 @@ static void EmitVectorOperation64(BlockOfCode& code, EmitContext& ctx, IR::Inst* code.movaps(xword[code.ABI_PARAM3], xmm_b); code.CallFunction(static_cast&, const std::array&, const std::array&)>( [](std::array& result, const std::array& a, const std::array& b) { - for (size_t i = 0; i < 4; ++i) { + for (size_t i = 0; i < 2; ++i) { if (auto r = Common::ProcessNaNs(a[i], b[i])) { result[i] = *r; } else if (Common::IsNaN(result[i])) {