diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-03-14 11:01:40 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-03-14 11:01:40 +0100 |
| commit | cd8bda7a29a2ef15d939890cacab02efb84e0158 (patch) | |
| tree | ee89bcc4a842c70582c5ac6736a1989309810bde /src/emu | |
| parent | 8115b4705109028650bdf0236b23a4991ddaaed2 (diff) | |
| download | box64-cd8bda7a29a2ef15d939890cacab02efb84e0158.tar.gz box64-cd8bda7a29a2ef15d939890cacab02efb84e0158.zip | |
Changed, again, RDTSC and Hardware counter, introducing auto calibration when hardware counter is too slow for modern standard (and removed BOX64_RDTSC env. var.)
Diffstat (limited to 'src/emu')
| -rw-r--r-- | src/emu/x64run0f.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/emu/x64run0f.c b/src/emu/x64run0f.c index f14b9dd5..e9c2c761 100644 --- a/src/emu/x64run0f.c +++ b/src/emu/x64run0f.c @@ -107,6 +107,8 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) break; case 0xF9: /* RDTSCP */ tmp64u = ReadTSC(emu); + if(box64_rdtsc_shift) + tmp64u<<=box64_rdtsc_shift; R_RAX = tmp64u & 0xffffffff; R_RDX = tmp64u >> 32; R_RCX = 0; // should be low of IA32_TSC @@ -368,6 +370,8 @@ uintptr_t Run0F(x64emu_t *emu, rex_t rex, uintptr_t addr, int *step) case 0x31: /* RDTSC */ tmp64u = ReadTSC(emu); + if(box64_rdtsc_shift) + tmp64u<<=box64_rdtsc_shift; R_RDX = tmp64u>>32; R_RAX = tmp64u&0xFFFFFFFF; break; |