summaryrefslogtreecommitdiff
path: root/zephyr/fpu.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'zephyr/fpu.cmake')
-rw-r--r--zephyr/fpu.cmake40
1 files changed, 0 insertions, 40 deletions
diff --git a/zephyr/fpu.cmake b/zephyr/fpu.cmake
deleted file mode 100644
index 5f1c698b15..0000000000
--- a/zephyr/fpu.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright 2021 The Chromium OS Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-#[[
-Disclaimer: the following example is pieced together from
-https://lemire.me/blog/2020/06/26/gcc-not-nearest/ along with other information
-found in GCC documentation.
-
-The following flags are needed to to ensure consistent FPU rounding in unit
-tests. For example using GNU GCC 7.5 rounds down. Note that at the time of
-writing, Clang 13.0.0 passes all the FPU unit tests without these flags.
-
-Some of the sensor logic which requires FPU support is susceptible to rounding
-errors. In GCC 7.5, as an example:
-
- double x = 50178230318.0;
- double y = 100000000000.0;
- double ratio = x/y;
-
-In this example, we would expect ratio to be 0.50178230318. Instead, using a
-64-bit float, it falls between:
-* The floating-point number 0.501782303179999944 == 4519653187245114 * 2 ** -53
-* The floating-point number 0.501782303180000055 == 4519653187245115 * 2 ** -53
-
-The real mantissa using the same logic should be:
-0.50178230318 = 4519653187245114.50011795456 * 2 ** -53
-
-Since the mantissa's decimal is just over 0.5, it should stand to reason that
-the correct solution is 0.501782303180000055. To force GCC to round correctly
-we must set the following modes:
-1. 'sse' - Generate SSE instructions.
-2. 'fpmath=sse' - Use scalar floating-point instructions present in the SSE
- instruction set.
-3. 'arch=pentium4' - Choose the Pentium4 because it's a stable choice that
- supports SSE and is known to work (there may be other good choices).
-]]
-if(DEFINED CONFIG_SOC_POSIX)
- zephyr_cc_option(-msse -mfpmath=sse -march=pentium4)
-endif()