@@ -212,7 +212,8 @@ u32 CPU::CodeCache::EmitASMFunctions(void* code, u32 code_size)
212212 lagoon_label_t dispatch = {};
213213 lagoon_label_t run_events_and_dispatch = {};
214214
215- g_enter_recompiler = reinterpret_cast <decltype (g_enter_recompiler)>(laAsm->cursor );
215+ g_recompiler_functions.enter_recompiler =
216+ reinterpret_cast <decltype (g_recompiler_functions.enter_recompiler )>(laAsm->cursor );
216217 {
217218 // TODO: reserve some space for saving caller-saved registers
218219
@@ -233,15 +234,15 @@ u32 CPU::CodeCache::EmitASMFunctions(void* code, u32 code_size)
233234 la_bltu (laAsm, RARG1 , RARG2 , la_label (laAsm, &skip_event_check));
234235
235236 la_bind (laAsm, &run_events_and_dispatch);
236- g_run_events_and_dispatch = laAsm->cursor ;
237+ g_recompiler_functions. run_events_and_dispatch = laAsm->cursor ;
237238 laEmitCall (laAsm, reinterpret_cast <const void *>(&TimingEvents::RunEvents));
238239
239240 la_bind (laAsm, &skip_event_check);
240241 la_label_free (laAsm, &skip_event_check);
241242 }
242243
243244 // TODO: align?
244- g_dispatcher = laAsm->cursor ;
245+ g_recompiler_functions. dispatcher = laAsm->cursor ;
245246 {
246247 la_bind (laAsm, &dispatch);
247248
@@ -262,21 +263,21 @@ u32 CPU::CodeCache::EmitASMFunctions(void* code, u32 code_size)
262263 la_jirl (laAsm, LA_ZERO , RARG1 , 0 );
263264 }
264265
265- g_compile_or_revalidate_block = laAsm->cursor ;
266+ g_recompiler_functions. compile_or_revalidate_block = laAsm->cursor ;
266267 {
267268 la_ld_w (laAsm, RARG1 , RSTATE , OFFS (&g_state.pc ));
268269 laEmitCall (laAsm, reinterpret_cast <const void *>(&CompileOrRevalidateBlock));
269270 la_b (laAsm, la_label (laAsm, &dispatch));
270271 }
271272
272- g_discard_and_recompile_block = laAsm->cursor ;
273+ g_recompiler_functions. discard_and_recompile_block = laAsm->cursor ;
273274 {
274275 la_ld_w (laAsm, RARG1 , RSTATE , OFFS (&g_state.pc ));
275276 laEmitCall (laAsm, reinterpret_cast <const void *>(&DiscardAndRecompileBlock));
276277 la_b (laAsm, la_label (laAsm, &dispatch));
277278 }
278279
279- g_interpret_block = laAsm->cursor ;
280+ g_recompiler_functions. interpret_block = laAsm->cursor ;
280281 {
281282 laEmitCall (laAsm, CodeCache::GetInterpretUncachedBlockFunction ());
282283 la_ld_w (laAsm, RARG1 , RSTATE , OFFS (&g_state.pending_ticks ));
@@ -547,7 +548,7 @@ void CPU::LoongArch64Recompiler::GenerateBlockProtectCheck(const u8* ram_ptr, co
547548 lagoon_label_t block_unchanged = {};
548549 la_b (laAsm, la_label (laAsm, &block_unchanged));
549550 la_bind (laAsm, &block_changed);
550- laEmitJmp (laAsm, CodeCache::g_discard_and_recompile_block );
551+ laEmitJmp (laAsm, CodeCache::g_recompiler_functions. discard_and_recompile_block );
551552 la_bind (laAsm, &block_unchanged);
552553 la_label_free (laAsm, &block_changed);
553554 la_label_free (laAsm, &block_unchanged);
@@ -714,19 +715,19 @@ void CPU::LoongArch64Recompiler::EndAndLinkBlock(const std::optional<u32>& newpc
714715 // TODO: see if we can do a far jump somehow with this..
715716 lagoon_label_t cont = {};
716717 la_blt (laAsm, RARG1 , RARG2 , la_label (laAsm, &cont));
717- laEmitJmp (laAsm, CodeCache::g_run_events_and_dispatch );
718+ laEmitJmp (laAsm, CodeCache::g_recompiler_functions. run_events_and_dispatch );
718719 la_bind (laAsm, &cont);
719720 la_label_free (laAsm, &cont);
720721 }
721722
722723 // jump to dispatcher or next block
723724 if (force_run_events)
724725 {
725- laEmitJmp (laAsm, CodeCache::g_run_events_and_dispatch );
726+ laEmitJmp (laAsm, CodeCache::g_recompiler_functions. run_events_and_dispatch );
726727 }
727728 else if (!newpc.has_value ())
728729 {
729- laEmitJmp (laAsm, CodeCache::g_dispatcher );
730+ laEmitJmp (laAsm, CodeCache::g_recompiler_functions. dispatcher );
730731 }
731732 else
732733 {
0 commit comments