Re: The builtin function `__builtin_ia32_rdtscp()` is undocumented

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2017/4/24 14:29, Marc Glisse wrote:
On Mon, 24 Apr 2017, Liu Hao wrote:

Today I accidentally found the built-in function
`__builtin_ia32_rdtscp()` on GCC6, but there is no documentation about
it on <http://gcc.gnu.org/onlinedocs/gcc/x86-Built-in-Functions.html>.
Is this an oversight?

I don't know if it is an oversight, but I think documenting the builtins
is a bad idea, you are supposed to use the intrinsics instead, in this
case __rdtscp, which is documented by Intel (and Microsoft).

Yes. This function is not so important for me and I am just a bit curious.

FWIW, I really love using the function `__builtin_pause()`. As you have pointed out I should have been using `_mm_pause()` instead, but it requires `#include "emmintrin.h"` according to Intel's documentation and the `-msse2` command line option when targeting x86. The function `__builtin_pause()` works perfectly there. And even if (in the rare case) the `PAUSE` instruction isn't recognized by the CPU, it is a valid encoding of `REP NOP` thus will not trigger an illegal instruction exception nevertheless.

--
Best regards,
LH_Mouse




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux