LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::ELF::X86ISA Class Reference

This class interfaces the different GNU_PROPERTY_X86_ISA_* properties which includes: More...

#include <X86ISA.hpp>

Inheritance diagram for LIEF::ELF::X86ISA:
Collaboration diagram for LIEF::ELF::X86ISA:

Public Types

enum class  FLAG { NONE = 0 , USED , NEEDED }
 
enum class  ISA {
  UNKNOWN = 0 , BASELINE , V2 , V3 ,
  V4 , CMOV , FMA , I486 ,
  I586 , I686 , SSE , SSE2 ,
  SSE3 , SSSE3 , SSE4_1 , SSE4_2 ,
  AVX , AVX2 , AVX512F , AVX512CD ,
  AVX512ER , AVX512PF , AVX512VL , AVX512DQ ,
  AVX512BW , AVX512_4FMAPS , AVX512_4VNNIW , AVX512_BITALG ,
  AVX512_IFMA , AVX512_VBMI , AVX512_VBMI2 , AVX512_VNNI ,
  AVX512_BF16
}
 
using values_t = std::vector<std::pair<FLAG, ISA>>
 
- Public Types inherited from LIEF::ELF::NoteGnuProperty::Property
enum class  TYPE {
  UNKNOWN = 0 , GENERIC , AARCH64_FEATURES , AARCH64_PAUTH ,
  STACK_SIZE , NO_COPY_ON_PROTECTED , X86_ISA , X86_FEATURE ,
  NEEDED
}
 LIEF's mirror types of the original GNU_PROPERTY_ values. More...
 

Public Member Functions

const values_tvalues () const
 List of the ISA values in this property.
 
 ~X86ISA () override=default
 
void dump (std::ostream &os) const override
 
- Public Member Functions inherited from LIEF::ELF::NoteGnuProperty::Property
TYPE type () const
 Return the LIEF's mirror type of the note.
 
virtual ~Property ()=default
 

Static Public Member Functions

static bool classof (const NoteGnuProperty::Property *prop)
 
static std::unique_ptr< X86ISAcreate (uint32_t type, BinaryStream &stream)
 

Detailed Description

This class interfaces the different GNU_PROPERTY_X86_ISA_* properties which includes:

  • GNU_PROPERTY_X86_ISA_1_USED
  • GNU_PROPERTY_X86_ISA_1_NEEDED
  • GNU_PROPERTY_X86_COMPAT_ISA_1_USED
  • GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED
  • GNU_PROPERTY_X86_COMPAT_2_ISA_1_USED
  • GNU_PROPERTY_X86_COMPAT_2_ISA_1_NEEDED

Member Typedef Documentation

◆ values_t

using LIEF::ELF::X86ISA::values_t = std::vector<std::pair<FLAG, ISA>>

Member Enumeration Documentation

◆ FLAG

enum class LIEF::ELF::X86ISA::FLAG
strong
Enumerator
NONE 
USED 
NEEDED 

◆ ISA

enum class LIEF::ELF::X86ISA::ISA
strong
Enumerator
UNKNOWN 
BASELINE 
V2 
V3 
V4 
CMOV 
FMA 
I486 
I586 
I686 
SSE 
SSE2 
SSE3 
SSSE3 
SSE4_1 
SSE4_2 
AVX 
AVX2 
AVX512F 
AVX512CD 
AVX512ER 
AVX512PF 
AVX512VL 
AVX512DQ 
AVX512BW 
AVX512_4FMAPS 
AVX512_4VNNIW 
AVX512_BITALG 
AVX512_IFMA 
AVX512_VBMI 
AVX512_VBMI2 
AVX512_VNNI 
AVX512_BF16 

Constructor & Destructor Documentation

◆ ~X86ISA()

LIEF::ELF::X86ISA::~X86ISA ( )
overridedefault

Member Function Documentation

◆ classof()

static bool LIEF::ELF::X86ISA::classof ( const NoteGnuProperty::Property * prop)
inlinestatic

◆ create()

static std::unique_ptr< X86ISA > LIEF::ELF::X86ISA::create ( uint32_t type,
BinaryStream & stream )
static

◆ dump()

void LIEF::ELF::X86ISA::dump ( std::ostream & os) const
overridevirtual

◆ values()

const values_t & LIEF::ELF::X86ISA::values ( ) const
inline

List of the ISA values in this property.


The documentation for this class was generated from the following file: