From 039fb95f8005596708129638a21d206f10960a91 Mon Sep 17 00:00:00 2001 From: Jarek Syrylak Date: Thu, 16 Aug 2018 19:44:31 +0100 Subject: [PATCH] More fixes as per PR feedback. --- src/core/arm/dyncom/arm_dyncom.cpp | 2 +- src/core/arm/skyeye_common/armstate.cpp | 24 +++++++++++++----------- src/core/gdbstub/gdbstub.cpp | 4 ++-- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/core/arm/dyncom/arm_dyncom.cpp b/src/core/arm/dyncom/arm_dyncom.cpp index b984a62cd..a46a71682 100644 --- a/src/core/arm/dyncom/arm_dyncom.cpp +++ b/src/core/arm/dyncom/arm_dyncom.cpp @@ -147,7 +147,7 @@ void ARM_DynCom::ExecuteInstructions(u64 num_instructions) { state->NumInstrsToExecute = num_instructions; unsigned ticks_executed = InterpreterMainLoop(state.get()); CoreTiming::AddTicks(ticks_executed); - state.get()->ServeBreak(); + state->ServeBreak(); } std::unique_ptr ARM_DynCom::NewContext() const { diff --git a/src/core/arm/skyeye_common/armstate.cpp b/src/core/arm/skyeye_common/armstate.cpp index 8a0e43a21..88ad7f533 100644 --- a/src/core/arm/skyeye_common/armstate.cpp +++ b/src/core/arm/skyeye_common/armstate.cpp @@ -597,16 +597,18 @@ void ARMul_State::WriteCP15Register(u32 value, u32 crn, u32 opcode_1, u32 crm, u } void ARMul_State::ServeBreak() { - if (GDBStub::IsServerEnabled()) { - if (last_bkpt_hit) { - Reg[15] = last_bkpt.address; - } - Kernel::Thread* thread = Kernel::GetCurrentThread(); - Core::CPU().SaveContext(thread->context); - if (last_bkpt_hit || GDBStub::GetCpuStepFlag()) { - last_bkpt_hit = false; - GDBStub::Break(); - GDBStub::SendTrap(thread, 5); - } + if (!GDBStub::IsServerEnabled()) { + return; + } + + if (last_bkpt_hit) { + Reg[15] = last_bkpt.address; + } + Kernel::Thread* thread = Kernel::GetCurrentThread(); + Core::CPU().SaveContext(thread->context); + if (last_bkpt_hit || GDBStub::GetCpuStepFlag()) { + last_bkpt_hit = false; + GDBStub::Break(); + GDBStub::SendTrap(thread, 5); } } diff --git a/src/core/gdbstub/gdbstub.cpp b/src/core/gdbstub/gdbstub.cpp index cc8fc9ffb..007f0688c 100644 --- a/src/core/gdbstub/gdbstub.cpp +++ b/src/core/gdbstub/gdbstub.cpp @@ -215,8 +215,8 @@ static void FpuWrite(std::size_t id, u64 val, Kernel::Thread* thread = nullptr) } if (id >= D0_REGISTER && id < FPSCR_REGISTER) { - thread->context->SetFpuRegister(2 * (id - D0_REGISTER), (u32)val); - thread->context->SetFpuRegister(2 * (id - D0_REGISTER) + 1, val >> 32); + thread->context->SetFpuRegister(2 * (id - D0_REGISTER), static_cast(val)); + thread->context->SetFpuRegister(2 * (id - D0_REGISTER) + 1, static_cast(val >> 32)); } else if (id == FPSCR_REGISTER) { return thread->context->SetFpscr(static_cast(val)); }