Centralize detection of x86 CPU features

We now maintain an array of booleans that indicate which features were
detected at runtime. When code wants to check for a given feature,
the array is automatically checked if it has been initialized and if
not, a single function checks all features at once.

Move all x86 feature detection to pg_cpu_x86.c, and move the CRC
function choosing logic to the file where the hardware-specific
functions are defined, consistent with more recent hardware-specific
files in src/port.

Reviewed-by: Zsolt Parragi <[email protected]>
Discussion: 
https://postgr.es/m/CANWCAZbgEUFw7LuYSVeJ=tj98r5hoob1ffeqk3alvbw5ru5...@mail.gmail.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/16743db061e431d40522547c6436af6616026caa

Modified Files
--------------
src/include/port/pg_cpu.h        | 50 ++++++++++++++++++++++
src/port/pg_cpu_x86.c            | 65 +++++++++++-----------------
src/port/pg_crc32c_sse42.c       | 32 ++++++++++++++
src/port/pg_popcount_x86.c       | 91 ++--------------------------------------
src/tools/pgindent/typedefs.list |  1 +
5 files changed, 112 insertions(+), 127 deletions(-)

Reply via email to