Use Unsafe.BitCast for Interlocked.{Compare}Exchange of float/double (#87166)
authorHuo Yaoyuan <huoyaoyuan@hotmail.com>
Wed, 7 Jun 2023 22:28:01 +0000 (06:28 +0800)
committerGitHub <noreply@github.com>
Wed, 7 Jun 2023 22:28:01 +0000 (15:28 -0700)
commit1ade285259961bf9c4e659b013d8715223c63aef
tree397639681d53432943ee8840a4bbee3bdaeb8950
parent1a1b1f8d8ec592e669de3f2681cc0cbc853f7d96
Use Unsafe.BitCast for Interlocked.{Compare}Exchange of float/double (#87166)

* Update {Compare}Exchange in coreclr to use Unsafe.As

* Remove corresponding FCalls

* Share with mono

* Remove Mono icalls

* Add AggressiveInlining

* Remove unused union type in mono
src/coreclr/System.Private.CoreLib/src/System/Threading/Interlocked.CoreCLR.cs
src/coreclr/nativeaot/System.Private.CoreLib/src/System/Threading/Interlocked.cs
src/coreclr/vm/comutilnative.cpp
src/coreclr/vm/comutilnative.h
src/coreclr/vm/ecalllist.h
src/libraries/System.Private.CoreLib/src/System/Threading/Interlocked.cs
src/mono/System.Private.CoreLib/src/System/Threading/Interlocked.Mono.cs
src/mono/mono/metadata/icall-def.h
src/mono/mono/metadata/threads-types.h
src/mono/mono/metadata/threads.c