Line data Source code
1 : #ifdef __PLUMED_HAS_ASMJIT 2 : // This file is part of AsmJit project <https://asmjit.com> 3 : // 4 : // See asmjit.h or LICENSE.md for license and copyright information 5 : // SPDX-License-Identifier: Zlib 6 : 7 : #ifndef ASMJIT_CORE_TARGET_H_INCLUDED 8 : #define ASMJIT_CORE_TARGET_H_INCLUDED 9 : 10 : #include "archtraits.h" 11 : #include "func.h" 12 : 13 : ASMJIT_BEGIN_NAMESPACE 14 : 15 : //! \addtogroup asmjit_core 16 : //! \{ 17 : 18 : //! Target is an abstract class that describes a machine code target. 19 : class ASMJIT_VIRTAPI Target { 20 : public: 21 : ASMJIT_BASE_CLASS(Target) 22 : ASMJIT_NONCOPYABLE(Target) 23 : 24 : //! Target environment information. 25 : Environment _environment; 26 : 27 : //! \name Construction & Destruction 28 : //! \{ 29 : 30 : //! Creates a `Target` instance. 31 : ASMJIT_API Target() noexcept; 32 : //! Destroys the `Target` instance. 33 : ASMJIT_API virtual ~Target() noexcept; 34 : 35 : //! \} 36 : 37 : //! \name Accessors 38 : //! \{ 39 : 40 : //! Returns target's environment. 41 27492 : inline const Environment& environment() const noexcept { return _environment; } 42 : //! Returns the target architecture. 43 : inline Arch arch() const noexcept { return _environment.arch(); } 44 : //! Returns the target sub-architecture. 45 : inline SubArch subArch() const noexcept { return _environment.subArch(); } 46 : 47 : //! \} 48 : }; 49 : 50 : //! \} 51 : 52 : ASMJIT_END_NAMESPACE 53 : 54 : #endif // ASMJIT_CORE_TARGET_H_INCLUDED 55 : 56 : #endif // __PLUMED_HAS_ASMJIT