Merge pull request #663 from bslenul/rumble-fix
[pcsx_rearmed.git] / deps / lightning / lib / jit_print.c
index fc4ab87..61d9650 100644 (file)
 #include <lightning.h>
 #include <lightning/jit_private.h>
 
-#define print_chr(value)               fputc(value, stdout)
-#define print_hex(value)               fprintf(stdout, "0x%lx", value)
-#define print_dec(value)               fprintf(stdout, "%ld", value)
-#define print_flt(value)               fprintf(stdout, "%g", value)
-#define print_str(value)               fprintf(stdout, "%s", value)
-#define print_ptr(value)               fprintf(stdout, "%p", value)
+#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_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)
 #define print_reg(value)                                               \
     do {                                                               \
        if ((value) & jit_regno_patch)                                  \
  * Initialization
  */
 #include "jit_names.c"
+/*
+ * Initialization
+ */
+static FILE    *print_stream;
+
 
 /*
  * Implementation
  */
+void
+jit_init_print(void)
+{
+    if (!print_stream)
+       print_stream = stderr;
+}
+
 void
 _jit_print(jit_state_t *_jit)
 {
@@ -280,12 +292,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_ptr(node->v.n->u.p);
+               print_str(node->v.n->u.p);
            break;
        case jit_code_note:
            print_chr(' ');
            if (node->v.p && _jitc->emit)
-               print_ptr(node->v.n->u.p);
+               print_str(node->v.n->u.p);
            if (node->v.p && _jitc->emit && node->w.w)
                print_chr(':');
            if (node->w.w)