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