| 51 | }; |
| 52 | |
| 53 | void ppu_thread_exit(ppu_thread &ppu, ppu_opcode_t, be_t<u32> *, |
| 54 | struct ppu_intrp_func *) { |
| 55 | ppu.state += cpu_flag::exit + cpu_flag::wait; |
| 56 | |
| 57 | // Deallocate Stack Area |
| 58 | ensure(vm::dealloc(ppu.stack_addr, vm::stack) == ppu.stack_size); |
| 59 | |
| 60 | if (auto dct = g_fxo->try_get<lv2_memory_container>()) { |
| 61 | dct->free(ppu.stack_size); |
| 62 | } |
| 63 | |
| 64 | if (ppu.call_history.index) { |
| 65 | ppu_log.notice("Calling history: %s", ppu.call_history); |
| 66 | ppu.call_history.index = 0; |
| 67 | } |
| 68 | |
| 69 | if (ppu.syscall_history.index) { |
| 70 | ppu_log.notice("HLE/LV2 history: %s", ppu.syscall_history); |
| 71 | ppu.syscall_history.index = 0; |
| 72 | } |
| 73 | } |
| 74 | |
| 75 | constexpr u32 c_max_ppu_name_size = 28; |
| 76 |
no test coverage detected