mirror of
https://github.com/ptitSeb/box64.git
synced 2026-11-07 09:26:11 -10:00
[ENV] Reworked a strange design for BOX64_AVX=2 (#3902)
This commit is contained in:
1 parent
df37f6acf0
commit
f05bdb1f93
6 files changed
+11
-17
No files matched your search
@@ -226,7 +226,6 @@ static void displayMiscInfo(void)
|
||||
#if defined(LA64)
|
||||
if (box64env.avx && !cpuext.lasx) {
|
||||
box64env.avx = 0;
|
||||
box64env.avx2 = 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -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
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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")));
|
||||
|
||||
|
||||
Reference in new issue
Block a user