changeset 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 42c12d141f6e
children 2fd0a8cb1c80
files gen_x86.c
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
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) {