This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [committed] libitm: Disable TSX on processors on which it may be broken.


Hello!

> This fix follows the same approach that glibc uses to disable TSX on
> processors on which it is broken.  TSX can also be disabled through a
> microcode update on these processors, but glibc consensus is that it
> cannot be detected reliably whether the microcode update has been
> applied.  Thus, we just look for affected models/steppings.
>
> Tested on x86_64-linux (but I don't have a machine with broken TSX
> available).
>
>        libitm/ChangeLog
>
>        * config/x86/target.h (htm_available): Add check for some processors
>        on which TSX is broken.

+      __cpuid (0, a, b, c, d);
+      if (b == 0x756e6547 && c == 0x6c65746e && d == 0x49656e69)

You can use:

#define signature_INTEL_ebx    0x756e6547
#define signature_INTEL_ecx    0x6c65746e
#define signature_INTEL_edx    0x49656e69

defines from cpuid.h here.

Uros.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]