74 #include <yepPredefines.h>
77 typedef unsigned char Yep8u;
78 typedef unsigned short Yep16u;
79 typedef unsigned int Yep32u;
80 typedef unsigned long long Yep64u;
82 typedef signed char Yep8s;
83 typedef signed short Yep16s;
84 typedef signed int Yep32s;
85 typedef signed long long Yep64s;
88 typedef double Yep64f;
89 #if defined(YEP_X86_CPU) || defined(YEP_X64_CPU)
90 #if defined(YEP_GCC_COMPATIBLE_COMPILER) || (defined(YEP_INTEL_COMPILER_FOR_WINDOWS) && (__LONG_DOUBLE_SIZE__ == 80))
91 #define YEP_COMPILER_SUPPORTS_YEP80F_TYPE
92 typedef long double Yep80f;
96 typedef size_t YepSize;
99 #if defined(YEP_MICROSOFT_COMPILER)
101 typedef unsigned char YepBoolean;
102 #define YepBooleanTrue 1
103 #define YepBooleanFalse 0
106 typedef bool YepBoolean;
107 #define YepBooleanTrue true
108 #define YepBooleanFalse false
111 typedef bool YepBoolean;
112 const YepBoolean YepBooleanTrue =
true;
113 const YepBoolean YepBooleanFalse =
false;
116 typedef Yep16u Yep16f;
118 #pragma pack(push, 1)
145 #if defined(YEP_LITTLE_ENDIAN_BYTE_ORDER)
155 #elif defined(YEP_BIG_ENDIAN_BYTE_ORDER)
166 #error "Unknown or supported byte order"
466 const Yep64u YepIsaFeaturesDefault = 0x0000000000000000ull;
467 const Yep64u YepSimdFeaturesDefault = 0x0000000000000000ull;
468 const Yep64u YepSystemFeaturesDefault = 0x0000000000000000ull;
604 #define YepIsaFeaturesDefault 0x0000000000000000ull
605 #define YepSimdFeaturesDefault 0x0000000000000000ull
606 #define YepSystemFeaturesDefault 0x0000000000000000ull
613 #define YepSystemFeatureCycleCounter 0x0000000000000001ull
616 #define YepSystemFeatureCycleCounter64Bit 0x0000000000000002ull
619 #define YepSystemFeatureAddressSpace64Bit 0x0000000000000004ull
622 #define YepSystemFeatureGPRegisters64Bit 0x0000000000000008ull
625 #define YepSystemFeatureMisalignedAccess 0x0000000000000010ull
628 #define YepSystemFeatureSingleThreaded 0x0000000000000020ull
637 #define YepX86IsaFeatureFPU 0x0000000000000001ull
640 #define YepX86IsaFeatureCpuid 0x0000000000000002ull
643 #define YepX86IsaFeatureRdtsc 0x0000000000000004ull
646 #define YepX86IsaFeatureCMOV 0x0000000000000008ull
649 #define YepX86IsaFeatureSYSENTER 0x0000000000000010ull
652 #define YepX86IsaFeatureSYSCALL 0x0000000000000020ull
655 #define YepX86IsaFeatureMSR 0x0000000000000040ull
658 #define YepX86IsaFeatureClflush 0x0000000000000080ull
661 #define YepX86IsaFeatureMONITOR 0x0000000000000100ull
664 #define YepX86IsaFeatureFXSAVE 0x0000000000000200ull
667 #define YepX86IsaFeatureXSAVE 0x0000000000000400ull
670 #define YepX86IsaFeatureCmpxchg8b 0x0000000000000800ull
673 #define YepX86IsaFeatureCmpxchg16b 0x0000000000001000ull
676 #define YepX86IsaFeatureX64 0x0000000000002000ull
679 #define YepX86IsaFeatureLahfSahf64 0x0000000000004000ull
682 #define YepX86IsaFeatureFsGsBase 0x0000000000008000ull
685 #define YepX86IsaFeatureMovbe 0x0000000000010000ull
688 #define YepX86IsaFeaturePopcnt 0x0000000000020000ull
691 #define YepX86IsaFeatureLzcnt 0x0000000000040000ull
694 #define YepX86IsaFeatureBMI 0x0000000000080000ull
697 #define YepX86IsaFeatureBMI2 0x0000000000100000ull
700 #define YepX86IsaFeatureTBM 0x0000000000200000ull
703 #define YepX86IsaFeatureRdrand 0x0000000000400000ull
706 #define YepX86IsaFeatureACE 0x0000000000800000ull
709 #define YepX86IsaFeatureACE2 0x0000000001000000ull
712 #define YepX86IsaFeatureRNG 0x0000000002000000ull
715 #define YepX86IsaFeaturePHE 0x0000000004000000ull
718 #define YepX86IsaFeaturePMM 0x0000000008000000ull
721 #define YepX86IsaFeatureAES 0x0000000010000000ull
724 #define YepX86IsaFeaturePclmulqdq 0x0000000020000000ull
727 #define YepX86IsaFeatureRdtscp 0x0000000040000000ull
730 #define YepX86IsaFeatureLWP 0x0000000080000000ull
733 #define YepX86IsaFeatureHLE 0x0000000100000000ull
736 #define YepX86IsaFeatureRTM 0x0000000200000000ull
739 #define YepX86IsaFeatureXtest 0x0000000400000000ull
742 #define YepX86IsaFeatureRdseed 0x0000000800000000ull
745 #define YepX86IsaFeatureADX 0x0000001000000000ull
754 #define YepX86SimdFeatureMMX 0x0000000000000001ull
758 #define YepX86SimdFeatureMMXPlus 0x0000000000000002ull
761 #define YepX86SimdFeatureEMMX 0x0000000000000004ull
765 #define YepX86SimdFeature3dnow 0x0000000000000008ull
769 #define YepX86SimdFeature3dnowPlus 0x0000000000000010ull
772 #define YepX86SimdFeature3dnowPrefetch 0x0000000000000020ull
775 #define YepX86SimdFeature3dnowGeode 0x0000000000000040ull
779 #define YepX86SimdFeatureSSE 0x0000000000000080ull
783 #define YepX86SimdFeatureSSE2 0x0000000000000100ull
787 #define YepX86SimdFeatureSSE3 0x0000000000000200ull
791 #define YepX86SimdFeatureSSSE3 0x0000000000000400ull
795 #define YepX86SimdFeatureSSE4_1 0x0000000000000800ull
799 #define YepX86SimdFeatureSSE4_2 0x0000000000001000ull
803 #define YepX86SimdFeatureSSE4A 0x0000000000002000ull
807 #define YepX86SimdFeatureAVX 0x0000000000004000ull
811 #define YepX86SimdFeatureAVX2 0x0000000000008000ull
815 #define YepX86SimdFeatureXOP 0x0000000000010000ull
819 #define YepX86SimdFeatureF16C 0x0000000000020000ull
823 #define YepX86SimdFeatureFMA3 0x0000000000040000ull
827 #define YepX86SimdFeatureFMA4 0x0000000000080000ull
830 #define YepX86SimdFeatureKNF 0x0000000000100000ull
834 #define YepX86SimdFeatureKNC 0x0000000000200000ull
842 #define YepX86SystemFeatureFPU 0x0000000100000000ull
845 #define YepX86SystemFeatureSSE 0x0000000200000000ull
848 #define YepX86SystemFeatureAVX 0x0000000400000000ull
851 #define YepX86SystemFeatureMisalignedSSE 0x0000000800000000ull
854 #define YepX86SystemFeatureACE 0x0000001000000000ull
857 #define YepX86SystemFeatureACE2 0x0000002000000000ull
860 #define YepX86SystemFeatureRNG 0x0000004000000000ull
863 #define YepX86SystemFeaturePHE 0x0000008000000000ull
866 #define YepX86SystemFeaturePMM 0x0000010000000000ull
869 #define YepX86SystemFeatureMIC 0x0000020000000000ull
877 #define YepIA64IsaFeatureBrl 0x0000000000000001ull
880 #define YepIA64IsaFeatureAtomic128 0x0000000000000002ull
883 #define YepIA64IsaFeatureClz 0x0000000000000004ull
886 #define YepIA64IsaFeatureMpy4 0x0000000000000008ull
894 #define YepARMIsaFeatureV4 0x0000000000000001ull
897 #define YepARMIsaFeatureV5 0x0000000000000002ull
900 #define YepARMIsaFeatureV5E 0x0000000000000004ull
903 #define YepARMIsaFeatureV6 0x0000000000000008ull
906 #define YepARMIsaFeatureV6K 0x0000000000000010ull
909 #define YepARMIsaFeatureV7 0x0000000000000020ull
912 #define YepARMIsaFeatureV7MP 0x0000000000000040ull
915 #define YepARMIsaFeatureThumb 0x0000000000000080ull
918 #define YepARMIsaFeatureThumb2 0x0000000000000100ull
921 #define YepARMIsaFeatureThumbEE 0x0000000000000200ull
924 #define YepARMIsaFeatureJazelle 0x0000000000000400ull
927 #define YepARMIsaFeatureFPA 0x0000000000000800ull
930 #define YepARMIsaFeatureVFP 0x0000000000001000ull
933 #define YepARMIsaFeatureVFP2 0x0000000000002000ull
936 #define YepARMIsaFeatureVFP3 0x0000000000004000ull
939 #define YepARMIsaFeatureVFPd32 0x0000000000008000ull
942 #define YepARMIsaFeatureVFP3HP 0x0000000000010000ull
945 #define YepARMIsaFeatureVFP4 0x0000000000020000ull
948 #define YepARMIsaFeatureDiv 0x0000000000040000ull
951 #define YepARMIsaFeatureArmada 0x0000000000080000ull
959 #define YepARMSimdFeatureXScale 0x0000000000000001ull
962 #define YepARMSimdFeatureWMMX 0x0000000000000002ull
965 #define YepARMSimdFeatureWMMX2 0x0000000000000004ull
968 #define YepARMSimdFeatureNEON 0x0000000000000008ull
971 #define YepARMSimdFeatureNEONHP 0x0000000000000010ull
974 #define YepARMSimdFeatureNEON2 0x0000000000000020ull
983 #define YepARMSystemFeatureVFPVectorMode 0x0000000100000000ull
993 #define YepMIPSIsaFeatureR2 0x0000000000000001ull
997 #define YepMIPSIsaFeatureMicroMIPS 0x0000000000000002ull
1000 #define YepMIPSIsaFeatureFPU 0x0000000000000004ull
1003 #define YepMIPSIsaFeatureMT 0x0000000000000008ull
1006 #define YepMIPSIsaFeatureMIPS16 0x0000000000000010ull
1009 #define YepMIPSIsaFeatureSmartMIPS 0x0000000000000020ull
1017 #define YepMIPSSimdFeatureMDMX 0x0000000000000001ull
1020 #define YepMIPSSimdFeatureMIPS3D 0x0000000000000002ull
1023 #define YepMIPSSimdFeaturePairedSingle 0x0000000000000004ull
1026 #define YepMIPSSimdFeatureDSP 0x0000000000000008ull
1029 #define YepMIPSSimdFeatureDSP2 0x0000000000000010ull
1033 #define YepMIPSSimdFeatureGodsonMMX 0x0000000000000020ull
1036 #define YepMIPSSimdFeatureIMX 0x0000000000000040ull
1041 #define YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(architecture) (256 + (architecture))
1042 #define YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(architecture) (512 + (architecture))
1043 #define YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(architecture) (768 + (architecture))