dynarmic/src/backend_x64/routines.h

34 lines
827 B
C
Raw Normal View History

2016-07-01 15:01:06 +02:00
/* This file is part of the dynarmic project.
* Copyright (c) 2016 MerryMage
* This software may be used and distributed according to the terms of the GNU
* General Public License version 2 or any later version.
*/
#pragma once
#include "backend_x64/jitstate.h"
#include "common/common_types.h"
#include "common/x64/emitter.h"
namespace Dynarmic {
namespace BackendX64 {
class Routines final : private Gen::XCodeBlock {
public:
Routines();
size_t RunCode(JitState* jit_state, CodePtr basic_block, size_t cycles_to_run) const;
CodePtr RunCodeReturnAddress() const;
private:
using RunCodeFuncType = void(*)(JitState*, CodePtr);
RunCodeFuncType run_code;
void GenRunCode();
CodePtr return_from_run_code;
void GenReturnFromRunCode();
};
} // namespace BackendX64
} // namespace Dynarmic