Re: [PATCH 0/4] amd64_edac: misc fixes

H. Peter Anvin
2009-06-01T17:04:19Z

H. Peter Anvin wrote:
>
> Yes, we would have to do something like that.
>
> However, if you're doing that you shouldn't use typeof() there...
> instead this should be turned into an inline function with explicit
> 64-bit types.
>
> It would be good if we could get Kbuild to export some kind of macro
> that we can use to test binutils version, so we can do something like:
>
> #if BINUTILS_VERSION >= KERNEL_VERSION(2,18,50)
> /* Do the right thing */
> #else
> /* Do the wrong thing */
> #endif
>

The other option, and perhaps a better option, is to key it on the
version of gcc; then we can use the gcc intrinsics __builtin_popcount(),
__builtin_popcountl() and __builtin_popcountll(), which should produce
better code since gcc can schedule them appropriately.

Probably also means passing -msse4.2 to gcc while hoping that that
doesn't enable any #TS-generating instructions (SSE 4.2 is mostly a
collection of integer instructions).

(H.J., any comments?)

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.