mirror of
https://github.com/ZDoom/raze-gles.git
synced 2025-01-22 23:21:08 +00:00
77 lines
2.1 KiB
C++
77 lines
2.1 KiB
C++
// [AsmJit]
|
|
// Complete x86/x64 JIT and Remote Assembler for C++.
|
|
//
|
|
// [License]
|
|
// Zlib - See LICENSE.md file in the package.
|
|
|
|
// [Export]
|
|
#define ASMJIT_EXPORTS
|
|
|
|
// [Guard]
|
|
#include "../asmjit_build.h"
|
|
#if defined(ASMJIT_BUILD_X86)
|
|
|
|
// [Dependencies]
|
|
#include "../base/arch.h"
|
|
#include "../base/inst.h"
|
|
|
|
#if defined(ASMJIT_BUILD_X86)
|
|
# include "../x86/x86instimpl_p.h"
|
|
#endif // ASMJIT_BUILD_X86
|
|
|
|
#if defined(ASMJIT_BUILD_ARM)
|
|
# include "../arm/arminstimpl_p.h"
|
|
#endif // ASMJIT_BUILD_ARM
|
|
|
|
// [Api-Begin]
|
|
#include "../asmjit_apibegin.h"
|
|
|
|
namespace asmjit {
|
|
|
|
// ============================================================================
|
|
// [asmjit::Inst - Validate]
|
|
// ============================================================================
|
|
|
|
#if !defined(ASMJIT_DISABLE_VALIDATION)
|
|
Error Inst::validate(uint32_t archType, const Detail& detail, const Operand_* operands, uint32_t count) noexcept {
|
|
#if defined(ASMJIT_BUILD_X86)
|
|
if (ArchInfo::isX86Family(archType))
|
|
return X86InstImpl::validate(archType, detail, operands, count);
|
|
#endif
|
|
|
|
#if defined(ASMJIT_BUILD_ARM)
|
|
if (ArchInfo::isArmFamily(archType))
|
|
return ArmInstImpl::validate(archType, detail, operands, count);
|
|
#endif
|
|
|
|
return DebugUtils::errored(kErrorInvalidArch);
|
|
}
|
|
#endif
|
|
|
|
// ============================================================================
|
|
// [asmjit::Inst - CheckFeatures]
|
|
// ============================================================================
|
|
|
|
#if !defined(ASMJIT_DISABLE_EXTENSIONS)
|
|
Error Inst::checkFeatures(uint32_t archType, const Detail& detail, const Operand_* operands, uint32_t count, CpuFeatures& out) noexcept {
|
|
#if defined(ASMJIT_BUILD_X86)
|
|
if (ArchInfo::isX86Family(archType))
|
|
return X86InstImpl::checkFeatures(archType, detail, operands, count, out);
|
|
#endif
|
|
|
|
#if defined(ASMJIT_BUILD_ARM)
|
|
if (ArchInfo::isArmFamily(archType))
|
|
return ArmInstImpl::checkFeatures(archType, detail, operands, count, out);
|
|
#endif
|
|
|
|
return DebugUtils::errored(kErrorInvalidArch);
|
|
}
|
|
#endif // !defined(ASMJIT_DISABLE_EXTENSIONS)
|
|
|
|
} // asmjit namespace
|
|
|
|
// [Api-End]
|
|
#include "../asmjit_apiend.h"
|
|
|
|
// [Guard]
|
|
#endif // ASMJIT_BUILD_X86
|