X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=deps%2Flightning%2Flib%2Fjit_print.c;h=f3409fbb16fe0bac7a231b0240f32292d37f676c;hb=56e500f3428614e677ba5e9719f002046e87d980;hp=ee37b025334db70bcf7162f7f9705fb15410da28;hpb=ba3814c189d3bd2332b66fb6c633a7d028e618fe;p=pcsx_rearmed.git diff --git a/deps/lightning/lib/jit_print.c b/deps/lightning/lib/jit_print.c index ee37b025..f3409fbb 100644 --- a/deps/lightning/lib/jit_print.c +++ b/deps/lightning/lib/jit_print.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2019 Free Software Foundation, Inc. + * Copyright (C) 2012-2023 Free Software Foundation, Inc. * * This file is part of GNU lightning. * @@ -20,9 +20,26 @@ #include #include +#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) @@ -304,12 +321,12 @@ _jit_print_node(jit_state_t *_jit, jit_node_t *node) 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)