diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-07-15 13:43:53 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-07-15 13:43:53 +0200 |
| commit | a90c7af708f10acac51cb9fa5c3ff97274455623 (patch) | |
| tree | db41a713a2fc631868ac76239c7dbbd9737e49d6 /src | |
| parent | 176e092a6c22bf66a4728f7351b7a45b54ae8bf3 (diff) | |
| download | box64-a90c7af708f10acac51cb9fa5c3ff97274455623.tar.gz box64-a90c7af708f10acac51cb9fa5c3ff97274455623.zip | |
Added BOX64_SHAEXT to hide sha cpu extension ([RCFILE] And added a profile using it)
Diffstat (limited to 'src')
| -rw-r--r-- | src/core.c | 10 | ||||
| -rw-r--r-- | src/include/debug.h | 1 | ||||
| -rw-r--r-- | src/tools/my_cpuid.c | 2 | ||||
| -rw-r--r-- | src/tools/rcfile.c | 1 | ||||
| -rw-r--r-- | src/wrapped/wrappedlibc.c | 2 |
5 files changed, 14 insertions, 2 deletions
diff --git a/src/core.c b/src/core.c index d222bce1..6c2d791e 100644 --- a/src/core.c +++ b/src/core.c @@ -154,6 +154,7 @@ int box64_prefer_wrapped = 0; int box64_sse_flushto0 = 0; int box64_x87_no80bits = 0; int box64_sync_rounding = 0; +int box64_shaext = 1; int box64_sse42 = 1; #if defined(DYNAREC) && defined(ARM64) int box64_avx = 1; @@ -1065,6 +1066,15 @@ void LoadLogEnv() printf_log(LOG_INFO, "Disable the use of futex waitv syscall\n"); #endif } + p = getenv("BOX64_SHAEXT"); + if(p) { + if(strlen(p)==1) { + if(p[0]>='0' && p[0]<='0'+1) + box64_shaext = p[0]-'0'; + } + if(!box64_shaext) + printf_log(LOG_INFO, "Do not expose SHAEXT capabilities\n"); + } p = getenv("BOX64_SSE42"); if(p) { if(strlen(p)==1) { diff --git a/src/include/debug.h b/src/include/debug.h index 45b8e560..523dfc14 100644 --- a/src/include/debug.h +++ b/src/include/debug.h @@ -97,6 +97,7 @@ extern int box64_dummy_crashhandler; extern int box64_sse_flushto0; extern int box64_x87_no80bits; extern int box64_sync_rounding; +extern int box64_shaext; extern int box64_sse42; extern int box64_avx; extern int box64_avx2; diff --git a/src/tools/my_cpuid.c b/src/tools/my_cpuid.c index 48a163aa..9a65f677 100644 --- a/src/tools/my_cpuid.c +++ b/src/tools/my_cpuid.c @@ -336,7 +336,7 @@ void my_cpuid(x64emu_t* emu, uint32_t tmp32u) box64_avx2<<5 | //AVX2 box64_avx2<<8 | //BMI2 box64_avx2<<19 | //ADX - 1<<29| // SHA extension + box64_shaext<<29| // SHA extension 0; R_RCX = box64_avx<<9 | //VAES diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c index 2a281923..7f3f6a18 100644 --- a/src/tools/rcfile.c +++ b/src/tools/rcfile.c @@ -100,6 +100,7 @@ ENTRYBOOL(BOX64_NOPULSE, box64_nopulse) \ ENTRYBOOL(BOX64_NOGTK, box64_nogtk) \ ENTRYBOOL(BOX64_NOVULKAN, box64_novulkan) \ ENTRYBOOL(BOX64_RDTSC_1GHZ, box64_rdtsc_1ghz) \ +ENTRYBOOL(BOX64_SHAEXT, box64_shaext) \ ENTRYBOOL(BOX64_SSE42, box64_sse42) \ ENTRYINT(BOX64_AVX, new_avx, 0, 2, 2) \ ENTRYBOOL(BOX64_FUTEX_WAITV, box64_futex_waitv) \ diff --git a/src/wrapped/wrappedlibc.c b/src/wrapped/wrappedlibc.c index f334b09b..d771818f 100644 --- a/src/wrapped/wrappedlibc.c +++ b/src/wrapped/wrappedlibc.c @@ -1653,7 +1653,7 @@ void CreateCPUInfoFile(int fd) P; sprintf(buff, "bogomips\t: %g\n", getBogoMips()); P; - sprintf(buff, "flags\t\t: fpu cx8 sep ht cmov clflush mmx sse sse2 syscall tsc lahf_lm ssse3 ht tm lm fxsr cpuid pclmulqdq cx16 aes movbe pni sse4_1%s%s lzcnt popcnt%s%s%s%s%s\n", box64_sse42?" sse4_2":"", box64_avx?" avx":"", box64_avx?" bmi1":"", box64_avx2?" avx2":"", box64_avx?" bmi2":"", box64_avx2?" vaes":"", box64_avx2?" fma":""); + sprintf(buff, "flags\t\t: fpu cx8 sep ht cmov clflush mmx sse sse2 syscall tsc lahf_lm ssse3 ht tm lm fxsr cpuid pclmulqdq cx16 aes movbe pni sse4_1%s%s%s lzcnt popcnt%s%s%s%s%s\n", box64_sse42?" sse4_2":"", box64_avx?" avx":"", box64_shaext?"sha_ni":"", box64_avx?" bmi1":"", box64_avx2?" avx2":"", box64_avx?" bmi2":"", box64_avx2?" vaes":"", box64_avx2?" fma":""); P; sprintf(buff, "address sizes\t: 48 bits physical, 48 bits virtual\n"); P; |