/*
- * Copyright (C) 2012-2019 Free Software Foundation, Inc.
+ * Copyright (C) 2012-2023 Free Software Foundation, Inc.
*
* This file is part of GNU lightning.
*
#include <lightning.h>
#include <lightning/jit_private.h>
+#if __WORDSIZE == 32
+# define MININT 0x80000000
+# define DEC_FMT "%d"
+# define HEX_FMT "0x%x"
+#else
+# define MININT 0x8000000000000000
+# define DEC_FMT "%ld"
+# define HEX_FMT "0x%lx"
+#endif
+
+
#define print_chr(value) fputc(value, print_stream)
-#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)
#define print_flt(value) fprintf(print_stream, "%g", value)
#define print_str(value) fprintf(print_stream, "%s", value)
#define print_ptr(value) fprintf(print_stream, "%p", value)
case jit_code_name:
print_chr(' ');
if (node->v.p && _jitc->emit)
- print_str(node->v.n->u.p);
+ print_str((char *)node->v.n->u.p);
break;
case jit_code_note:
print_chr(' ');
if (node->v.p && _jitc->emit)
- print_str(node->v.n->u.p);
+ print_str((char *)node->v.n->u.p);
if (node->v.p && _jitc->emit && node->w.w)
print_chr(':');
if (node->w.w)