1
1
Fork 0
forked from suyu/suyu

x64: Simplify RDTSC on non-MSVC compilers

Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
This commit is contained in:
Morph 2023-03-22 16:40:41 -04:00
parent e1bce50d8b
commit 981bc8aa1c
2 changed files with 10 additions and 16 deletions

View file

@ -33,16 +33,13 @@ __forceinline static void TPAUSE() {
}
#else
static u64 FencedRDTSC() {
u64 result;
u64 eax;
u64 edx;
asm volatile("lfence\n\t"
"rdtsc\n\t"
"shl $32, %%rdx\n\t"
"or %%rdx, %0\n\t"
"lfence"
: "=a"(result)
:
: "rdx", "memory", "cc");
return result;
"lfence\n\t"
: "=a"(eax), "=d"(edx));
return (edx << 32) | eax;
}
static void TPAUSE() {

View file

@ -27,16 +27,13 @@ __forceinline static u64 FencedRDTSC() {
}
#else
static u64 FencedRDTSC() {
u64 result;
u64 eax;
u64 edx;
asm volatile("lfence\n\t"
"rdtsc\n\t"
"shl $32, %%rdx\n\t"
"or %%rdx, %0\n\t"
"lfence"
: "=a"(result)
:
: "rdx", "memory", "cc");
return result;
"lfence\n\t"
: "=a"(eax), "=d"(edx));
return (edx << 32) | eax;
}
#endif