2013-11-03 20:23:16 +01:00
|
|
|
#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"
|
2014-10-31 02:12:07 +01:00
|
|
|
|
2013-11-05 20:22:58 +01:00
|
|
|
class ARMv7Thread : public CPUThread
|
2013-11-03 20:23:16 +01:00
|
|
|
{
|
|
|
|
|
public:
|
2015-01-20 16:06:15 +01:00
|
|
|
ARMv7Context context;
|
2014-12-01 20:20:27 +01:00
|
|
|
|
2013-11-05 20:22:58 +01:00
|
|
|
ARMv7Thread();
|
2015-01-31 17:44:26 +01:00
|
|
|
~ARMv7Thread();
|
2013-11-03 20:23:16 +01:00
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
virtual void InitRegs();
|
|
|
|
|
virtual void InitStack();
|
2015-02-01 14:52:34 +01:00
|
|
|
virtual void CloseStack();
|
2014-11-06 16:29:14 +01:00
|
|
|
u32 GetStackArg(u32 pos);
|
2014-11-29 18:41:18 +01:00
|
|
|
void FastCall(u32 addr);
|
|
|
|
|
void FastStop();
|
2014-11-10 01:21:50 +01:00
|
|
|
virtual void DoRun();
|
2013-11-03 20:23:16 +01:00
|
|
|
|
|
|
|
|
public:
|
2014-04-01 02:33:55 +02:00
|
|
|
virtual std::string RegsToString();
|
|
|
|
|
virtual std::string ReadRegString(const std::string& reg);
|
|
|
|
|
virtual bool WriteRegString(const std::string& reg, std::string value);
|
2013-11-03 20:23:16 +01:00
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
virtual void DoReset();
|
|
|
|
|
virtual void DoPause();
|
|
|
|
|
virtual void DoResume();
|
|
|
|
|
virtual void DoStop();
|
|
|
|
|
|
|
|
|
|
virtual void DoCode();
|
2014-11-06 16:29:14 +01:00
|
|
|
};
|
2015-02-01 14:52:34 +01:00
|
|
|
|
|
|
|
|
class armv7_thread : cpu_thread
|
2014-11-19 15:16:30 +01:00
|
|
|
{
|
2015-02-01 14:52:34 +01:00
|
|
|
u32 argv;
|
2014-11-19 15:16:30 +01:00
|
|
|
u32 argc;
|
|
|
|
|
|
|
|
|
|
public:
|
2015-02-02 22:00:05 +01:00
|
|
|
armv7_thread(u32 entry, const std::string& name, u32 stack_size, s32 prio);
|
2014-11-19 15:16:30 +01:00
|
|
|
|
2015-02-01 14:52:34 +01:00
|
|
|
cpu_thread& args(std::initializer_list<std::string> values) override;
|
2014-11-19 15:16:30 +01:00
|
|
|
|
2015-02-01 14:52:34 +01:00
|
|
|
cpu_thread& run() override;
|
2014-11-22 17:49:54 +01:00
|
|
|
};
|