Yeppp!  0.9.1
 All Data Structures Functions Variables Enumerations Enumerator Groups Pages
yepTypes.h
1 /*
2  * Copyright (c) 2010-2012 Marat Dukhan
3  * Copyright (c) 2012 Georgia Institute of Technology
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright notice, this
10  * list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright notice,
12  * this list of conditions and the following disclaimer in the documentation
13  * and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
19  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  *
26  * The views and conclusions contained in the software and documentation are those
27  * of the authors and should not be interpreted as representing official policies,
28  * either expressed or implied, of the Yeppp! Project.
29  */
30 
31 #pragma once
32 
72 #include <yepPredefines.h>
73 #include <stddef.h>
74 #ifndef __cplusplus
75  #if defined(YEP_MICROSOFT_COMPILER)
76  /* OMG! I can't believe it still doesn't have stdbool.h in 2012! */
77  typedef unsigned char bool;
78  #define false 0
79  #define true 1
80  #else
81  #include <stdbool.h>
82  #endif
83 #endif
84 
85 typedef unsigned char Yep8u;
86 typedef unsigned short Yep16u;
87 typedef unsigned int Yep32u;
88 typedef unsigned long long Yep64u;
89 
90 typedef signed char Yep8s;
91 typedef signed short Yep16s;
92 typedef signed int Yep32s;
93 typedef signed long long Yep64s;
94 
95 typedef float Yep32f;
96 typedef double Yep64f;
97 
98 typedef size_t YepSize;
99 
100 typedef bool YepBoolean;
101 
102 struct Yep16f {
103  signed sign : 1;
104  unsigned exponent : 5;
105  unsigned mantissa : 10;
106 };
107 
108 struct Yep16fc {
109  struct Yep16f re;
110  struct Yep16f im;
111 };
112 
113 struct Yep32fc {
114  Yep32f re;
115  Yep32f im;
116 };
117 
118 struct Yep64fc {
119  Yep64f re;
120  Yep64f im;
121 };
122 
128  Yep32u major;
130  Yep32u minor;
132  Yep32u patchLevel;
134  Yep32u build;
136  const char* releaseName;
137 };
138 
141 enum YepStatus {
164 };
165 
186 };
187 
194 
195  /* x86/x86-64 CPUs */
196 
235 
236  /* ARM CPUs */
237 
251 
252  /* MIPS CPUs */
253 
260 
261  /* PowerPC CPUs */
262 
270 
271  /* SPARC CPUs */
272 
282 };
283 
294 
323 
328 
351 
356 
373 
378 
383 
386 
391 
398 
403 };
404 
405 #ifdef __cplusplus
406  const Yep64u YepIsaFeaturesDefault = 0x0000000000000000ull;
407  const Yep64u YepSimdFeaturesDefault = 0x0000000000000000ull;
408  const Yep64u YepSystemFeaturesDefault = 0x0000000000000000ull;
409 
410  const Yep64u YepSystemFeatureCycleCounter = 0x0000000000000001ull;
411  const Yep64u YepSystemFeatureCycleCounter64Bit = 0x0000000000000002ull;
412  const Yep64u YepSystemFeatureAddressSpace64Bit = 0x0000000000000004ull;
413  const Yep64u YepSystemFeatureGPRegisters64Bit = 0x0000000000000008ull;
414  const Yep64u YepSystemFeatureMisalignedAccess = 0x0000000000000010ull;
415  const Yep64u YepSystemFeatureSingleThreaded = 0x0000000000000020ull;
416 
417  /* x86/x86-64 ISA Extensions */
418  const Yep64u YepX86IsaFeatureFPU = 0x0000000000000001ull;
419  const Yep64u YepX86IsaFeatureCpuid = 0x0000000000000002ull;
420  const Yep64u YepX86IsaFeatureRdtsc = 0x0000000000000004ull;
421  const Yep64u YepX86IsaFeatureCMOV = 0x0000000000000008ull;
422  const Yep64u YepX86IsaFeatureSYSENTER = 0x0000000000000010ull;
423  const Yep64u YepX86IsaFeatureSYSCALL = 0x0000000000000020ull;
424  const Yep64u YepX86IsaFeatureMSR = 0x0000000000000040ull;
425  const Yep64u YepX86IsaFeatureClflush = 0x0000000000000080ull;
426  const Yep64u YepX86IsaFeatureMONITOR = 0x0000000000000100ull;
427  const Yep64u YepX86IsaFeatureFXSAVE = 0x0000000000000200ull;
428  const Yep64u YepX86IsaFeatureXSAVE = 0x0000000000000400ull;
429  const Yep64u YepX86IsaFeatureCmpxchg8b = 0x0000000000000800ull;
430  const Yep64u YepX86IsaFeatureCmpxchg16b = 0x0000000000001000ull;
431  const Yep64u YepX86IsaFeatureX64 = 0x0000000000002000ull;
432  const Yep64u YepX86IsaFeatureLahfSahf64 = 0x0000000000004000ull;
433  const Yep64u YepX86IsaFeatureFsGsBase = 0x0000000000008000ull;
434  const Yep64u YepX86IsaFeatureMovbe = 0x0000000000010000ull;
435  const Yep64u YepX86IsaFeaturePopcnt = 0x0000000000020000ull;
436  const Yep64u YepX86IsaFeatureLzcnt = 0x0000000000040000ull;
437  const Yep64u YepX86IsaFeatureBMI = 0x0000000000080000ull;
438  const Yep64u YepX86IsaFeatureBMI2 = 0x0000000000100000ull;
439  const Yep64u YepX86IsaFeatureTBM = 0x0000000000200000ull;
440  const Yep64u YepX86IsaFeatureRdrand = 0x0000000000400000ull;
441  const Yep64u YepX86IsaFeatureACE = 0x0000000000800000ull;
442  const Yep64u YepX86IsaFeatureACE2 = 0x0000000001000000ull;
443  const Yep64u YepX86IsaFeatureRNG = 0x0000000002000000ull;
444  const Yep64u YepX86IsaFeaturePHE = 0x0000000004000000ull;
445  const Yep64u YepX86IsaFeaturePMM = 0x0000000008000000ull;
446  const Yep64u YepX86IsaFeatureAES = 0x0000000010000000ull;
447  const Yep64u YepX86IsaFeaturePclmulqdq = 0x0000000020000000ull;
448  const Yep64u YepX86IsaFeatureRdtscp = 0x0000000040000000ull;
449  const Yep64u YepX86IsaFeatureLWP = 0x0000000080000000ull;
450  const Yep64u YepX86IsaFeatureHLE = 0x0000000100000000ull;
451  const Yep64u YepX86IsaFeatureRTM = 0x0000000200000000ull;
452  const Yep64u YepX86IsaFeatureXtest = 0x0000000400000000ull;
453  const Yep64u YepX86IsaFeatureRdseed = 0x0000000800000000ull;
454  const Yep64u YepX86IsaFeatureADX = 0x0000001000000000ull;
455 
456  const Yep64u YepX86SimdFeatureMMX = 0x0000000000000001ull;
457  const Yep64u YepX86SimdFeatureMMXPlus = 0x0000000000000002ull;
458  const Yep64u YepX86SimdFeatureEMMX = 0x0000000000000004ull;
459  const Yep64u YepX86SimdFeature3dnow = 0x0000000000000008ull;
460  const Yep64u YepX86SimdFeature3dnowPlus = 0x0000000000000010ull;
461  const Yep64u YepX86SimdFeature3dnowPrefetch = 0x0000000000000020ull;
462  const Yep64u YepX86SimdFeature3dnowGeode = 0x0000000000000040ull;
463  const Yep64u YepX86SimdFeatureSSE = 0x0000000000000080ull;
464  const Yep64u YepX86SimdFeatureSSE2 = 0x0000000000000100ull;
465  const Yep64u YepX86SimdFeatureSSE3 = 0x0000000000000200ull;
466  const Yep64u YepX86SimdFeatureSSSE3 = 0x0000000000000400ull;
467  const Yep64u YepX86SimdFeatureSSE4_1 = 0x0000000000000800ull;
468  const Yep64u YepX86SimdFeatureSSE4_2 = 0x0000000000001000ull;
469  const Yep64u YepX86SimdFeatureSSE4A = 0x0000000000002000ull;
470  const Yep64u YepX86SimdFeatureAVX = 0x0000000000004000ull;
471  const Yep64u YepX86SimdFeatureAVX2 = 0x0000000000008000ull;
472  const Yep64u YepX86SimdFeatureXOP = 0x0000000000010000ull;
473  const Yep64u YepX86SimdFeatureF16C = 0x0000000000020000ull;
474  const Yep64u YepX86SimdFeatureFMA3 = 0x0000000000040000ull;
475  const Yep64u YepX86SimdFeatureFMA4 = 0x0000000000080000ull;
476 
477  const Yep64u YepX86SystemFeatureFPU = 0x0000000100000000ull;
478  const Yep64u YepX86SystemFeatureSSE = 0x0000000200000000ull;
479  const Yep64u YepX86SystemFeatureAVX = 0x0000000400000000ull;
480  const Yep64u YepX86SystemFeatureMisalignedSSE = 0x0000000800000000ull;
481  const Yep64u YepX86SystemFeatureACE = 0x0000001000000000ull;
482  const Yep64u YepX86SystemFeatureACE2 = 0x0000002000000000ull;
483  const Yep64u YepX86SystemFeatureRNG = 0x0000004000000000ull;
484  const Yep64u YepX86SystemFeaturePHE = 0x0000008000000000ull;
485  const Yep64u YepX86SystemFeaturePMM = 0x0000010000000000ull;
486 
487  /* IA64 ISA Extensions */
488  const Yep64u YepIA64IsaFeatureBrl = 0x0000000000000001ull; // Long branch instruction
489  const Yep64u YepIA64IsaFeatureAtomic128 = 0x0000000000000002ull; // Atomic 128-bit (16-byte) loads, stores, and CAS
490  const Yep64u YepIA64IsaFeatureClz = 0x0000000000000004ull; // Count leading zeros
491  const Yep64u YepIA64IsaFeatureMpy4 = 0x0000000000000008ull; // Truncated 32-bit multiplication (mpy4 and mpyshl4) instructions.
492 
493  /* ARM ISA Extensions */
494  const Yep64u YepARMIsaFeatureV4 = 0x0000000000000001ull;
495  const Yep64u YepARMIsaFeatureV5 = 0x0000000000000002ull;
496  const Yep64u YepARMIsaFeatureV5E = 0x0000000000000004ull;
497  const Yep64u YepARMIsaFeatureV6 = 0x0000000000000008ull;
498  const Yep64u YepARMIsaFeatureV6K = 0x0000000000000010ull;
499  const Yep64u YepARMIsaFeatureV7 = 0x0000000000000020ull;
500  const Yep64u YepARMIsaFeatureV7MP = 0x0000000000000040ull;
501  const Yep64u YepARMIsaFeatureThumb = 0x0000000000000080ull;
502  const Yep64u YepARMIsaFeatureThumb2 = 0x0000000000000100ull;
503  const Yep64u YepARMIsaFeatureThumbEE = 0x0000000000000200ull;
504  const Yep64u YepARMIsaFeatureJazelle = 0x0000000000000400ull;
505  const Yep64u YepARMIsaFeatureFPA = 0x0000000000000800ull;
506  const Yep64u YepARMIsaFeatureVFP = 0x0000000000001000ull;
507  const Yep64u YepARMIsaFeatureVFP2 = 0x0000000000002000ull;
508  const Yep64u YepARMIsaFeatureVFP3 = 0x0000000000004000ull;
509  const Yep64u YepARMIsaFeatureVFPd32 = 0x0000000000008000ull;
510  const Yep64u YepARMIsaFeatureVFP3HP = 0x0000000000010000ull;
511  const Yep64u YepARMIsaFeatureVFP4 = 0x0000000000020000ull;
512  const Yep64u YepARMIsaFeatureDiv = 0x0000000000040000ull;
513  const Yep64u YepARMIsaFeatureArmada = 0x0000000000080000ull;
514 
515  const Yep64u YepARMSimdFeatureXScale = 0x0000000000000001ull;
516  const Yep64u YepARMSimdFeatureWMMX = 0x0000000000000002ull;
517  const Yep64u YepARMSimdFeatureWMMX2 = 0x0000000000000004ull;
518  const Yep64u YepARMSimdFeatureNEON = 0x0000000000000008ull;
519  const Yep64u YepARMSimdFeatureNEONHP = 0x0000000000000010ull;
520  const Yep64u YepARMSimdFeatureNEON2 = 0x0000000000000020ull;
521 
522  const Yep64u YepARMSystemFeatureVFPVectorMode = 0x0000000100000000ull;
523 
524  /* MIPS ISA Extensions */
525  const Yep64u YepMIPSIsaFeatureR2 = 0x0000000000000001ull;
526  const Yep64u YepMIPSIsaFeatureR3 = 0x0000000000000002ull;
527  const Yep64u YepMIPSIsaFeatureFPU = 0x0000000000000004ull;
528  const Yep64u YepMIPSIsaFeatureMT = 0x0000000000000008ull;
529  const Yep64u YepMIPSIsaFeatureMIPS16 = 0x0000000000000010ull;
530  const Yep64u YepMIPSIsaFeatureSmartmips = 0x0000000000000020ull;
531 
532  const Yep64u YepMIPSSimdFeatureMDMX = 0x0000000000000001ull;
533  const Yep64u YepMIPSSimdFeatureMIPS3D = 0x0000000000000002ull;
534  const Yep64u YepMIPSSimdFeaturePairedSingle = 0x0000000000000004ull;
535  const Yep64u YepMIPSSimdFeatureDSP = 0x0000000000000008ull;
536  const Yep64u YepMIPSSimdFeatureDSP2 = 0x0000000000000010ull;
537  const Yep64u YepMIPSSimdFeatureGodsonMMX = 0x0000000000000020ull;
538  const Yep64u YepMIPSSimdFeatureIMX = 0x0000000000000040ull;
539 
540 #else
541  #define YepIsaFeaturesDefault 0x0000000000000000ull
542  #define YepSimdFeaturesDefault 0x0000000000000000ull
543  #define YepSystemFeaturesDefault 0x0000000000000000ull
544 
550  #define YepSystemFeatureCycleCounter 0x0000000000000001ull
551 
553  #define YepSystemFeatureCycleCounter64Bit 0x0000000000000002ull
554 
556  #define YepSystemFeatureAddressSpace64Bit 0x0000000000000004ull
557 
559  #define YepSystemFeatureGPRegisters64Bit 0x0000000000000008ull
560 
562  #define YepSystemFeatureMisalignedAccess 0x0000000000000010ull
563 
565  #define YepSystemFeatureSingleThreaded 0x0000000000000020ull
566 
574  #define YepX86IsaFeatureFPU 0x0000000000000001ull
575 
577  #define YepX86IsaFeatureCpuid 0x0000000000000002ull
578 
580  #define YepX86IsaFeatureRdtsc 0x0000000000000004ull
581 
583  #define YepX86IsaFeatureCMOV 0x0000000000000008ull
584 
586  #define YepX86IsaFeatureSYSENTER 0x0000000000000010ull
587 
589  #define YepX86IsaFeatureSYSCALL 0x0000000000000020ull
590 
592  #define YepX86IsaFeatureMSR 0x0000000000000040ull
593 
595  #define YepX86IsaFeatureClflush 0x0000000000000080ull
596 
598  #define YepX86IsaFeatureMONITOR 0x0000000000000100ull
599 
601  #define YepX86IsaFeatureFXSAVE 0x0000000000000200ull
602 
604  #define YepX86IsaFeatureXSAVE 0x0000000000000400ull
605 
607  #define YepX86IsaFeatureCmpxchg8b 0x0000000000000800ull
608 
610  #define YepX86IsaFeatureCmpxchg16b 0x0000000000001000ull
611 
613  #define YepX86IsaFeatureX64 0x0000000000002000ull
614 
616  #define YepX86IsaFeatureLahfSahf64 0x0000000000004000ull
617 
619  #define YepX86IsaFeatureFsGsBase 0x0000000000008000ull
620 
622  #define YepX86IsaFeatureMovbe 0x0000000000010000ull
623 
625  #define YepX86IsaFeaturePopcnt 0x0000000000020000ull
626 
628  #define YepX86IsaFeatureLzcnt 0x0000000000040000ull
629 
631  #define YepX86IsaFeatureBMI 0x0000000000080000ull
632 
634  #define YepX86IsaFeatureBMI2 0x0000000000100000ull
635 
637  #define YepX86IsaFeatureTBM 0x0000000000200000ull
638 
640  #define YepX86IsaFeatureRdrand 0x0000000000400000ull
641 
643  #define YepX86IsaFeatureACE 0x0000000000800000ull
644 
646  #define YepX86IsaFeatureACE2 0x0000000001000000ull
647 
649  #define YepX86IsaFeatureRNG 0x0000000002000000ull
650 
652  #define YepX86IsaFeaturePHE 0x0000000004000000ull
653 
655  #define YepX86IsaFeaturePMM 0x0000000008000000ull
656 
658  #define YepX86IsaFeatureAES 0x0000000010000000ull
659 
661  #define YepX86IsaFeaturePclmulqdq 0x0000000020000000ull
662 
664  #define YepX86IsaFeatureRdtscp 0x0000000040000000ull
665 
667  #define YepX86IsaFeatureLWP 0x0000000080000000ull
668 
670  #define YepX86IsaFeatureHLE 0x0000000100000000ull
671 
673  #define YepX86IsaFeatureRTM 0x0000000200000000ull
674 
676  #define YepX86IsaFeatureXtest 0x0000000400000000ull
677 
679  #define YepX86IsaFeatureRdseed 0x0000000800000000ull
680 
682  #define YepX86IsaFeatureADX 0x0000001000000000ull
683 
690  #define YepX86SimdFeatureMMX 0x0000000000000001ull
691 
693  #define YepX86SimdFeatureMMXPlus 0x0000000000000002ull
694 
696  #define YepX86SimdFeatureEMMX 0x0000000000000004ull
697 
699  #define YepX86SimdFeature3dnow 0x0000000000000008ull
700 
702  #define YepX86SimdFeature3dnowPlus 0x0000000000000010ull
703 
705  #define YepX86SimdFeature3dnowPrefetch 0x0000000000000020ull
706 
708  #define YepX86SimdFeature3dnowGeode 0x0000000000000040ull
709 
711  #define YepX86SimdFeatureSSE 0x0000000000000080ull
712 
714  #define YepX86SimdFeatureSSE2 0x0000000000000100ull
715 
717  #define YepX86SimdFeatureSSE3 0x0000000000000200ull
718 
720  #define YepX86SimdFeatureSSSE3 0x0000000000000400ull
721 
723  #define YepX86SimdFeatureSSE4_1 0x0000000000000800ull
724 
726  #define YepX86SimdFeatureSSE4_2 0x0000000000001000ull
727 
729  #define YepX86SimdFeatureSSE4A 0x0000000000002000ull
730 
732  #define YepX86SimdFeatureAVX 0x0000000000004000ull
733 
735  #define YepX86SimdFeatureAVX2 0x0000000000008000ull
736 
738  #define YepX86SimdFeatureXOP 0x0000000000010000ull
739 
741  #define YepX86SimdFeatureF16C 0x0000000000020000ull
742 
744  #define YepX86SimdFeatureFMA3 0x0000000000040000ull
745 
747  #define YepX86SimdFeatureFMA4 0x0000000000080000ull
748 
755  #define YepX86SystemFeatureFPU 0x0000000100000000ull
756 
758  #define YepX86SystemFeatureSSE 0x0000000200000000ull
759 
761  #define YepX86SystemFeatureAVX 0x0000000400000000ull
762 
764  #define YepX86SystemFeatureMisalignedSSE 0x0000000800000000ull
765 
767  #define YepX86SystemFeatureACE 0x0000001000000000ull
768 
770  #define YepX86SystemFeatureACE2 0x0000002000000000ull
771 
773  #define YepX86SystemFeatureRNG 0x0000004000000000ull
774 
776  #define YepX86SystemFeaturePHE 0x0000008000000000ull
777 
779  #define YepX86SystemFeaturePMM 0x0000010000000000ull
780 
787  #define YepIA64IsaFeatureBrl 0x0000000000000001ull
788 
790  #define YepIA64IsaFeatureAtomic128 0x0000000000000002ull
791 
793  #define YepIA64IsaFeatureClz 0x0000000000000004ull
794 
796  #define YepIA64IsaFeatureMpy4 0x0000000000000008ull
797 
804  #define YepARMIsaFeatureV4 0x0000000000000001ull
805 
807  #define YepARMIsaFeatureV5 0x0000000000000002ull
808 
810  #define YepARMIsaFeatureV5E 0x0000000000000004ull
811 
813  #define YepARMIsaFeatureV6 0x0000000000000008ull
814 
816  #define YepARMIsaFeatureV6K 0x0000000000000010ull
817 
819  #define YepARMIsaFeatureV7 0x0000000000000020ull
820 
822  #define YepARMIsaFeatureV7MP 0x0000000000000040ull
823 
825  #define YepARMIsaFeatureThumb 0x0000000000000080ull
826 
828  #define YepARMIsaFeatureThumb2 0x0000000000000100ull
829 
831  #define YepARMIsaFeatureThumbEE 0x0000000000000200ull
832 
834  #define YepARMIsaFeatureJazelle 0x0000000000000400ull
835 
837  #define YepARMIsaFeatureFPA 0x0000000000000800ull
838 
840  #define YepARMIsaFeatureVFP 0x0000000000001000ull
841 
843  #define YepARMIsaFeatureVFP2 0x0000000000002000ull
844 
846  #define YepARMIsaFeatureVFP3 0x0000000000004000ull
847 
849  #define YepARMIsaFeatureVFPd32 0x0000000000008000ull
850 
852  #define YepARMIsaFeatureVFP3HP 0x0000000000010000ull
853 
855  #define YepARMIsaFeatureVFP4 0x0000000000020000ull
856 
858  #define YepARMIsaFeatureDiv 0x0000000000040000ull
859 
861  #define YepARMIsaFeatureArmada 0x0000000000080000ull
862 
869  #define YepARMSimdFeatureXScale 0x0000000000000001ull
870 
872  #define YepARMSimdFeatureWMMX 0x0000000000000002ull
873 
875  #define YepARMSimdFeatureWMMX2 0x0000000000000004ull
876 
878  #define YepARMSimdFeatureNEON 0x0000000000000008ull
879 
881  #define YepARMSimdFeatureNEONHP 0x0000000000000010ull
882 
884  #define YepARMSimdFeatureNEON2 0x0000000000000020ull
885 
893  #define YepARMSystemFeatureVFPVectorMode 0x0000000100000000ull
894 
904  #define YepMIPSIsaFeatureR2 0x0000000000000001ull
905 
908  #define YepMIPSIsaFeatureR3 0x0000000000000002ull
909 
912  #define YepMIPSIsaFeatureFPU 0x0000000000000004ull
913 
915  #define YepMIPSIsaFeatureMT 0x0000000000000008ull
916 
918  #define YepMIPSIsaFeatureMIPS16 0x0000000000000010ull
919 
921  #define YepMIPSIsaFeatureSmartmips 0x0000000000000020ull
922 
929  #define YepMIPSSimdFeatureMDMX 0x0000000000000001ull
930 
932  #define YepMIPSSimdFeatureMIPS3D 0x0000000000000002ull
933 
936  #define YepMIPSSimdFeaturePairedSingle 0x0000000000000004ull
937 
939  #define YepMIPSSimdFeatureDSP 0x0000000000000008ull
940 
943  #define YepMIPSSimdFeatureDSP2 0x0000000000000010ull
944 
947  #define YepMIPSSimdFeatureGodsonMMX 0x0000000000000020ull
948 
950  #define YepMIPSSimdFeatureIMX 0x0000000000000040ull
951 
953 #endif
954 
955 #define YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(architecture) (256 + (architecture))
956 #define YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(architecture) (512 + (architecture))
957 #define YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(architecture) (768 + (architecture))
958 
972  YepEnumerationGenericIsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureUnknown),
974  YepEnumerationGenericSimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureUnknown),
976  YepEnumerationGenericSystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureUnknown),
978  YepEnumerationX86IsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureX86),
980  YepEnumerationX86SimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureX86),
982  YepEnumerationX86SystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureX86),
984  YepEnumerationARMIsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureARM),
986  YepEnumerationARMSimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureARM),
988  YepEnumerationARMSystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureARM),
990  YepEnumerationMIPSIsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureMIPS),
992  YepEnumerationMIPSSimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureMIPS),
994  YepEnumerationMIPSSystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureMIPS),
996  YepEnumerationPowerPCIsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitecturePowerPC),
998  YepEnumerationPowerPCSimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitecturePowerPC),
1000  YepEnumerationPowerPCSystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitecturePowerPC),
1002  YepEnumerationIA64IsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureIA64),
1004  YepEnumerationIA64SimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureIA64),
1006  YepEnumerationIA64SystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureIA64),
1008  YepEnumerationSPARCIsaFeature = YEP_ENUMERATION_ISA_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureSPARC),
1010  YepEnumerationSPARCSimdFeature = YEP_ENUMERATION_SIMD_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureSPARC),
1012  YepEnumerationSPARCSystemFeature = YEP_ENUMERATION_SYSTEM_FEATURE_FOR_ARCHITECTURE(YepCpuArchitectureSPARC)
1013 };