]> git.ipfire.org Git - thirdparty/gcc.git/commit - libgcc/ChangeLog
This patch adds new builtins to check for cpu type and features.
authorSriraman Tallam <tmsriram@google.com>
Wed, 25 Apr 2012 00:08:37 +0000 (00:08 +0000)
committerSriraman Tallam <tmsriram@gcc.gnu.org>
Wed, 25 Apr 2012 00:08:37 +0000 (00:08 +0000)
commit792317cc777123b9cac8fc9a70fc85b01a3d7a0f
tree24353908af542b30588c5987f4df12eea09eb6e2
parente1be98a467ee4c954722eb9b41a6ca2d0d7b78b1
This patch adds new builtins to check for cpu type and features.

2012-04-24  Sriraman Tallam  <tmsriram@google.com>

This patch adds new builtins to check for cpu type and features.

* __builtin_cpu_is ("<CPUNAME>")
* __builtin_cpu_supports ("<FEATURE>")

apart from the cpu init builtin, __builtin_cpu_init.

List of CPU names :

* "amd"
* "intel"
* "atom"
* "core2"
* "corei7"
* "nehalem"
* "westmere"
* "sandybridge"
* "amdfam10h"
* "barcelona"
* "shanghai"
* "istanbul"
* "bdver1"
* "bdver2"

List of CPU features :

* "cmov"
* "mmx"
* "popcnt"
* "sse"
* "sse2"
* "sse3"
* "ssse3"
* "sse4.1"
* "sse4.2"
* "avx"

        * config/i386/i386.c (build_processor_model_struct): New function.
        (make_var_decl): New function.
        (fold_builtin_cpu): New function.
        (ix86_fold_builtin): New function.
        (make_cpu_type_builtin): New function.
        (ix86_init_platform_type_builtins): New function.
        (ix86_expand_builtin): Expand new builtins by folding them.
        (ix86_init_builtins): Make new builtins to detect CPU type.
        (TARGET_FOLD_BUILTIN): New macro.
        (IX86_BUILTIN_CPU_INIT): New enum value.
        (IX86_BUILTIN_CPU_IS): New enum value.
        (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
        * config/i386/i386-builtin-types.def: New function type.
        * testsuite/gcc.target/builtin_target.c: New testcase.
        * doc/extend.texi: Document builtins.

        * libgcc/config/i386/i386-cpuinfo.c: New file.
        * libgcc/config/i386/t-cpuinfo: New file.
        * libgcc/config.host: Include t-cpuinfo.
        * libgcc/config/i386/libgcc-glibc.ver: Version symbol __cpu_model.

From-SVN: r186789
gcc/ChangeLog
gcc/config/i386/i386-builtin-types.def
gcc/config/i386/i386.c
gcc/doc/extend.texi
gcc/testsuite/gcc.target/i386/builtin_target.c [new file with mode: 0644]
libgcc/ChangeLog
libgcc/config.host
libgcc/config/i386/i386-cpuinfo.c [new file with mode: 0644]
libgcc/config/i386/libgcc-glibc.ver
libgcc/config/i386/t-cpuinfo [new file with mode: 0644]