jitstate: Remove code argument from ResetRSB
This commit is contained in:
parent
ea6a4e82b5
commit
b10c438e8e
3 changed files with 8 additions and 7 deletions
|
@ -32,7 +32,7 @@ using namespace BackendX64;
|
||||||
struct Jit::Impl {
|
struct Jit::Impl {
|
||||||
Impl(Jit* jit, UserCallbacks callbacks)
|
Impl(Jit* jit, UserCallbacks callbacks)
|
||||||
: block_of_code()
|
: block_of_code()
|
||||||
, jit_state(&block_of_code)
|
, jit_state()
|
||||||
, emitter(&block_of_code, callbacks, jit)
|
, emitter(&block_of_code, callbacks, jit)
|
||||||
, callbacks(callbacks)
|
, callbacks(callbacks)
|
||||||
{}
|
{}
|
||||||
|
@ -127,12 +127,12 @@ void Jit::ClearCache(bool poison_memory) {
|
||||||
ASSERT(!is_executing);
|
ASSERT(!is_executing);
|
||||||
impl->block_of_code.ClearCache(poison_memory);
|
impl->block_of_code.ClearCache(poison_memory);
|
||||||
impl->emitter.ClearCache();
|
impl->emitter.ClearCache();
|
||||||
impl->jit_state.ResetRSB(&impl->block_of_code);
|
impl->jit_state.ResetRSB();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit::Reset() {
|
void Jit::Reset() {
|
||||||
ASSERT(!is_executing);
|
ASSERT(!is_executing);
|
||||||
impl->jit_state = JitState(&impl->block_of_code);
|
impl->jit_state = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
void Jit::HaltExecution() {
|
void Jit::HaltExecution() {
|
||||||
|
|
|
@ -14,8 +14,9 @@
|
||||||
namespace Dynarmic {
|
namespace Dynarmic {
|
||||||
namespace BackendX64 {
|
namespace BackendX64 {
|
||||||
|
|
||||||
void JitState::ResetRSB(const BlockOfCode* code) {
|
void JitState::ResetRSB() {
|
||||||
rsb_codeptrs.fill(reinterpret_cast<u64>(code->GetReturnFromRunCodeAddress()));
|
rsb_location_descriptors.fill(0xFFFFFFFFFFFFFFFFull);
|
||||||
|
rsb_codeptrs.fill(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -18,7 +18,7 @@ class BlockOfCode;
|
||||||
constexpr size_t SpillCount = 64;
|
constexpr size_t SpillCount = 64;
|
||||||
|
|
||||||
struct JitState {
|
struct JitState {
|
||||||
explicit JitState(const BlockOfCode* code) { ResetRSB(code); }
|
JitState() { ResetRSB(); }
|
||||||
|
|
||||||
u32 Cpsr = 0;
|
u32 Cpsr = 0;
|
||||||
std::array<u32, 16> Reg{}; // Current register file.
|
std::array<u32, 16> Reg{}; // Current register file.
|
||||||
|
@ -43,7 +43,7 @@ struct JitState {
|
||||||
u32 rsb_ptr = 0;
|
u32 rsb_ptr = 0;
|
||||||
std::array<u64, RSBSize> rsb_location_descriptors;
|
std::array<u64, RSBSize> rsb_location_descriptors;
|
||||||
std::array<u64, RSBSize> rsb_codeptrs;
|
std::array<u64, RSBSize> rsb_codeptrs;
|
||||||
void ResetRSB(const BlockOfCode* code);
|
void ResetRSB();
|
||||||
|
|
||||||
u32 FPSCR_IDC = 0;
|
u32 FPSCR_IDC = 0;
|
||||||
u32 FPSCR_UFC = 0;
|
u32 FPSCR_UFC = 0;
|
||||||
|
|
Loading…
Reference in a new issue