80 |
|
#include "vm_alloc.h" |
81 |
|
#include "sigsegv.h" |
82 |
|
|
83 |
+ |
#if USE_JIT |
84 |
+ |
extern void (*flush_icache)(int); // from compemu_support.cpp |
85 |
+ |
#endif |
86 |
+ |
|
87 |
|
#ifdef ENABLE_MON |
88 |
|
# include "mon.h" |
89 |
|
#endif |
209 |
|
|
210 |
|
static void sigsegv_dump_state(sigsegv_address_t fault_address, sigsegv_address_t fault_instruction) |
211 |
|
{ |
212 |
< |
fprintf(stderr, "do_handle_screen_fault: unhandled address %p", fault_address); |
212 |
> |
fprintf(stderr, "Caught SIGSEGV at address %p", fault_address); |
213 |
|
if (fault_instruction != SIGSEGV_INVALID_PC) |
214 |
|
fprintf(stderr, " [IP=%p]", fault_instruction); |
215 |
|
fprintf(stderr, "\n"); |
218 |
|
extern void m68k_dumpstate(uaecptr *nextpc); |
219 |
|
m68k_dumpstate(&nextpc); |
220 |
|
#endif |
221 |
+ |
#if USE_JIT && JIT_DEBUG |
222 |
+ |
extern void compiler_dumpstate(void); |
223 |
+ |
compiler_dumpstate(); |
224 |
+ |
#endif |
225 |
|
VideoQuitFullScreen(); |
226 |
|
#ifdef ENABLE_MON |
227 |
|
char *arg[4] = {"mon", "-m", "-r", NULL}; |
734 |
|
|
735 |
|
void FlushCodeCache(void *start, uint32 size) |
736 |
|
{ |
737 |
+ |
#if USE_JIT |
738 |
+ |
if (UseJIT) |
739 |
+ |
flush_icache(-1); |
740 |
+ |
#endif |
741 |
|
#if !EMULATED_68K && defined(__NetBSD__) |
742 |
|
m68k_sync_icache(start, size); |
743 |
|
#endif |