[ENV] Reworked a strange design for BOX64_AVX=2 (#3902)

This commit is contained in:
Yang Liu authored and GitHub committed 2026-05-28 12:53:57 +02:00
1 parent df37f6acf0
commit f05bdb1f93
6 files changed
+11 -17

No files matched your search

-1
View File
@@ -226,7 +226,6 @@ static void displayMiscInfo(void)
#if defined(LA64)
if (box64env.avx && !cpuext.lasx) {
box64env.avx = 0;
box64env.avx2 = 0;
}
#endif
#endif
-1
View File
@@ -207,7 +207,6 @@ typedef struct box64env_s {
/******** Custom ones ********/
int maxcpu;
int dynarec_test;
int avx2;
int rolling_log;
int dynarec_perf_map_fd;
int dynarec_gdbjit;
+6 -6
View File
@@ -116,7 +116,7 @@ void my_cpuid(x64emu_t* emu)
| 1<<3 // Monitor/MWait (priviledge instructions)
| (BOX64ENV(cputype)?0:1)<<5 // VMX //is that usefull
| 1<<9 // SSSE3
| BOX64ENV(avx2)<<12 // fma
| (BOX64ENV(avx) == 2)<<12 // fma
| 1<<13 // cx16 (cmpxchg16)
| 1<<19 // SSE4_1
| BOX64ENV(sse42)<<20 // SSE4_2 can be hiden
@@ -127,7 +127,7 @@ void my_cpuid(x64emu_t* emu)
| BOX64ENV(avx)<<27 // osxsave
| BOX64ENV(avx)<<28 // AVX
| BOX64ENV(avx)<<29 // F16C
| BOX64ENV(avx2)<<30 // RDRAND
| (BOX64ENV(avx) == 2)<<30 // RDRAND
| 0<<31 // Hypervisor guest running
;
break;
@@ -206,22 +206,22 @@ void my_cpuid(x64emu_t* emu)
R_RAX = 0;
R_RBX = 1<<0 // FSGSBASE
| BOX64ENV(avx)<<3 // BMI1
| BOX64ENV(avx2)<<5 //AVX2
| (BOX64ENV(avx) == 2)<<5 //AVX2
| (BOX64ENV(cputype)?0:1)<<6 // FDP_EXCPTN_ONLY
| 1<<7 // SMEP
| BOX64ENV(avx2)<<8 //BMI2
| (BOX64ENV(avx) == 2)<<8 //BMI2
| (BOX64ENV(cputype)?0:1)<<9 // Enhanced REP MOVSB // is it a good idea?
| 1<<10 //INVPCID (priviledge instruction
| (BOX64ENV(cputype)?0:1)<<13 // Deprecates FPU CS and FPU DS
| 0<<18 // RDSEED
| BOX64ENV(avx2)<<19 //ADX
| (BOX64ENV(avx) == 2)<<19 //ADX
| 1<<23 // CLFLUSHOPT
| 1<<24 // CLWB
| BOX64ENV(shaext)<<29 // SHA extension
;
R_RCX =
(BOX64ENV(avx)&&BOX64ENV(aes))<<9 | //VAES
(BOX64ENV(avx2)&&BOX64ENV(pclmulqdq))<<10 | //VPCLMULQDQ.
((BOX64ENV(avx) == 2)&&BOX64ENV(pclmulqdq))<<10 | //VPCLMULQDQ.
1<<22 | // RDPID
0;
R_RDX = 0;
-4
View File
@@ -267,10 +267,6 @@ static void applyCustomRules()
}
#endif
if (box64env.avx == 2) {
box64env.avx = 1;
box64env.avx2 = 1;
}
#ifndef _WIN32
if (box64env.exit) exit(0);
+4 -4
View File
@@ -2189,10 +2189,10 @@ void CreateCPUInfoFile(int fd)
BOX64ENV(pclmulqdq)?" pclmulqdq":"",
BOX64ENV(aes)?" aes":"",
BOX64ENV(sse42)?" sse4_2":"", BOX64ENV(avx)?" avx":"", BOX64ENV(shaext)?" sha_ni":"",
BOX64ENV(avx)?" bmi1":"", BOX64ENV(avx2)?" avx2":"", BOX64ENV(avx)?" bmi2":"",
(BOX64ENV(avx2)&&BOX64ENV(aes))?" vaes":"", BOX64ENV(avx2)?" fma":"",
BOX64ENV(avx)?" xsave":"", BOX64ENV(avx)?" f16c":"", BOX64ENV(avx2)?" randr":"",
BOX64ENV(avx2)?" adx":""
BOX64ENV(avx)?" bmi1":"", (BOX64ENV(avx) == 2)?" avx2":"", BOX64ENV(avx)?" bmi2":"",
((BOX64ENV(avx) == 2)&&BOX64ENV(aes))?" vaes":"", (BOX64ENV(avx) == 2)?" fma":"",
BOX64ENV(avx)?" xsave":"", BOX64ENV(avx)?" f16c":"", (BOX64ENV(avx) == 2)?" randr":"",
(BOX64ENV(avx) == 2)?" adx":""
);
P;
sprintf(buff, "address sizes\t: 48 bits physical, 48 bits virtual\n");
+1 -1
View File
@@ -50,7 +50,7 @@ int EXPORT my2_SDL_HasAVX(void) {
return BOX64ENV(avx)?1:0;
}
int EXPORT my2_SDL_HasAVX2(void) {
return BOX64ENV(avx2)?1:0;
return (BOX64ENV(avx) == 2)?1:0;
}
int EXPORT my2_SDL_HasAVX512F(void) __attribute__((alias("sdl_No")));