/**************************************************************************** * * * Project 64 - A Nintendo 64 emulator. * * http://www.pj64-emu.com/ * * Copyright (C) 2012 Project64. All rights reserved. * * * * License: * * GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * * * ****************************************************************************/ #pragma once class CCompiledFunc { //constructor CCompiledFunc ( void ); // not implemented public: CCompiledFunc ( const CCodeBlock & CodeBlock ); typedef void (* Func)(void); //Get Private Information inline const DWORD EnterPC ( void ) const { return m_EnterPC; } inline const DWORD MinPC ( void ) const { return m_MinPC; } inline const DWORD MaxPC ( void ) const { return m_MaxPC; } inline const Func Function ( void ) const { return m_Function; } inline const MD5Digest & Hash ( void ) const { return m_Hash; } inline CCompiledFunc * Next ( void ) const { return m_Next; } inline void SetNext ( CCompiledFunc * Next ) { m_Next = Next; } inline QWORD MemContents(int i) { return m_MemContents[i]; } inline QWORD * MemLocation(int i) { return m_MemLocation[i]; } private: //Information DWORD m_EnterPC; // The Entry PC DWORD m_MinPC; // The Lowest PC in the function DWORD m_MaxPC; // The Highest PC in the function MD5Digest m_Hash; //From querying the recompiler get information about the function Func m_Function; CCompiledFunc * m_Next; //Validation QWORD m_MemContents[2], * m_MemLocation[2]; }; typedef std::map CCompiledFuncList;