# HG changeset patch # User Michael Pavone # Date 1507560528 25200 # Node ID 723f6381cffab1f23b7399aacab654cf68488913 # Parent 17c1c30e0d6fe56934132417d55215636618c606 Attempt at fixing issue reported when compiling with MSVC diff -r 17c1c30e0d6f -r 723f6381cffa gen_x86.c --- a/gen_x86.c Mon Oct 09 07:42:33 2017 -0700 +++ b/gen_x86.c Mon Oct 09 07:48:48 2017 -0700 @@ -170,6 +170,12 @@ "b", "w", "d", "q" }; +#ifdef X86_64 +#define CHECK_DISP(disp) (disp <= 0x7FFFFFFF && disp >= -2147483648) +#else +#define CHECK_DISP(disp) 1 +#endif + void jmp_nocheck(code_info *code, code_ptr dest) { code_ptr out = code->cur; @@ -179,7 +185,7 @@ *(out++) = disp; } else { disp = dest-(out+5); - if (disp <= 0x7FFFFFFF && disp >= -2147483648) { + if (CHECK_DISP(disp)) { *(out++) = OP_JMP; *(out++) = disp; disp >>= 8; @@ -1917,7 +1923,7 @@ *(out++) = disp; } else { disp = dest-(out+6); - if (disp <= 0x7FFFFFFF && disp >= -2147483648) { + if (CHECK_DISP(disp)) { *(out++) = PRE_2BYTE; *(out++) = OP2_JCC | cc; *(out++) = disp; @@ -1944,7 +1950,7 @@ *(out++) = disp; } else { disp = dest-(out+5); - if (disp <= 0x7FFFFFFF && disp >= -2147483648) { + if (CHECK_DISP(disp)) { *(out++) = OP_JMP; *(out++) = disp; disp >>= 8; @@ -1991,7 +1997,7 @@ check_alloc_code(code, 5); code_ptr out = code->cur; ptrdiff_t disp = fun-(out+5); - if (disp <= 0x7FFFFFFF && disp >= -2147483648) { + if (CHECK_DISP(disp)) { *(out++) = OP_CALL; *(out++) = disp; disp >>= 8; @@ -2029,7 +2035,7 @@ check_alloc_code(code, 5); code_ptr out = code->cur; ptrdiff_t disp = fun-(out+5); - if (disp <= 0x7FFFFFFF && disp >= -2147483648) { + if (CHECK_DISP(disp)) { *(out++) = OP_CALL; *(out++) = disp; disp >>= 8;