From df4ee0f51ee332b4928817108d92b17d12dea6ed Mon Sep 17 00:00:00 2001 From: MerryMage Date: Tue, 27 Mar 2018 08:21:18 +0100 Subject: [PATCH] emit_X64_floating_point: Near jmp to end instead of short jmp Jump destination can be further than what can be reached in a short jump under some FPCR options. --- src/backend_x64/emit_x64_floating_point.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/backend_x64/emit_x64_floating_point.cpp b/src/backend_x64/emit_x64_floating_point.cpp index 74dde216..9c1bf5c5 100644 --- a/src/backend_x64/emit_x64_floating_point.cpp +++ b/src/backend_x64/emit_x64_floating_point.cpp @@ -478,7 +478,7 @@ void EmitX64::EmitFPMaxNumeric32(EmitContext& ctx, IR::Inst* inst) { code.jnae(result_is_result); // If result == QNaN && operand != NaN, result = operand. code.movaps(result, operand); - code.jmp(end); + code.jmp(end, code.T_NEAR); code.L(result_is_result); code.movaps(operand, result); @@ -512,7 +512,7 @@ void EmitX64::EmitFPMaxNumeric64(EmitContext& ctx, IR::Inst* inst) { code.jnae(result_is_result); // If result == QNaN && operand != NaN, result = operand. code.movaps(result, operand); - code.jmp(end); + code.jmp(end, code.T_NEAR); code.L(result_is_result); code.movaps(operand, result);