Adding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)
authorTanner Gooding <tagoo@outlook.com>
Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)
committerGitHub <noreply@github.com>
Mon, 5 Nov 2018 23:37:36 +0000 (15:37 -0800)
commit7a5da6d46e61a5a8c1c64b36608394da341fcd7b
tree54b55baad0974599c10d9ab3c707efbf7b73c83a
parent491f2aab684238197fec1685c0d2b30faf506b60
Adding some new functions to System.Math and System.MathF (dotnet/coreclr#20788)

* Adding BitIncrement, BitDecrement, CopySign, MaxMagnitude, and MinMagnitude to Math and MathF

* Adding FusedMultiplyAdd, IlogB, Log2, and ScaleB to Math and MathF

* Adding some basic PAL tests for fma, ilogb, log2, and scalbn

* Fixing a couple typos and adding clarifying comments

* Fixing the MSVC _VVV FCALL declarations

Commit migrated from https://github.com/dotnet/coreclr/commit/28417584d8e98ae7eac22e92b952778f8ea94047
47 files changed:
src/coreclr/src/System.Private.CoreLib/src/System/Math.CoreCLR.cs
src/coreclr/src/System.Private.CoreLib/src/System/MathF.CoreCLR.cs
src/coreclr/src/classlibnative/float/floatdouble.cpp
src/coreclr/src/classlibnative/float/floatsingle.cpp
src/coreclr/src/classlibnative/inc/floatdouble.h
src/coreclr/src/classlibnative/inc/floatsingle.h
src/coreclr/src/jit/importer.cpp
src/coreclr/src/jit/lsraxarch.cpp
src/coreclr/src/pal/inc/pal.h
src/coreclr/src/pal/src/cruntime/math.cpp
src/coreclr/src/pal/src/include/pal/palinternal.h
src/coreclr/src/pal/tests/palsuite/c_runtime/fma/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fma/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fma/test1/test1.cpp [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fma/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/test1/test1.c [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/fmaf/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/test1/test1.cpp [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogb/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/test1/test1.c [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/ilogbf/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2/test1/test1.cpp [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/test1/test1.c [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/log2f/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/test1/test1.cpp [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbn/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/test1/CMakeLists.txt [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/test1/test1.c [new file with mode: 0644]
src/coreclr/src/pal/tests/palsuite/c_runtime/scalbnf/test1/testinfo.dat [new file with mode: 0644]
src/coreclr/src/vm/ecalllist.h
src/coreclr/src/vm/fcall.h
src/libraries/System.Private.CoreLib/src/System/Math.cs
src/libraries/System.Private.CoreLib/src/System/MathF.cs