forked from boostorg/predef
21
.travis.yml
21
.travis.yml
@ -19,20 +19,13 @@ os:
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- compiler: clang
|
||||
env: TOOLSET=clang-3.4
|
||||
- compiler: clang
|
||||
env: TOOLSET=clang-3.5
|
||||
- compiler: clang
|
||||
env: TOOLSET=clang-3.6
|
||||
- compiler: gcc
|
||||
env: TOOLSET=gcc-4.7
|
||||
- compiler: gcc
|
||||
env: TOOLSET=gcc-4.8
|
||||
- compiler: gcc
|
||||
env: TOOLSET=gcc-4.9
|
||||
- compiler: gcc
|
||||
env: TOOLSET=gcc-5.1
|
||||
- env: TOOLSET=clang-3.4
|
||||
- env: TOOLSET=clang-3.5
|
||||
- env: TOOLSET=clang-3.6
|
||||
- env: TOOLSET=gcc-4.7
|
||||
- env: TOOLSET=gcc-4.8
|
||||
- env: TOOLSET=gcc-4.9
|
||||
- env: TOOLSET=gcc-5.1
|
||||
|
||||
before_install: wget "https://raw.githubusercontent.com/boostorg/regression/develop/ci/src/script.py"
|
||||
install: python script.py install
|
||||
|
@ -12,12 +12,14 @@ environment:
|
||||
platform: 32
|
||||
- TOOLSET: vs-2012
|
||||
platform: 32
|
||||
- TOOLSET: vs-2012
|
||||
platform: 64
|
||||
- TOOLSET: vs-2013
|
||||
platform: 32
|
||||
- TOOLSET: vs-2013
|
||||
platform: 64
|
||||
- TOOLSET: vs-2015
|
||||
platform: 32
|
||||
- TOOLSET: vs-2015
|
||||
platform: 64
|
||||
|
||||
configuration:
|
||||
- debug
|
||||
|
@ -14,6 +14,7 @@ import toolset ;
|
||||
import modules ;
|
||||
import path ;
|
||||
import "class" : new ;
|
||||
import regex ;
|
||||
|
||||
# Create a project for our targets.
|
||||
project.extension predef check ;
|
||||
@ -21,30 +22,6 @@ project.extension predef check ;
|
||||
# Feature to pass check expressions to check programs.
|
||||
feature.feature predef-expression : : free ;
|
||||
|
||||
# Check programs. Each needs to be compiled for different languages
|
||||
# even though they are all the same source code.
|
||||
local rule check_target ( language : ext )
|
||||
{
|
||||
# Need to use absolute paths because we don't know the
|
||||
# context of the invocation which affects where the paths
|
||||
# originate from.
|
||||
local predef_jam
|
||||
= [ modules.binding $(__name__) ] ;
|
||||
local source_path
|
||||
= $(predef_jam:D)/predef_check_as_$(language).$(ext) ;
|
||||
local include_path
|
||||
= $(predef_jam:D)/../include ;
|
||||
_check_exe_($(language)) = [
|
||||
exe predef_check_as_$(language)
|
||||
: $(source_path)
|
||||
: <include>$(include_path) ] ;
|
||||
explicit predef_check_as_$(language) ;
|
||||
}
|
||||
check_target c : c ;
|
||||
check_target cpp : cpp ;
|
||||
check_target objc : m ;
|
||||
check_target objcpp : mm ;
|
||||
|
||||
# Checks the expressions and when used evaluates to the true-properties
|
||||
# if the expressions are all true. Otherwise evaluates to the
|
||||
# false-properties.
|
||||
@ -65,26 +42,16 @@ rule check ( expressions + : language ? : true-properties * : false-properties *
|
||||
}
|
||||
else
|
||||
{
|
||||
# The check program to use.
|
||||
local exe_target = [ $(_check_exe_($(language))).name ] ;
|
||||
exe_target = /check/predef//$(exe_target) ;
|
||||
|
||||
# Create the check run if we don't have one yet.
|
||||
local key = [ MD5 $(language)::$(expression) ] ;
|
||||
if ! ( $(key) in $(_checks_) )
|
||||
{
|
||||
_checks_ += $(key) ;
|
||||
_message_(/check/predef//$(key).txt) = $(expression) ;
|
||||
make
|
||||
$(key).txt :
|
||||
$(exe_target) :
|
||||
@$(__name__).predef_check_action :
|
||||
<predef-expression>$(expression) ;
|
||||
explicit
|
||||
$(key).txt ;
|
||||
_message_(/check/predef//predef_check_cc_$(key)) = $(expression) ;
|
||||
check_target $(language) $(key) : [ change_term_to_def $(expression) ] ;
|
||||
}
|
||||
|
||||
terms += /check/predef//$(key).txt ;
|
||||
terms += /check/predef//predef_check_cc_$(key) ;
|
||||
}
|
||||
}
|
||||
local instance = [ new check-expression-evaluator
|
||||
@ -102,15 +69,44 @@ rule require ( expressions + : language ? )
|
||||
return [ check $(expressions) : $(language) : : <build>no ] ;
|
||||
}
|
||||
|
||||
rule predef_check_action ( targets + : sources + : props * )
|
||||
#############################################################################
|
||||
|
||||
.c.ext = c ;
|
||||
.cpp.ext = cpp ;
|
||||
.objc.ext = m ;
|
||||
.objcpp.ext = mm ;
|
||||
|
||||
# Check targets. Each needs to be compiled for different languages
|
||||
# even though they are all the same source code.
|
||||
local rule check_target ( language key : requirements * )
|
||||
{
|
||||
PREDEF_CHECK_EXPRESSION on $(targets)
|
||||
= [ feature.get-values <predef-expression> : $(props) ] ;
|
||||
# Need to use absolute paths because we don't know the
|
||||
# context of the invocation which affects where the paths
|
||||
# originate from.
|
||||
local predef_jam
|
||||
= [ modules.binding $(__name__) ] ;
|
||||
local source_path
|
||||
= $(predef_jam:D)/predef_check_cc_as_$(language).$(.$(language).ext) ;
|
||||
local include_path
|
||||
= $(predef_jam:D)/../include ;
|
||||
obj predef_check_cc_$(key)
|
||||
: $(source_path)
|
||||
: <include>$(include_path) $(requirements) ;
|
||||
explicit predef_check_cc_$(key) ;
|
||||
return predef_check_cc_$(key) ;
|
||||
}
|
||||
|
||||
actions predef_check_action bind PREDEF_CHECK_EXPRESSION
|
||||
local rule change_term_to_def ( term )
|
||||
{
|
||||
$(>) "$(PREDEF_CHECK_EXPRESSION)" > $(<)
|
||||
local parts = [ regex.split $(term) " " ] ;
|
||||
if $(parts[3])
|
||||
{
|
||||
local version_number = [ regex.split $(parts[3]) "[.]" ] ;
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
if ! $(version_number[3]) { version_number += "0" ; }
|
||||
parts = $(parts[1-2]) BOOST_VERSION_NUMBER($(version_number:J=",")) ;
|
||||
}
|
||||
return <define>CHECK=\"$(parts:J=" ")\" ;
|
||||
}
|
||||
|
||||
class check-expression-evaluator
|
||||
|
19
check/predef_check_cc.h
Normal file
19
check/predef_check_cc.h
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include <boost/predef.h>
|
||||
|
||||
#ifdef CHECK
|
||||
# if ((CHECK) == 0)
|
||||
# error "FAILED"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
int dummy()
|
||||
{
|
||||
static int d = 0;
|
||||
return d++;
|
||||
}
|
7
check/predef_check_cc_as_c.c
Normal file
7
check/predef_check_cc_as_c.c
Normal file
@ -0,0 +1,7 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include "predef_check_cc.h"
|
7
check/predef_check_cc_as_cpp.cpp
Normal file
7
check/predef_check_cc_as_cpp.cpp
Normal file
@ -0,0 +1,7 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include "predef_check_cc.h"
|
7
check/predef_check_cc_as_objc.m
Normal file
7
check/predef_check_cc_as_objc.m
Normal file
@ -0,0 +1,7 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include "predef_check_cc.h"
|
7
check/predef_check_cc_as_objcpp.mm
Normal file
7
check/predef_check_cc_as_objcpp.mm
Normal file
@ -0,0 +1,7 @@
|
||||
/*
|
||||
Copyright Rene Rivera 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
#include "predef_check_cc.h"
|
89
doc/hardware_simd.qbk
Normal file
89
doc/hardware_simd.qbk
Normal file
@ -0,0 +1,89 @@
|
||||
SIMD predefs depend on compiler options. For example, you will have to add the
|
||||
option `-msse3` to clang or gcc to enable SSE3. SIMD predefs are also inclusive.
|
||||
This means that if SSE3 is enabled, then every other extensions with a lower
|
||||
version number will implicitly be enabled and detected. However, some extensions
|
||||
are CPU specific, they may not be detected nor enabled when an upper version is
|
||||
enabled.
|
||||
|
||||
[note SSE(1) and SSE2 are automatically enabled by default when using x86-64
|
||||
architecture.]
|
||||
|
||||
To check if any SIMD extension has been enabled, you can use:
|
||||
|
||||
``
|
||||
#include <boost/predef/hardware/simd.h>
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
#if defined(BOOST_HW_SIMD_AVAILABLE)
|
||||
std::cout << "SIMD detected!" << std::endl;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
``
|
||||
|
||||
When writing SIMD specific code, you may want to check if a particular extension
|
||||
has been detected. To do so you have to use the right architecture predef and
|
||||
compare it. Those predef are of the form `BOOST_HW_SIMD_"ARCH"` (where `"ARCH"`
|
||||
is either `ARM`, `PPC`, or `X86`). For example, if you compile code for x86
|
||||
architecture, you will have to use `BOOST_HW_SIMD_X86`. Its value will be the
|
||||
version number of the most recent SIMD extension detected for the architecture.
|
||||
|
||||
To check if an extension has been enabled:
|
||||
|
||||
``
|
||||
#include <boost/predef/hardware/simd.h>
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE3_VERSION
|
||||
std::cout << "This is SSE3!" << std::endl;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
``
|
||||
|
||||
[note The *_VERSION* defines that map version number to actual real
|
||||
identifiers. This way it is easier to write comparisons without messing up with
|
||||
version numbers.]
|
||||
|
||||
To *"stricly"* check the most recent detected extension:
|
||||
|
||||
``
|
||||
#include <boost/predef/hardware/simd.h>
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
#if BOOST_HW_SIMD_X86 == BOOST_HW_SIMD_X86_SSE3_VERSION
|
||||
std::cout << "This is SSE3 and this is the most recent enabled extension!"
|
||||
<< std::endl;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
``
|
||||
|
||||
Because of the version systems of predefs and of the inclusive property of SIMD
|
||||
extensions macros, you can easily check for ranges of supported extensions:
|
||||
|
||||
``
|
||||
#include <boost/predef/hardware/simd.h>
|
||||
#include <iostream>
|
||||
|
||||
int main()
|
||||
{
|
||||
#if BOOST_HW_SIMD_X86 >= BOOST_HW_SIMD_X86_SSE2_VERSION &&\
|
||||
BOOST_HW_SIMD_X86 <= BOOST_HW_SIMD_X86_SSSE3_VERSION
|
||||
std::cout << "This is SSE2, SSE3 and SSSE3!" << std::endl;
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
``
|
||||
|
||||
[note Unlike gcc and clang, Visual Studio does not allow you to specify precisely
|
||||
the SSE variants you want to use, the only detections that will take place are
|
||||
SSE, SSE2, AVX and AVX2. For more informations,
|
||||
see [@https://msdn.microsoft.com/en-us/library/b0084kay.aspx here].]
|
||||
|
@ -7,6 +7,15 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
[section History]
|
||||
|
||||
[heading 1.4]
|
||||
|
||||
* Add detection of SIMD hardware. With the addition of the `BOOST_HW_*`
|
||||
category (from Charly Chevalier).
|
||||
* Add compile only version of check utilities to address cross-compile
|
||||
use cases. And changed the BBv2 check support to use compile only checks.
|
||||
* Fix test warnings.
|
||||
* Fix typos on `AVAILABLE` macros for Windows Platform. (from Vemund Handeland)
|
||||
|
||||
[heading 1.3]
|
||||
|
||||
* Fix many problems with `predef_check` functionality.
|
||||
|
@ -1,10 +1,10 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Predef 1.3</title>
|
||||
<title>Predef 1.4</title>
|
||||
<link rel="stylesheet" href="boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="index.html" title="Predef 1.3">
|
||||
<link rel="home" href="index.html" title="Predef 1.4">
|
||||
<link rel="next" href="predef/introduction.html" title="Introduction">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -13,12 +13,14 @@
|
||||
<div class="titlepage">
|
||||
<div>
|
||||
<div><h2 class="title">
|
||||
<a name="predef"></a>Predef 1.3</h2></div>
|
||||
<a name="predef"></a>Predef 1.4</h2></div>
|
||||
<div><div class="authorgroup"><div class="author"><h3 class="author">
|
||||
<span class="firstname">Rene</span> <span class="surname">Rivera</span>
|
||||
</h3></div></div></div>
|
||||
<div><p class="copyright">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera</p></div>
|
||||
<div><p class="copyright">Copyright © 2015 Charly Chevalier</p></div>
|
||||
<div><p class="copyright">Copyright © 2015 Joel Falcou</p></div>
|
||||
<div><div class="legalnotice">
|
||||
<a name="predef.legal"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
@ -42,6 +44,7 @@
|
||||
<dt><span class="section"><a href="predef/reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
|
||||
<dt><span class="section"><a href="predef/reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
|
||||
<dt><span class="section"><a href="predef/reference/boost_plat_platform_macros.html"><code class="computeroutput"><span class="identifier">BOOST_PLAT</span></code> platform macros</a></span></dt>
|
||||
<dt><span class="section"><a href="predef/reference/boost_hw_hardware_macros.html"><code class="computeroutput"><span class="identifier">BOOST_HW</span></code> hardware macros</a></span></dt>
|
||||
<dt><span class="section"><a href="predef/reference/other_macros.html">Other macros</a></span></dt>
|
||||
<dt><span class="section"><a href="predef/reference/version_definition_macros.html">Version definition
|
||||
macros</a></span></dt>
|
||||
@ -54,7 +57,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: July 01, 2015 at 22:17:15 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: October 15, 2015 at 04:09:31 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Acknoledgements</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="to_do.html" title="To Do">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -36,7 +36,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Adding new predefs</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="using_the_predefs.html" title="Using the predefs">
|
||||
<link rel="next" href="reference.html" title="Reference">
|
||||
</head>
|
||||
@ -290,7 +290,7 @@ Documentation about what is detected.
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Check Utilities</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="reference/version_definition_macros.html" title="Version definition macros">
|
||||
<link rel="next" href="history.html" title="History">
|
||||
</head>
|
||||
@ -146,7 +146,7 @@ exe my_special_exe : source.cpp
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>History</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="check_utilities.html" title="Check Utilities">
|
||||
<link rel="next" href="to_do.html" title="To Do">
|
||||
</head>
|
||||
@ -19,6 +19,27 @@
|
||||
</h2></div></div></div>
|
||||
<h4>
|
||||
<a name="predef.history.h0"></a>
|
||||
<span class="phrase"><a name="predef.history.1_4"></a></span><a class="link" href="history.html#predef.history.1_4">1.4</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
<li class="listitem">
|
||||
Add detection of SIMD hardware. With the addition of the <code class="computeroutput"><span class="identifier">BOOST_HW_</span><span class="special">*</span></code>
|
||||
category (from Charly Chevalier).
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Add compile only version of check utilities to address cross-compile use
|
||||
cases. And changed the BBv2 check support to use compile only checks.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Fix test warnings.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Fix typos on <code class="computeroutput"><span class="identifier">AVAILABLE</span></code>
|
||||
macros for Windows Platform. (from Vemund Handeland)
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h1"></a>
|
||||
<span class="phrase"><a name="predef.history.1_3"></a></span><a class="link" href="history.html#predef.history.1_3">1.3</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -46,7 +67,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h1"></a>
|
||||
<a name="predef.history.h2"></a>
|
||||
<span class="phrase"><a name="predef.history.1_2"></a></span><a class="link" href="history.html#predef.history.1_2">1.2</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -70,7 +91,7 @@
|
||||
</li>
|
||||
</ul></div>
|
||||
<h4>
|
||||
<a name="predef.history.h2"></a>
|
||||
<a name="predef.history.h3"></a>
|
||||
<span class="phrase"><a name="predef.history.1_1"></a></span><a class="link" href="history.html#predef.history.1_1">1.1</a>
|
||||
</h4>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
|
||||
@ -113,7 +134,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,9 +4,9 @@
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="prev" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="../index.html" title="Predef 1.4">
|
||||
<link rel="next" href="using_the_predefs.html" title="Using the predefs">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
@ -192,7 +192,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="adding_new_predefs.html" title="Adding new predefs">
|
||||
<link rel="next" href="reference/boost_arch_architecture_macros.html" title="BOOST_ARCH architecture macros">
|
||||
</head>
|
||||
@ -24,6 +24,7 @@
|
||||
<dt><span class="section"><a href="reference/boost_lib_library_macros.html"><code class="computeroutput"><span class="identifier">BOOST_LIB</span></code> library macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/boost_os_operating_system_macros.html"><code class="computeroutput"><span class="identifier">BOOST_OS</span></code> operating system macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/boost_plat_platform_macros.html"><code class="computeroutput"><span class="identifier">BOOST_PLAT</span></code> platform macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/boost_hw_hardware_macros.html"><code class="computeroutput"><span class="identifier">BOOST_HW</span></code> hardware macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/other_macros.html">Other macros</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/version_definition_macros.html">Version definition
|
||||
macros</a></span></dt>
|
||||
@ -32,7 +33,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_ARCH architecture macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="../reference.html" title="Reference">
|
||||
<link rel="next" href="boost_comp_compiler_macros.html" title="BOOST_COMP compiler macros">
|
||||
@ -2138,7 +2138,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_COMP compiler macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_arch_architecture_macros.html" title="BOOST_ARCH architecture macros">
|
||||
<link rel="next" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
|
||||
@ -1790,7 +1790,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
1298
doc/html/predef/reference/boost_hw_hardware_macros.html
Normal file
1298
doc/html/predef/reference/boost_hw_hardware_macros.html
Normal file
File diff suppressed because it is too large
Load Diff
@ -4,7 +4,7 @@
|
||||
<title>BOOST_LANG language standards macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_comp_compiler_macros.html" title="BOOST_COMP compiler macros">
|
||||
<link rel="next" href="boost_lib_library_macros.html" title="BOOST_LIB library macros">
|
||||
@ -321,7 +321,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_LIB library macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_lang_language_standards_ma.html" title="BOOST_LANG language standards macros">
|
||||
<link rel="next" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
||||
@ -883,7 +883,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>BOOST_OS operating system macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_lib_library_macros.html" title="BOOST_LIB library macros">
|
||||
<link rel="next" href="boost_plat_platform_macros.html" title="BOOST_PLAT platform macros">
|
||||
@ -1907,7 +1907,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,14 +4,14 @@
|
||||
<title>BOOST_PLAT platform macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_os_operating_system_macros.html" title="BOOST_OS operating system macros">
|
||||
<link rel="next" href="other_macros.html" title="Other macros">
|
||||
<link rel="next" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="other_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_hw_hardware_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
@ -263,7 +263,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
@ -271,7 +271,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="other_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
<a accesskey="p" href="boost_os_operating_system_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_hw_hardware_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,14 +4,14 @@
|
||||
<title>Other macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="boost_plat_platform_macros.html" title="BOOST_PLAT platform macros">
|
||||
<link rel="prev" href="boost_hw_hardware_macros.html" title="BOOST_HW hardware macros">
|
||||
<link rel="next" href="version_definition_macros.html" title="Version definition macros">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_plat_platform_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
<a accesskey="p" href="boost_hw_hardware_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
@ -71,7 +71,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
@ -79,7 +79,7 @@
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="boost_plat_platform_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
<a accesskey="p" href="boost_hw_hardware_macros.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="version_definition_macros.html"><img src="../../images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -4,7 +4,7 @@
|
||||
<title>Version definition macros</title>
|
||||
<link rel="stylesheet" href="../../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="other_macros.html" title="Other macros">
|
||||
<link rel="next" href="../check_utilities.html" title="Check Utilities">
|
||||
@ -174,7 +174,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>To Do</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="history.html" title="History">
|
||||
<link rel="next" href="acknoledgements.html" title="Acknoledgements">
|
||||
</head>
|
||||
@ -29,7 +29,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -4,8 +4,8 @@
|
||||
<title>Using the predefs</title>
|
||||
<link rel="stylesheet" href="../boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
|
||||
<link rel="home" href="../index.html" title="Predef 1.3">
|
||||
<link rel="up" href="../index.html" title="Predef 1.3">
|
||||
<link rel="home" href="../index.html" title="Predef 1.4">
|
||||
<link rel="up" href="../index.html" title="Predef 1.4">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
<link rel="next" href="adding_new_predefs.html" title="Adding new predefs">
|
||||
</head>
|
||||
@ -59,6 +59,14 @@
|
||||
<code class="computeroutput"><span class="identifier">BOOST_ENDIAN_</span></code> for endianness
|
||||
of the os and architecture combination.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HW_</span></code> for hardware
|
||||
specific features.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BOOST_HW_SIMD</span></code> for SIMD
|
||||
(Single Instruction Multiple Data) detection.
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="note"><table border="0" summary="Note">
|
||||
<tr>
|
||||
@ -212,7 +220,7 @@
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2005, 2008-2015 Rene
|
||||
Rivera<p>
|
||||
Rivera<br>Copyright © 2015 Charly Chevalier<br>Copyright © 2015 Joel Falcou<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
|
@ -1,8 +1,10 @@
|
||||
[article Predef
|
||||
[quickbook 1.7]
|
||||
[version 1.3]
|
||||
[version 1.4]
|
||||
[authors [Rivera, Rene]]
|
||||
[copyright 2005, 2008-2015 Rene Rivera]
|
||||
[copyright 2015 Charly Chevalier]
|
||||
[copyright 2015 Joel Falcou]
|
||||
[purpose Identification and specification of predefined macros.]
|
||||
[license
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
@ -143,6 +145,8 @@ macros of a particular prefix:
|
||||
* `BOOST_OS_` for the operating system we are compiling to.
|
||||
* `BOOST_PLAT_` for platforms on top of operating system or compilers.
|
||||
* `BOOST_ENDIAN_` for endianness of the os and architecture combination.
|
||||
* `BOOST_HW_` for hardware specific features.
|
||||
* `BOOST_HW_SIMD` for SIMD (Single Instruction Multiple Data) detection.
|
||||
|
||||
[note The detected definitions are for the configuration one is targeting
|
||||
during the compile. In particular in a cross-compile this means the target
|
||||
@ -547,6 +551,10 @@ and "Y", "M", "D" for dates.
|
||||
[include ../include/boost/predef/platform/*.h]
|
||||
[endsect]
|
||||
|
||||
[section `BOOST_HW` hardware macros]
|
||||
[include ../include/boost/predef/hardware/*.h]
|
||||
[endsect]
|
||||
|
||||
[section Other macros]
|
||||
[include ../include/boost/predef/other/*.h]
|
||||
[endsect]
|
||||
|
@ -17,6 +17,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#include <boost/predef/os.h>
|
||||
#include <boost/predef/other.h>
|
||||
#include <boost/predef/platform.h>
|
||||
#include <boost/predef/hardware.h>
|
||||
|
||||
#include <boost/predef/version.h>
|
||||
|
||||
|
@ -8,7 +8,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#ifndef BOOST_PREDEF_DETAIL__CASSERT_H
|
||||
#define BOOST_PREDEF_DETAIL__CASSERT_H
|
||||
|
||||
#if defined(__cpluplus)
|
||||
#if defined(__cplusplus)
|
||||
#include <cassert>
|
||||
#else
|
||||
#include <assert.h>
|
||||
|
@ -8,7 +8,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#ifndef BOOST_PREDEF_DETAIL__EXCEPTION_H
|
||||
#define BOOST_PREDEF_DETAIL__EXCEPTION_H
|
||||
|
||||
#if defined(__cpluplus)
|
||||
#if defined(__cplusplus)
|
||||
#include <exception>
|
||||
#endif
|
||||
|
||||
|
16
include/boost/predef/hardware.h
Normal file
16
include/boost/predef/hardware.h
Normal file
@ -0,0 +1,16 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#if !defined(BOOST_PREDEF_HARDWARE_H) || defined(BOOST_PREDEF_INTERNAL_GENERATE_TESTS)
|
||||
#ifndef BOOST_PREDEF_HARDWARE_H
|
||||
#define BOOST_PREDEF_HARDWARE_H
|
||||
#endif
|
||||
|
||||
#include <boost/predef/hardware/simd.h>
|
||||
|
||||
#endif
|
107
include/boost/predef/hardware/simd.h
Normal file
107
include/boost/predef/hardware/simd.h
Normal file
@ -0,0 +1,107 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#include <boost/predef/hardware/simd/x86.h>
|
||||
#include <boost/predef/hardware/simd/x86_amd.h>
|
||||
#include <boost/predef/hardware/simd/arm.h>
|
||||
#include <boost/predef/hardware/simd/ppc.h>
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
/*`
|
||||
[section Using the `BOOST_HW_SIMD_*` predefs]
|
||||
[include ../doc/hardware_simd.qbk]
|
||||
[endsect]
|
||||
|
||||
[/ --------------------------- ]
|
||||
|
||||
[section `BOOST_HW_SIMD_*`]
|
||||
|
||||
[heading `BOOST_HW_SIMD`]
|
||||
|
||||
The SIMD extension detected for a specific architectures.
|
||||
Version number depends on the detected extension.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`BOOST_HW_SIMD_X86_AVAILABLE`] [__predef_detection__]]
|
||||
[[`BOOST_HW_SIMD_X86_AMD_AVAILABLE`] [__predef_detection__]]
|
||||
[[`BOOST_HW_SIMD_ARM_AVAILABLE`] [__predef_detection__]]
|
||||
[[`BOOST_HW_SIMD_PPC_AVAILABLE`] [__predef_detection__]]
|
||||
]
|
||||
|
||||
[include ../include/boost/predef/hardware/simd/x86.h]
|
||||
[include ../include/boost/predef/hardware/simd/x86_amd.h]
|
||||
[include ../include/boost/predef/hardware/simd/arm.h]
|
||||
[include ../include/boost/predef/hardware/simd/ppc.h]
|
||||
|
||||
[endsect]
|
||||
|
||||
[/ --------------------------- ]
|
||||
|
||||
[section `BOOST_HW_SIMD_X86_*_VERSION`]
|
||||
[include ../include/boost/predef/hardware/simd/x86/versions.h]
|
||||
[endsect]
|
||||
|
||||
[section `BOOST_HW_SIMD_X86_AMD_*_VERSION`]
|
||||
[include ../include/boost/predef/hardware/simd/x86_amd/versions.h]
|
||||
[endsect]
|
||||
|
||||
[section `BOOST_HW_SIMD_ARM_*_VERSION`]
|
||||
[include ../include/boost/predef/hardware/simd/arm/versions.h]
|
||||
[endsect]
|
||||
|
||||
[section `BOOST_HW_SIMD_PPC_*_VERSION`]
|
||||
[include ../include/boost/predef/hardware/simd/ppc/versions.h]
|
||||
[endsect]
|
||||
|
||||
*/
|
||||
|
||||
// We check if SIMD extension of multiples architectures have been detected,
|
||||
// if yes, then this is an error!
|
||||
//
|
||||
// NOTE: _X86_AMD implies _X86, so there is no need to check for it here!
|
||||
//
|
||||
#if defined(BOOST_HW_SIMD_ARM_AVAILABLE) && defined(BOOST_HW_SIMD_PPC_AVAILABLE) ||\
|
||||
defined(BOOST_HW_SIMD_ARM_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AVAILABLE) ||\
|
||||
defined(BOOST_HW_SIMD_PPC_AVAILABLE) && defined(BOOST_HW_SIMD_X86_AVAILABLE)
|
||||
# error "Multiple SIMD architectures detected, this cannot happen!"
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_X86_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_X86_AMD_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_X86_AMD
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_ARM_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_ARM
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD_PPC_AVAILABLE)
|
||||
# define BOOST_HW_SIMD BOOST_HW_SIMD_PPC
|
||||
#endif
|
||||
|
||||
#if defined(BOOST_HW_SIMD)
|
||||
# define BOOST_HW_SIMD_AVAILABLE
|
||||
#else
|
||||
# define BOOST_HW_SIMD BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_HW_SIMD_NAME "Hardware SIMD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD, BOOST_HW_SIMD_NAME)
|
57
include/boost/predef/hardware/simd/arm.h
Normal file
57
include/boost/predef/hardware/simd/arm.h
Normal file
@ -0,0 +1,57 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_ARM_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_ARM_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/hardware/simd/arm/versions.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_ARM`]
|
||||
|
||||
The SIMD extension for ARM (*if detected*).
|
||||
Version number depends on the most recent detected extension.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__ARM_NEON__`] [__predef_detection__]]
|
||||
[[`__aarch64__`] [__predef_detection__]]
|
||||
[[`_M_ARM`] [__predef_detection__]]
|
||||
]
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__ARM_NEON__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
|
||||
[[`__aarch64__`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
|
||||
[[`_M_ARM`] [BOOST_HW_SIMD_ARM_NEON_VERSION]]
|
||||
]
|
||||
|
||||
*/
|
||||
|
||||
#define BOOST_HW_SIMD_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#undef BOOST_HW_SIMD_ARM
|
||||
#if !defined(BOOST_HW_SIMD_ARM) && (defined(__ARM_NEON__) || defined(__aarch64__) || defined (_M_ARM))
|
||||
# define BOOST_HW_SIMD_ARM BOOST_HW_SIMD_ARM_NEON_VERSION
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_HW_SIMD_ARM)
|
||||
# define BOOST_HW_SIMD_ARM BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#else
|
||||
# define BOOST_HW_SIMD_ARM_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_HW_SIMD_ARM_NAME "ARM SIMD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_ARM, BOOST_HW_SIMD_ARM_NAME)
|
32
include/boost/predef/hardware/simd/arm/versions.h
Normal file
32
include/boost/predef/hardware/simd/arm/versions.h
Normal file
@ -0,0 +1,32 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_ARM_VERSIONS_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
/*`
|
||||
Those defines represent ARM SIMD extensions versions.
|
||||
|
||||
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_ARM`.]
|
||||
*/
|
||||
|
||||
// ---------------------------------
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_ARM_NEON_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29 NEON]
|
||||
ARM extension version number.
|
||||
|
||||
Version number is: *1.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_ARM_NEON_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
|
||||
|
||||
#endif
|
69
include/boost/predef/hardware/simd/ppc.h
Normal file
69
include/boost/predef/hardware/simd/ppc.h
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_PPC_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_PPC_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/hardware/simd/ppc/versions.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_PPC`]
|
||||
|
||||
The SIMD extension for PowerPC (*if detected*).
|
||||
Version number depends on the most recent detected extension.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__VECTOR4DOUBLE__`] [__predef_detection__]]
|
||||
|
||||
[[`__ALTIVEC__`] [__predef_detection__]]
|
||||
[[`__VEC__`] [__predef_detection__]]
|
||||
|
||||
[[`__VSX__`] [__predef_detection__]]
|
||||
]
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__VECTOR4DOUBLE__`] [BOOST_HW_SIMD_PPC_QPX_VERSION]]
|
||||
|
||||
[[`__ALTIVEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]]
|
||||
[[`__VEC__`] [BOOST_HW_SIMD_PPC_VMX_VERSION]]
|
||||
|
||||
[[`__VSX__`] [BOOST_HW_SIMD_PPC_VSX_VERSION]]
|
||||
]
|
||||
|
||||
*/
|
||||
|
||||
#define BOOST_HW_SIMD_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#undef BOOST_HW_SIMD_PPC
|
||||
#if !defined(BOOST_HW_SIMD_PPC) && defined(__VECTOR4DOUBLE__)
|
||||
# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_QPX_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_PPC) && defined(__VSX__)
|
||||
# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_VSX_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_PPC) && (defined(__ALTIVEC__) || defined(__VEC__))
|
||||
# define BOOST_HW_SIMD_PPC BOOST_HW_SIMD_PPC_VMX_VERSION
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_HW_SIMD_PPC)
|
||||
# define BOOST_HW_SIMD_PPC BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#else
|
||||
# define BOOST_HW_SIMD_PPC_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_HW_SIMD_PPC_NAME "PPC SIMD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_PPC, BOOST_HW_SIMD_PPC_NAME)
|
51
include/boost/predef/hardware/simd/ppc/versions.h
Normal file
51
include/boost/predef/hardware/simd/ppc/versions.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_PPC_VERSIONS_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
/*`
|
||||
Those defines represent Power PC SIMD extensions versions.
|
||||
|
||||
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_PPC`.]
|
||||
*/
|
||||
|
||||
// ---------------------------------
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_PPC_VMX_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/AltiVec#VMX128 VMX] powerpc extension
|
||||
version number.
|
||||
|
||||
Version number is: *1.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_PPC_VMX_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_PPC_VSX_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/AltiVec#VSX VSX] powerpc extension version
|
||||
number.
|
||||
|
||||
Version number is: *1.1.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_PPC_VSX_VERSION BOOST_VERSION_NUMBER(1, 1, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_PPC_QPX_VERSION`]
|
||||
|
||||
The QPX powerpc extension version number.
|
||||
|
||||
Version number is: *2.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_PPC_QPX_VERSION BOOST_VERSION_NUMBER(2, 0, 0)
|
||||
|
||||
#endif
|
123
include/boost/predef/hardware/simd/x86.h
Normal file
123
include/boost/predef/hardware/simd/x86.h
Normal file
@ -0,0 +1,123 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_X86_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/hardware/simd/x86/versions.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86`]
|
||||
|
||||
The SIMD extension for x86 (*if detected*).
|
||||
Version number depends on the most recent detected extension.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__SSE__`] [__predef_detection__]]
|
||||
[[`_M_X64`] [__predef_detection__]]
|
||||
[[`_M_IX86_FP >= 1`] [__predef_detection__]]
|
||||
|
||||
[[`__SSE2__`] [__predef_detection__]]
|
||||
[[`_M_X64`] [__predef_detection__]]
|
||||
[[`_M_IX86_FP >= 2`] [__predef_detection__]]
|
||||
|
||||
[[`__SSE3__`] [__predef_detection__]]
|
||||
|
||||
[[`__SSSE3__`] [__predef_detection__]]
|
||||
|
||||
[[`__SSE4_1__`] [__predef_detection__]]
|
||||
|
||||
[[`__SSE4_2__`] [__predef_detection__]]
|
||||
|
||||
[[`__AVX__`] [__predef_detection__]]
|
||||
|
||||
[[`__FMA__`] [__predef_detection__]]
|
||||
|
||||
[[`__AVX2__`] [__predef_detection__]]
|
||||
]
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__SSE__`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
|
||||
[[`_M_X64`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
|
||||
[[`_M_IX86_FP >= 1`] [BOOST_HW_SIMD_X86_SSE_VERSION]]
|
||||
|
||||
[[`__SSE2__`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
|
||||
[[`_M_X64`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
|
||||
[[`_M_IX86_FP >= 2`] [BOOST_HW_SIMD_X86_SSE2_VERSION]]
|
||||
|
||||
[[`__SSE3__`] [BOOST_HW_SIMD_X86_SSE3_VERSION]]
|
||||
|
||||
[[`__SSSE3__`] [BOOST_HW_SIMD_X86_SSSE3_VERSION]]
|
||||
|
||||
[[`__SSE4_1__`] [BOOST_HW_SIMD_X86_SSE4_1_VERSION]]
|
||||
|
||||
[[`__SSE4_2__`] [BOOST_HW_SIMD_X86_SSE4_2_VERSION]]
|
||||
|
||||
[[`__AVX__`] [BOOST_HW_SIMD_X86_AVX_VERSION]]
|
||||
|
||||
[[`__FMA__`] [BOOST_HW_SIMD_X86_FMA3_VERSION]]
|
||||
|
||||
[[`__AVX2__`] [BOOST_HW_SIMD_x86_AVX2_VERSION]]
|
||||
]
|
||||
|
||||
*/
|
||||
|
||||
#define BOOST_HW_SIMD_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
#undef BOOST_HW_SIMD_X86
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__MIC__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_MIC_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__AVX2__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_AVX2_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__AVX__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_AVX_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__FMA__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_FMA_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE4_2__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE4_2_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE4_1__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE4_1_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__SSSE3__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSSE3_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__SSE3__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE3_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE2__) || defined(_M_X64) || _M_IX86_FP >= 2)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE2_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && (defined(__SSE__) || defined(_M_X64) || _M_IX86_FP >= 1)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_SSE_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86) && defined(__MMX__)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_HW_SIMD_X86_MMX_VERSION
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_HW_SIMD_X86)
|
||||
# define BOOST_HW_SIMD_X86 BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#else
|
||||
# define BOOST_HW_SIMD_X86_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_HW_SIMD_X86_NAME "x86 SIMD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_X86, BOOST_HW_SIMD_X86_NAME)
|
129
include/boost/predef/hardware/simd/x86/versions.h
Normal file
129
include/boost/predef/hardware/simd/x86/versions.h
Normal file
@ -0,0 +1,129 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_X86_VERSIONS_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
/*`
|
||||
Those defines represent x86 SIMD extensions versions.
|
||||
|
||||
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86`.]
|
||||
*/
|
||||
|
||||
// ---------------------------------
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_MMX_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/MMX_(instruction_set) MMX] x86 extension
|
||||
version number.
|
||||
|
||||
Version number is: *0.99.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_MMX_VERSION BOOST_VERSION_NUMBER(0, 99, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/Streaming_SIMD_Extensions SSE] x86 extension
|
||||
version number.
|
||||
|
||||
Version number is: *1.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSE_VERSION BOOST_VERSION_NUMBER(1, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE2_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/SSE2 SSE2] x86 extension version number.
|
||||
|
||||
Version number is: *2.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSE2_VERSION BOOST_VERSION_NUMBER(2, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE3_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/SSE3 SSE3] x86 extension version number.
|
||||
|
||||
Version number is: *3.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSE3_VERSION BOOST_VERSION_NUMBER(3, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSSE3_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/SSSE3 SSSE3] x86 extension version number.
|
||||
|
||||
Version number is: *3.1.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSSE3_VERSION BOOST_VERSION_NUMBER(3, 1, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE4_1_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/SSE4#SSE4.1 SSE4_1] x86 extension version
|
||||
number.
|
||||
|
||||
Version number is: *4.1.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSE4_1_VERSION BOOST_VERSION_NUMBER(4, 1, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE4_2_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/SSE4##SSE4.2 SSE4_2] x86 extension version
|
||||
number.
|
||||
|
||||
Version number is: *4.2.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_SSE4_2_VERSION BOOST_VERSION_NUMBER(4, 2, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_AVX_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions AVX] x86
|
||||
extension version number.
|
||||
|
||||
Version number is: *5.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_AVX_VERSION BOOST_VERSION_NUMBER(5, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_FMA3_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/FMA_instruction_set FMA3] x86 extension
|
||||
version number.
|
||||
|
||||
Version number is: *5.2.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_FMA3_VERSION BOOST_VERSION_NUMBER(5, 2, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_AVX2_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/Advanced_Vector_Extensions#Advanced_Vector_Extensions_2 AVX2]
|
||||
x86 extension version number.
|
||||
|
||||
Version number is: *5.3.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_AVX2_VERSION BOOST_VERSION_NUMBER(5, 3, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_MIC_VERSION`]
|
||||
|
||||
The [@https://en.wikipedia.org/wiki/Xeon_Phi MIC] (Xeon Phi) x86 extension
|
||||
version number.
|
||||
|
||||
Version number is: *9.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_MIC_VERSION BOOST_VERSION_NUMBER(9, 0, 0)
|
||||
|
||||
#endif
|
87
include/boost/predef/hardware/simd/x86_amd.h
Normal file
87
include/boost/predef/hardware/simd/x86_amd.h
Normal file
@ -0,0 +1,87 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
#include <boost/predef/hardware/simd/x86_amd/versions.h>
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_AMD`]
|
||||
|
||||
The SIMD extension for x86 (AMD) (*if detected*).
|
||||
Version number depends on the most recent detected extension.
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__SSE4A__`] [__predef_detection__]]
|
||||
|
||||
[[`__FMA4__`] [__predef_detection__]]
|
||||
|
||||
[[`__XOP__`] [__predef_detection__]]
|
||||
|
||||
[[`BOOST_HW_SIMD_X86`] [__predef_detection__]]
|
||||
]
|
||||
|
||||
[table
|
||||
[[__predef_symbol__] [__predef_version__]]
|
||||
|
||||
[[`__SSE4A__`] [BOOST_HW_SIMD_x86_SSE4A_VERSION]]
|
||||
|
||||
[[`__FMA4__`] [BOOST_HW_SIMD_x86_FMA4_VERSION]]
|
||||
|
||||
[[`__XOP__`] [BOOST_HW_SIMD_x86_XOP_VERSION]]
|
||||
|
||||
[[`BOOST_HW_SIMD_X86`] [BOOST_HW_SIMD_x86]]
|
||||
]
|
||||
|
||||
[note This predef includes every other x86 SIMD extensions and also has other
|
||||
more specific extensions (FMA4, XOP, SSE4a). You should use this predef
|
||||
instead of `BOOST_HW_SIMD_X86` to test if those specific extensions have
|
||||
been detected.]
|
||||
|
||||
*/
|
||||
|
||||
#define BOOST_HW_SIMD_X86_AMD BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
|
||||
// AMD CPUs also use x86 architecture. We first try to detect if any AMD
|
||||
// specific extension are detected, if yes, then try to detect more recent x86
|
||||
// common extensions.
|
||||
|
||||
#undef BOOST_HW_SIMD_X86_AMD
|
||||
#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__XOP__)
|
||||
# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_XOP_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__FMA4__)
|
||||
# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_FMA4_VERSION
|
||||
#endif
|
||||
#if !defined(BOOST_HW_SIMD_X86_AMD) && defined(__SSE4A__)
|
||||
# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION
|
||||
#endif
|
||||
|
||||
#if !defined(BOOST_HW_SIMD_X86_AMD)
|
||||
# define BOOST_HW_SIMD_X86_AMD BOOST_VERSION_NUMBER_NOT_AVAILABLE
|
||||
#else
|
||||
// At this point, we know that we have an AMD CPU, we do need to check for
|
||||
// other x86 extensions to determine the final version number.
|
||||
# include <boost/predef/hardware/simd/x86.h>
|
||||
# if BOOST_HW_SIMD_X86 > BOOST_HW_SIMD_X86_AMD
|
||||
# undef BOOST_HW_SIMD_X86_AMD
|
||||
# define BOOST_HW_SIMD_X86_AMD BOOST_HW_SIMD_X86
|
||||
# endif
|
||||
# define BOOST_HW_SIMD_X86_AMD_AVAILABLE
|
||||
#endif
|
||||
|
||||
#define BOOST_HW_SIMD_X86_AMD_NAME "x86 (AMD) SIMD"
|
||||
|
||||
#endif
|
||||
|
||||
#include <boost/predef/detail/test.h>
|
||||
BOOST_PREDEF_DECLARE_TEST(BOOST_HW_SIMD_X86_AMD, BOOST_HW_SIMD_X86_AMD_NAME)
|
51
include/boost/predef/hardware/simd/x86_amd/versions.h
Normal file
51
include/boost/predef/hardware/simd/x86_amd/versions.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
Copyright Charly Chevalier 2015
|
||||
Copyright Joel Falcou 2015
|
||||
Distributed under the Boost Software License, Version 1.0.
|
||||
(See accompanying file LICENSE_1_0.txt or copy at
|
||||
http://www.boost.org/LICENSE_1_0.txt)
|
||||
*/
|
||||
|
||||
#ifndef BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H
|
||||
#define BOOST_PREDEF_HARDWARE_SIMD_X86_AMD_VERSIONS_H
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
/*`
|
||||
Those defines represent x86 (AMD specific) SIMD extensions versions.
|
||||
|
||||
[note You *MUST* compare them with the predef `BOOST_HW_SIMD_X86_AMD`.]
|
||||
*/
|
||||
|
||||
|
||||
// ---------------------------------
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_SSE4A_VERSION`]
|
||||
|
||||
[@https://en.wikipedia.org/wiki/SSE4##SSE4A SSE4A] x86 extension (AMD specific).
|
||||
|
||||
Version number is: *4.0.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_AMD_SSE4A_VERSION BOOST_VERSION_NUMBER(4, 0, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_XOP_VERSION`]
|
||||
|
||||
[@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific).
|
||||
|
||||
Version number is: *5.1.0*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_AMD_FMA4_VERSION BOOST_VERSION_NUMBER(5, 1, 0)
|
||||
|
||||
/*`
|
||||
[heading `BOOST_HW_SIMD_X86_XOP_VERSION`]
|
||||
|
||||
[@https://en.wikipedia.org/wiki/XOP_instruction_set XOP] x86 extension (AMD specific).
|
||||
|
||||
Version number is: *5.1.1*.
|
||||
*/
|
||||
#define BOOST_HW_SIMD_X86_AMD_XOP_VERSION BOOST_VERSION_NUMBER(5, 1, 1)
|
||||
|
||||
|
||||
#endif
|
@ -33,7 +33,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#endif
|
||||
|
||||
#if BOOST_PLAT_WINDOWS_DESKTOP
|
||||
# define BOOST_PLAT_WINDOWS_DESKTOP_AVALIABLE
|
||||
# define BOOST_PLAT_WINDOWS_DESKTOP_AVAILABLE
|
||||
# include <boost/predef/detail/platform_detected.h>
|
||||
#endif
|
||||
|
||||
|
@ -31,7 +31,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#endif
|
||||
|
||||
#if BOOST_PLAT_WINDOWS_PHONE
|
||||
# define BOOST_PLAT_WINDOWS_PHONE_AVALIABLE
|
||||
# define BOOST_PLAT_WINDOWS_PHONE_AVAILABLE
|
||||
# include <boost/predef/detail/platform_detected.h>
|
||||
#endif
|
||||
|
||||
|
@ -33,7 +33,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#endif
|
||||
|
||||
#if BOOST_PLAT_WINDOWS_RUNTIME
|
||||
# define BOOST_PLAT_WINDOWS_RUNTIME_AVALIABLE
|
||||
# define BOOST_PLAT_WINDOWS_RUNTIME_AVAILABLE
|
||||
# include <boost/predef/detail/platform_detected.h>
|
||||
#endif
|
||||
|
||||
|
@ -31,7 +31,7 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
#endif
|
||||
|
||||
#if BOOST_PLAT_WINDOWS_STORE
|
||||
# define BOOST_PLAT_WINDOWS_STORE_AVALIABLE
|
||||
# define BOOST_PLAT_WINDOWS_STORE_AVAILABLE
|
||||
# include <boost/predef/detail/platform_detected.h>
|
||||
#endif
|
||||
|
||||
|
@ -10,6 +10,6 @@ http://www.boost.org/LICENSE_1_0.txt)
|
||||
|
||||
#include <boost/predef/version_number.h>
|
||||
|
||||
#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,3,0)
|
||||
#define BOOST_PREDEF_VERSION BOOST_VERSION_NUMBER(1,4,0)
|
||||
|
||||
#endif
|
||||
|
@ -58,7 +58,7 @@ test-suite predef :
|
||||
[ compile macos_endian.c : [ predef-require "BOOST_OS_MACOS" : cpp ] ]
|
||||
[ compile macos_vs_bsd.c : [ predef-require "BOOST_OS_MACOS" : cpp ] ]
|
||||
[ run check_value.cpp : : : <test-info>always_show_run_output
|
||||
[ predef-check "BOOST_COMP_CLANG > 0" "BOOST_OS_LINUX == 0" : : <cxxflags>-DCHECK_VALUE=true ] ]
|
||||
[ predef-check "BOOST_COMP_CLANG > 0.0.0" "BOOST_OS_LINUX == 0" : : <cxxflags>-DCHECK_VALUE=true ] ]
|
||||
;
|
||||
|
||||
# Minimal testing done for predef for CI. Since
|
||||
|
@ -30,7 +30,7 @@ void test_BOOST_VERSION_NUMBER()
|
||||
{
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(0,0,1) == 1L);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(99,99,99999) == 999999999L);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(299,99,99999) != 2999999999L);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(299UL,99UL,99999UL) != 2999999999UL);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) != 1009999999L);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,99,99999) == 9999999L);
|
||||
PREDEF_CHECK(BOOST_VERSION_NUMBER(100,100,100000) == 0L);
|
||||
|
Reference in New Issue
Block a user