project64/Source/Project64-core/N64System/Recompiler/FunctionInfo.h

67 lines
1.3 KiB
C
Raw Normal View History

2012-12-19 09:30:18 +00:00
#pragma once
#include <Project64-core/N64System/Recompiler/CodeBlock.h>
2012-12-19 09:30:18 +00:00
class CCompiledFunc
{
public:
CCompiledFunc(const CCodeBlock & CodeBlock);
typedef void (*Func)();
2022-10-10 00:22:17 +00:00
const uint32_t EnterPC() const
{
return m_EnterPC;
}
const uint32_t MinPC() const
{
return m_MinPC;
}
const uint32_t MaxPC() const
{
return m_MaxPC;
}
const Func Function() const
{
return m_Function;
}
const MD5Digest & Hash() const
{
return m_Hash;
}
2022-10-10 00:22:17 +00:00
CCompiledFunc * Next() const
{
return m_Next;
}
void SetNext(CCompiledFunc * Next)
{
m_Next = Next;
}
2012-09-24 22:07:51 +00:00
2022-10-10 00:22:17 +00:00
uint64_t MemContents(int32_t i)
{
return m_MemContents[i];
}
uint64_t * MemLocation(int32_t i)
{
return m_MemLocation[i];
}
2012-09-24 22:07:51 +00:00
private:
CCompiledFunc(void);
2022-10-10 00:22:17 +00:00
CCompiledFunc(const CCompiledFunc &);
CCompiledFunc & operator=(const CCompiledFunc &);
uint32_t m_EnterPC;
uint32_t m_MinPC;
uint32_t m_MaxPC;
MD5Digest m_Hash;
Func m_Function;
2022-10-10 00:22:17 +00:00
CCompiledFunc * m_Next;
uint64_t m_MemContents[2], *m_MemLocation[2];
};
typedef std::map<uint32_t, CCompiledFunc *> CCompiledFuncList;