-#define print_hex(value) fprintf(print_stream, "0x%lx", value)
-#define print_dec(value) fprintf(print_stream, "%ld", value)
+#define print_hex(value) \
+ do { \
+ if (value < 0 && value != MININT) \
+ fprintf(print_stream, "-" HEX_FMT, (jit_uword_t)-value); \
+ else \
+ fprintf(print_stream, HEX_FMT, (jit_uword_t)value); \
+ } while (0)
+#define print_dec(value) fprintf(print_stream, DEC_FMT, value)