diff options
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; |