rpcsx/rpcs3/Emu/ARMv7/ARMv7Thread.h

44 lines
1.1 KiB
C
Raw Normal View History

#pragma once
2013-11-06 02:01:15 +01:00
#include "Emu/CPU/CPUThread.h"
2015-01-20 16:06:15 +01:00
#include "ARMv7Context.h"
2015-07-01 00:25:52 +02:00
class ARMv7Thread final : public CPUThread, public ARMv7Context
{
public:
2015-07-01 00:25:52 +02:00
std::function<void(ARMv7Thread& CPU)> custom_task;
public:
2015-07-01 00:25:52 +02:00
ARMv7Thread(const std::string& name);
virtual ~ARMv7Thread() override;
virtual void DumpInformation() const override;
virtual u32 GetPC() const override { return PC; }
virtual u32 GetOffset() const override { return 0; }
virtual void DoRun() override;
virtual void Task() override;
virtual void InitRegs() override;
virtual void InitStack() override;
virtual void CloseStack() override;
2014-11-06 16:29:14 +01:00
u32 GetStackArg(u32 pos);
void FastCall(u32 addr);
void FastStop();
2015-07-01 00:25:52 +02:00
virtual std::string RegsToString() const override;
virtual std::string ReadRegString(const std::string& reg) const override;
virtual bool WriteRegString(const std::string& reg, std::string value) override;
2014-11-06 16:29:14 +01:00
};
class armv7_thread : cpu_thread
{
u32 argv;
u32 argc;
public:
armv7_thread(u32 entry, const std::string& name, u32 stack_size, s32 prio);
cpu_thread& args(std::initializer_list<std::string> values) override;
cpu_thread& run() override;
};