mirror of
https://git.suyu.dev/suyu/dynarmic.git
synced 2025-12-31 19:54:27 +01:00
Proper implementation of Arm::Translate
This commit is contained in:
parent
d743adf518
commit
14388ea690
29 changed files with 276 additions and 90 deletions
|
|
@ -14,6 +14,7 @@
|
|||
#include "common/common_types.h"
|
||||
#include "common/scope_exit.h"
|
||||
#include "frontend/arm_types.h"
|
||||
#include "frontend/translate.h"
|
||||
#include "interface/interface.h"
|
||||
|
||||
namespace Dynarmic {
|
||||
|
|
@ -27,12 +28,13 @@ struct BlockOfCode : Gen::XCodeBlock {
|
|||
};
|
||||
|
||||
struct Jit::Impl {
|
||||
Impl(UserCallbacks callbacks) : emitter(&block_of_code, &routines, callbacks) {}
|
||||
Impl(UserCallbacks callbacks) : emitter(&block_of_code, &routines, callbacks), callbacks(callbacks) {}
|
||||
|
||||
JitState jit_state{};
|
||||
Routines routines{};
|
||||
BlockOfCode block_of_code{};
|
||||
EmitX64 emitter;
|
||||
const UserCallbacks callbacks;
|
||||
|
||||
size_t Execute(size_t cycle_count) {
|
||||
u32 pc = jit_state.Reg[15];
|
||||
|
|
@ -50,7 +52,7 @@ private:
|
|||
if (code_ptr)
|
||||
return code_ptr;
|
||||
|
||||
IR::Block ir_block = IR::Block({0, false, false}); // TODO: Do this.
|
||||
IR::Block ir_block = Arm::Translate(descriptor, callbacks.MemoryRead32);
|
||||
return emitter.Emit(descriptor, ir_block);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue