static void x86_cpu_ia64(wordptr cpu, yasm_arch_x86 *arch_x86, unsigned int data) { BitVector_Empty(cpu); BitVector_Bit_On(cpu, CPU_Priv); BitVector_Bit_On(cpu, CPU_Prot); BitVector_Bit_On(cpu, CPU_SMM); BitVector_Bit_On(cpu, CPU_SSE2); BitVector_Bit_On(cpu, CPU_SSE); BitVector_Bit_On(cpu, CPU_MMX); BitVector_Bit_On(cpu, CPU_FPU); BitVector_Bit_On(cpu, CPU_IA64); BitVector_Bit_On(cpu, CPU_P4); BitVector_Bit_On(cpu, CPU_P3); BitVector_Bit_On(cpu, CPU_686); BitVector_Bit_On(cpu, CPU_586); BitVector_Bit_On(cpu, CPU_486); BitVector_Bit_On(cpu, CPU_386); BitVector_Bit_On(cpu, CPU_286); BitVector_Bit_On(cpu, CPU_186); BitVector_Bit_On(cpu, CPU_086); }
static void x86_cpu_set_sse4(wordptr cpu, yasm_arch_x86 *arch_x86, unsigned int data) { BitVector_Bit_On(cpu, CPU_SSE41); BitVector_Bit_On(cpu, CPU_SSE42); }
static void x86_cpu_intel(wordptr cpu, yasm_arch_x86 *arch_x86, unsigned int data) { BitVector_Empty(cpu); BitVector_Bit_On(cpu, CPU_Priv); if (data >= PROC_286) BitVector_Bit_On(cpu, CPU_Prot); if (data >= PROC_386) BitVector_Bit_On(cpu, CPU_SMM); if (data >= PROC_sandybridge) BitVector_Bit_On(cpu, CPU_AVX); if (data >= PROC_westmere) { BitVector_Bit_On(cpu, CPU_AES); BitVector_Bit_On(cpu, CPU_CLMUL); } if (data >= PROC_nehalem) { BitVector_Bit_On(cpu, CPU_SSE42); BitVector_Bit_On(cpu, CPU_XSAVE); } if (data >= PROC_penryn) BitVector_Bit_On(cpu, CPU_SSE41); if (data >= PROC_conroe) BitVector_Bit_On(cpu, CPU_SSSE3); if (data >= PROC_prescott) BitVector_Bit_On(cpu, CPU_SSE3); if (data >= PROC_p4) BitVector_Bit_On(cpu, CPU_SSE2); if (data >= PROC_p3) BitVector_Bit_On(cpu, CPU_SSE); if (data >= PROC_p2) BitVector_Bit_On(cpu, CPU_MMX); if (data >= PROC_486) BitVector_Bit_On(cpu, CPU_FPU); if (data >= PROC_prescott) BitVector_Bit_On(cpu, CPU_EM64T); if (data >= PROC_p4) BitVector_Bit_On(cpu, CPU_P4); if (data >= PROC_p3) BitVector_Bit_On(cpu, CPU_P3); if (data >= PROC_686) BitVector_Bit_On(cpu, CPU_686); if (data >= PROC_586) BitVector_Bit_On(cpu, CPU_586); if (data >= PROC_486) BitVector_Bit_On(cpu, CPU_486); if (data >= PROC_386) BitVector_Bit_On(cpu, CPU_386); if (data >= PROC_286) BitVector_Bit_On(cpu, CPU_286); if (data >= PROC_186) BitVector_Bit_On(cpu, CPU_186); BitVector_Bit_On(cpu, CPU_086); /* Use Intel long NOPs if 686 or better */ if (data >= PROC_686) arch_x86->nop = X86_NOP_INTEL; else arch_x86->nop = X86_NOP_BASIC; }
static void x86_cpu_set(wordptr cpu, yasm_arch_x86 *arch_x86, unsigned int data) { BitVector_Bit_On(cpu, data); }
static void x86_cpu_amd(wordptr cpu, yasm_arch_x86 *arch_x86, unsigned int data) { BitVector_Empty(cpu); BitVector_Bit_On(cpu, CPU_Priv); BitVector_Bit_On(cpu, CPU_Prot); BitVector_Bit_On(cpu, CPU_SMM); BitVector_Bit_On(cpu, CPU_3DNow); if (data >= PROC_bulldozer) { BitVector_Bit_On(cpu, CPU_XOP); BitVector_Bit_On(cpu, CPU_FMA4); } if (data >= PROC_k10) BitVector_Bit_On(cpu, CPU_SSE4a); if (data >= PROC_venice) BitVector_Bit_On(cpu, CPU_SSE3); if (data >= PROC_hammer) BitVector_Bit_On(cpu, CPU_SSE2); if (data >= PROC_k7) BitVector_Bit_On(cpu, CPU_SSE); if (data >= PROC_k6) BitVector_Bit_On(cpu, CPU_MMX); BitVector_Bit_On(cpu, CPU_FPU); if (data >= PROC_hammer) BitVector_Bit_On(cpu, CPU_Hammer); if (data >= PROC_k7) BitVector_Bit_On(cpu, CPU_Athlon); if (data >= PROC_k6) BitVector_Bit_On(cpu, CPU_K6); BitVector_Bit_On(cpu, CPU_686); BitVector_Bit_On(cpu, CPU_586); BitVector_Bit_On(cpu, CPU_486); BitVector_Bit_On(cpu, CPU_386); BitVector_Bit_On(cpu, CPU_286); BitVector_Bit_On(cpu, CPU_186); BitVector_Bit_On(cpu, CPU_086); /* Use AMD long NOPs if k6 or better */ if (data >= PROC_k6) arch_x86->nop = X86_NOP_AMD; else arch_x86->nop = X86_NOP_BASIC; }
static void x86_cpu_intel(wordptr cpu, unsigned int data) { BitVector_Empty(cpu); BitVector_Bit_On(cpu, CPU_Priv); if (data >= PROC_286) BitVector_Bit_On(cpu, CPU_Prot); if (data >= PROC_386) BitVector_Bit_On(cpu, CPU_SMM); if (data >= PROC_sandybridge) BitVector_Bit_On(cpu, CPU_AVX); if (data >= PROC_westmere) { BitVector_Bit_On(cpu, CPU_AES); BitVector_Bit_On(cpu, CPU_CLMUL); } if (data >= PROC_nehalem) { BitVector_Bit_On(cpu, CPU_SSE42); BitVector_Bit_On(cpu, CPU_XSAVE); } if (data >= PROC_penryn) BitVector_Bit_On(cpu, CPU_SSE41); if (data >= PROC_conroe) BitVector_Bit_On(cpu, CPU_SSSE3); if (data >= PROC_prescott) BitVector_Bit_On(cpu, CPU_SSE3); if (data >= PROC_p4) BitVector_Bit_On(cpu, CPU_SSE2); if (data >= PROC_p3) BitVector_Bit_On(cpu, CPU_SSE); if (data >= PROC_p2) BitVector_Bit_On(cpu, CPU_MMX); if (data >= PROC_486) BitVector_Bit_On(cpu, CPU_FPU); if (data >= PROC_prescott) BitVector_Bit_On(cpu, CPU_EM64T); if (data >= PROC_p4) BitVector_Bit_On(cpu, CPU_P4); if (data >= PROC_p3) BitVector_Bit_On(cpu, CPU_P3); if (data >= PROC_686) BitVector_Bit_On(cpu, CPU_686); if (data >= PROC_586) BitVector_Bit_On(cpu, CPU_586); if (data >= PROC_486) BitVector_Bit_On(cpu, CPU_486); if (data >= PROC_386) BitVector_Bit_On(cpu, CPU_386); if (data >= PROC_286) BitVector_Bit_On(cpu, CPU_286); if (data >= PROC_186) BitVector_Bit_On(cpu, CPU_186); BitVector_Bit_On(cpu, CPU_086); }
static void x86_cpu_set(wordptr cpu, unsigned int data) { BitVector_Bit_On(cpu, data); }
static void x86_cpu_amd(wordptr cpu, unsigned int data) { BitVector_Empty(cpu); BitVector_Bit_On(cpu, CPU_Priv); BitVector_Bit_On(cpu, CPU_Prot); BitVector_Bit_On(cpu, CPU_SMM); BitVector_Bit_On(cpu, CPU_3DNow); if (data >= PROC_bulldozer) BitVector_Bit_On(cpu, CPU_SSE5); if (data >= PROC_k10) BitVector_Bit_On(cpu, CPU_SSE4a); if (data >= PROC_venice) BitVector_Bit_On(cpu, CPU_SSE3); if (data >= PROC_hammer) BitVector_Bit_On(cpu, CPU_SSE2); if (data >= PROC_k7) BitVector_Bit_On(cpu, CPU_SSE); if (data >= PROC_k6) BitVector_Bit_On(cpu, CPU_MMX); BitVector_Bit_On(cpu, CPU_FPU); if (data >= PROC_hammer) BitVector_Bit_On(cpu, CPU_Hammer); if (data >= PROC_k7) BitVector_Bit_On(cpu, CPU_Athlon); if (data >= PROC_k6) BitVector_Bit_On(cpu, CPU_K6); BitVector_Bit_On(cpu, CPU_686); BitVector_Bit_On(cpu, CPU_586); BitVector_Bit_On(cpu, CPU_486); BitVector_Bit_On(cpu, CPU_386); BitVector_Bit_On(cpu, CPU_286); BitVector_Bit_On(cpu, CPU_186); BitVector_Bit_On(cpu, CPU_086); }