// SPDX-License-Identifier: MIT /* $info$ meta: frontend|x86-tables ~ Metadata that drives the frontend x86/64 decoding tags: frontend|x86-tables $end_info$ */ #include "Interface/Core/X86Tables/X86Tables.h" #include namespace FEXCore::X86Tables { std::array BaseOps{}; std::array SecondBaseOps{}; std::array RepModOps{}; std::array RepNEModOps{}; std::array OpSizeModOps{}; std::array PrimaryInstGroupOps{}; std::array SecondInstGroupOps{}; std::array SecondModRMTableOps{}; std::array X87Ops{}; std::array DDDNowOps{}; std::array H0F38TableOps{}; std::array H0F3ATableOps{}; std::array VEXTableOps{}; std::array VEXTableGroupOps{}; std::array XOPTableOps{}; std::array XOPTableGroupOps{}; std::array EVEXTableOps{}; void InitializeBaseTables(Context::OperatingMode Mode); void InitializeSecondaryTables(Context::OperatingMode Mode); void InitializePrimaryGroupTables(Context::OperatingMode Mode); void InitializeSecondaryGroupTables(); void InitializeSecondaryModRMTables(); void InitializeX87Tables(); void InitializeDDDTables(); void InitializeH0F38Tables(); void InitializeH0F3ATables(Context::OperatingMode Mode); void InitializeVEXTables(); void InitializeXOPTables(); void InitializeEVEXTables(); #ifndef NDEBUG uint64_t Total{}; uint64_t NumInsts{}; #endif void InitializeInfoTables(Context::OperatingMode Mode) { InitializeBaseTables(Mode); InitializeSecondaryTables(Mode); InitializePrimaryGroupTables(Mode); InitializeSecondaryGroupTables(); InitializeSecondaryModRMTables(); InitializeX87Tables(); InitializeDDDTables(); InitializeH0F38Tables(); InitializeH0F3ATables(Mode); InitializeVEXTables(); InitializeXOPTables(); InitializeEVEXTables(); #ifndef NDEBUG X86InstDebugInfo::InstallDebugInfo(); #endif } }