2018-01-04 21:12:02 +00:00
|
|
|
/* This file is part of the dynarmic project.
|
|
|
|
* Copyright (c) 2016 MerryMage
|
2020-04-23 15:25:11 +01:00
|
|
|
* SPDX-License-Identifier: 0BSD
|
2018-01-04 21:12:02 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstddef>
|
|
|
|
|
2020-04-08 11:46:36 +01:00
|
|
|
namespace Dynarmic::Backend::X64 {
|
2018-01-04 21:12:02 +00:00
|
|
|
|
|
|
|
struct JitStateInfo {
|
|
|
|
template <typename JitStateType>
|
|
|
|
JitStateInfo(const JitStateType&)
|
2021-05-04 14:39:09 +01:00
|
|
|
: offsetof_guest_MXCSR(offsetof(JitStateType, guest_MXCSR))
|
2020-06-20 00:00:36 +01:00
|
|
|
, offsetof_asimd_MXCSR(offsetof(JitStateType, asimd_MXCSR))
|
2018-01-23 18:47:10 +00:00
|
|
|
, offsetof_rsb_ptr(offsetof(JitStateType, rsb_ptr))
|
|
|
|
, rsb_ptr_mask(JitStateType::RSBPtrMask)
|
|
|
|
, offsetof_rsb_location_descriptors(offsetof(JitStateType, rsb_location_descriptors))
|
|
|
|
, offsetof_rsb_codeptrs(offsetof(JitStateType, rsb_codeptrs))
|
2019-05-05 19:49:54 +01:00
|
|
|
, offsetof_cpsr_nzcv(offsetof(JitStateType, cpsr_nzcv))
|
2018-06-30 10:49:47 +01:00
|
|
|
, offsetof_fpsr_exc(offsetof(JitStateType, fpsr_exc))
|
2018-07-15 23:19:35 +01:00
|
|
|
, offsetof_fpsr_qc(offsetof(JitStateType, fpsr_qc))
|
2018-01-04 21:12:02 +00:00
|
|
|
{}
|
|
|
|
|
|
|
|
const size_t offsetof_guest_MXCSR;
|
2020-06-20 00:00:36 +01:00
|
|
|
const size_t offsetof_asimd_MXCSR;
|
2018-01-23 18:47:10 +00:00
|
|
|
const size_t offsetof_rsb_ptr;
|
|
|
|
const size_t rsb_ptr_mask;
|
|
|
|
const size_t offsetof_rsb_location_descriptors;
|
|
|
|
const size_t offsetof_rsb_codeptrs;
|
2019-05-05 19:49:54 +01:00
|
|
|
const size_t offsetof_cpsr_nzcv;
|
2018-06-30 10:49:47 +01:00
|
|
|
const size_t offsetof_fpsr_exc;
|
2018-07-15 23:19:35 +01:00
|
|
|
const size_t offsetof_fpsr_qc;
|
2018-01-04 21:12:02 +00:00
|
|
|
};
|
|
|
|
|
2020-04-08 11:46:36 +01:00
|
|
|
} // namespace Dynarmic::Backend::X64
|