diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-06-13 10:22:33 +0200 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-06-13 10:22:33 +0200 |
| commit | 58c0bce4cf549dab1440bc60315f8b30407ca0f1 (patch) | |
| tree | 201a1ea7589448c75696fefa584c83cecd48436f /src/tools | |
| parent | 3a82dc6aad852c9e655e04b801ec67d17e8441c6 (diff) | |
| download | box64-58c0bce4cf549dab1440bc60315f8b30407ca0f1.tar.gz box64-58c0bce4cf549dab1440bc60315f8b30407ca0f1.zip | |
More work on RDTSC emulation
Diffstat (limited to 'src/tools')
| -rw-r--r-- | src/tools/my_cpuid.c | 7 | ||||
| -rw-r--r-- | src/tools/rcfile.c | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/tools/my_cpuid.c b/src/tools/my_cpuid.c index 06d810aa..00859cc8 100644 --- a/src/tools/my_cpuid.c +++ b/src/tools/my_cpuid.c @@ -468,3 +468,10 @@ void my_cpuid(x64emu_t* emu, uint32_t tmp32u) R_EDX = 0; } } + +uint32_t helper_getcpu(x64emu_t* emu) { + uint32_t cpu, node; + if(!getcpu(&cpu, &node)) + return (node&0xff)<<12 | (cpu&0xff); + return 0; +} \ No newline at end of file diff --git a/src/tools/rcfile.c b/src/tools/rcfile.c index 2b45dd06..cd1316f4 100644 --- a/src/tools/rcfile.c +++ b/src/tools/rcfile.c @@ -99,6 +99,7 @@ ENTRYBOOL(BOX64_CRASHHANDLER, box64_dummy_crashhandler) \ ENTRYBOOL(BOX64_NOPULSE, box64_nopulse) \ ENTRYBOOL(BOX64_NOGTK, box64_nogtk) \ ENTRYBOOL(BOX64_NOVULKAN, box64_novulkan) \ +ENTRYBOOL(BOX64_RDTSC_1GHZ, box64_rdtsc_1ghz) \ ENTRYBOOL(BOX64_SSE42, box64_sse42) \ ENTRYINT(BOX64_AVX, new_avx, 0, 2, 2) \ ENTRYBOOL(BOX64_FUTEX_WAITV, box64_futex_waitv) \ @@ -489,6 +490,7 @@ extern char* ftrace_name; void openFTrace(const char* newtrace); void addNewEnvVar(const char* s); void AddNewLibs(const char* libs); +void computeRDTSC(); #ifdef DYNAREC void GatherDynarecExtensions(); #endif @@ -568,6 +570,8 @@ void ApplyParams(const char* name) box64_avx = 1; box64_avx2 = 1; } } + if(param->is_box64_rdtsc_1ghz_present) + computeRDTSC(); #ifdef DYNAREC if(param->is_box64_dynarec_jvm_present && !param->is_box64_jvm_present) box64_jvm = box64_dynarec_jvm; |