RDTSCP from dlang

rikki cattermole via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Aug 31 00:36:16 PDT 2016


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


More information about the Digitalmars-d-learn mailing list