On 31/08/2016 7:34 PM, kookman wrote:
On Tuesday, 30 August 2016 at 09:04:41 UTC, Basile B. wrote:
ALternatively to Rikki K's solution, you can do this to mimic the
rdtscp behavior:

asm
{
  cpuid;
  rdtsc;
  // store time in locals
}
// bench
{
  rdtsc;
  // store time in locals
}
// compute delta


explanations here:
-
http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/ia-32-ia-64-benchmark-code-execution-paper.pdf

- http://stackoverflow.com/a/14214220

But according to the first link, this solution, while better than
rdtsc alone, is not as good as rdtscp.

Indeed, I want to use rdtscp to get access to the core ID it makes
available (to at least know when tsc is from different cores/packages).
I guess in the meantime I can use Rikki's solution.

Sorry I'm a DMD asm newbie: DO i need to worry about which registers I
clobber here? I couldn't find any info about this on the Inline Assembly
doco page on dlang.org.

http://dlang.org/spec/abi.html#register_conventions

Reply via email to