Messages in this thread | | | Date | Mon, 01 Jun 2009 10:02:59 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 0/4] amd64_edac: misc fixes |
| |
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.
| |