Source

Thread

1/ @NOTimothyLottes

Renovating CPU clock code. I’m assuming x86-64 TSC is always >= 1 GHz so that conversion of clock counter diff to nanoseconds is simply a MUL instruction fetching the RDX high 64-bit result (of the 128-bit computed). But figuring out how to do the inline asm was a pain.

Branches: 2026-05-31-FUZxxl-if-you-do-the-multiply-in-uint128-t-and-then

2/ @NOTimothyLottes

Looks like NtQuerySystemInformation() with SystemHypervisorSharedPageInformation (aka 0xc5) gives 64-bit scalar for TSC that converts time to units of 10 MHz. So the smart way is to work in units of TSC, then do a subtraction of TSC terms, then MULHI to get {ms, us, or ns} time

3/ @NOTimothyLottes

https://gist.github.com/pmttavara/6f06fc5c7679c07375483b06bb77430c - A great reference for getting TSC scaling multipliers on Linux and Windows

0 items under this folder.