mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-05-01 02:09:00 +02:00
fastlink impl
This commit is contained in:
parent
ea759d3f5a
commit
247e7d1ff9
2 changed files with 16 additions and 1 deletions
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include <memory>
|
||||
#include <mutex>
|
||||
#include <cstddef>
|
||||
|
||||
#include <boost/icl/interval_set.hpp>
|
||||
#include "dynarmic/common/assert.h"
|
||||
|
|
|
|||
|
|
@ -169,7 +169,21 @@ void EmitTerminal(powah::Context& code, EmitContext& ctx, IR::Term::LinkBlock te
|
|||
}
|
||||
|
||||
void EmitTerminal(powah::Context& code, EmitContext& ctx, IR::Term::LinkBlockFast terminal, IR::LocationDescriptor initial_location, bool) {
|
||||
ASSERT(false && "unimp");
|
||||
if (ctx.emit_conf.a64_variant) {
|
||||
auto const tmp = ctx.reg_alloc.ScratchGpr();
|
||||
code.LI(tmp, terminal.next.Value());
|
||||
code.STD(tmp, PPC64::RJIT, offsetof(A64JitState, pc));
|
||||
code.LD(tmp, PPC64::RTOCPTR, 0);
|
||||
code.MTCTR(tmp);
|
||||
code.LD(powah::R2, PPC64::RTOCPTR, 8);
|
||||
code.LD(powah::R11, PPC64::RTOCPTR, 16);
|
||||
code.BCTR();
|
||||
} else {
|
||||
auto const tmp = ctx.reg_alloc.ScratchGpr();
|
||||
code.LI(tmp, terminal.next.Value());
|
||||
code.STW(tmp, PPC64::RJIT, offsetof(A32JitState, regs) + sizeof(u32) * 15);
|
||||
ASSERT(false && "unimp");
|
||||
}
|
||||
}
|
||||
|
||||
void EmitTerminal(powah::Context& code, EmitContext& ctx, IR::Term::PopRSBHint, IR::LocationDescriptor, bool) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue