Mercurial > repos > blastem
diff gen_x86.c @ 1953:4af54c6ca3e6
Fix some questionable comparisons between 64-bit values and literals that fit in 32-bit integers
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 30 Apr 2020 23:33:55 -0700 |
parents | a79e92929044 |
children | e45a317802bd |
line wrap: on
line diff
--- a/gen_x86.c Thu Apr 30 23:30:22 2020 -0700 +++ b/gen_x86.c Thu Apr 30 23:33:55 2020 -0700 @@ -171,7 +171,7 @@ }; #ifdef X86_64 -#define CHECK_DISP(disp) (disp <= 0x7FFFFFFF && disp >= -2147483648) +#define CHECK_DISP(disp) (disp <= ((ptrdiff_t)INT32_MAX) && disp >= ((ptrdiff_t)INT32_MIN)) #else #define CHECK_DISP(disp) 1 #endif @@ -1261,7 +1261,7 @@ check_alloc_code(code, 14); code_ptr out = code->cur; uint8_t sign_extend = 0; - if (size == SZ_Q && val <= 0x7FFFFFFF && val >= -2147483648) { + if (size == SZ_Q && val <= ((int64_t)INT32_MAX) && val >= ((int64_t)INT32_MIN)) { sign_extend = 1; } if (size == SZ_W) {