X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=deps%2Flightning%2Flib%2Fjit_disasm.c;h=856a70bbeeafdcd21cf60c8aa818d01655c3b9a4;hb=ba3814c189d3bd2332b66fb6c633a7d028e618fe;hp=15b91b9131196f738a883c5e1b526ddf7e348dff;hpb=28d1bea2e828cd079593abc8c97ea6ff4fd7d4f4;p=pcsx_rearmed.git diff --git a/deps/lightning/lib/jit_disasm.c b/deps/lightning/lib/jit_disasm.c index 15b91b91..856a70bb 100644 --- a/deps/lightning/lib/jit_disasm.c +++ b/deps/lightning/lib/jit_disasm.c @@ -50,7 +50,21 @@ static asymbol *disasm_synthetic; static long disasm_num_symbols; static long disasm_num_synthetic; static jit_state_t *disasm_jit; -#define disasm_stream stdout +static FILE *disasm_stream; +#endif + +#if BINUTILS_2_38 +static int fprintf_styled(void *, enum disassembler_style, const char* fmt, ...) +{ + va_list args; + int r; + + va_start(args, fmt); + r = vprintf(fmt, args); + va_end(args); + + return r; +} #endif /* @@ -59,6 +73,7 @@ static jit_state_t *disasm_jit; void jit_init_debug(const char *progname) { + jit_init_print(); #if DISASSEMBLER bfd_init(); @@ -73,64 +88,29 @@ jit_init_debug(const char *progname) } bfd_check_format(disasm_bfd, bfd_object); bfd_check_format(disasm_bfd, bfd_archive); + if (!disasm_stream) + disasm_stream = stdout; + +#if BINUTILS_2_38 + INIT_DISASSEMBLE_INFO(disasm_info, disasm_stream, fprintf, fprintf_styled); +#else INIT_DISASSEMBLE_INFO(disasm_info, disasm_stream, fprintf); -# if defined(__i386__) || defined(__x86_64__) - disasm_info.arch = bfd_arch_i386; -# if defined(__x86_64__) -# if __WORDSIZE == 32 - disasm_info.mach = bfd_mach_x64_32; -# else - disasm_info.mach = bfd_mach_x86_64; -# endif -# else - disasm_info.mach = bfd_mach_i386_i386; -# endif -# endif -# if defined(__powerpc__) - disasm_info.arch = bfd_arch_powerpc; - disasm_info.mach = bfd_mach_ppc64; -# if HAVE_DISASSEMBLE_INIT_FOR_TARGET +#endif + disasm_info.arch = bfd_get_arch(disasm_bfd); + disasm_info.mach = bfd_get_mach(disasm_bfd); + +# if HAVE_DISASSEMBLE_INIT_FOR_TARGET disassemble_init_for_target(&disasm_info); -# elif HAVE_DISASSEMBLE_INIT_POWERPC - disassemble_init_powerpc(&disasm_info); -# endif -# if defined(__powerpc64__) +# endif + +# if defined(__powerpc64__) disasm_info.disassembler_options = "64"; -# endif -# if HAVE_DISASSEMBLE_INIT_FOR_TARGET - disassemble_init_for_target(&disasm_info); -# elif HAVE_DISASSEMBLE_INIT_POWERPC - disassemble_init_powerpc(&disasm_info); -# endif # endif -# if defined(__sparc__) +# if defined(__sparc__) || defined(__s390__) || defined(__s390x__) disasm_info.endian = disasm_info.display_endian = BFD_ENDIAN_BIG; # endif # if defined(__s390__) || defined(__s390x__) - disasm_info.arch = bfd_arch_s390; -# if __WORDSIZE == 32 - disasm_info.mach = bfd_mach_s390_31; -# else - disasm_info.mach = bfd_mach_s390_64; -# endif - disasm_info.endian = disasm_info.display_endian = BFD_ENDIAN_BIG; disasm_info.disassembler_options = "zarch"; -# endif -# if defined(__alpha__) - disasm_info.arch = bfd_arch_alpha; - disasm_info.mach = bfd_mach_alpha_ev6; -# endif -# if defined(__hppa__) - disasm_info.arch = bfd_arch_hppa; - disasm_info.mach = bfd_mach_hppa10; -# endif -# if defined(__riscv) - disasm_info.arch = bfd_arch_riscv; -# if __WORDSIZE == 32 - disasm_info.mach = bfd_mach_riscv32; -# else - disasm_info.mach = bfd_mach_riscv64; -# endif # endif disasm_info.print_address_func = disasm_print_address;