[jit] Align float/double Nan/Inf to uint conversion behavior with CoreCLR/LLVM/Roslyn...
authorFilip Navara <navara@emclient.com>
Thu, 1 Aug 2019 17:37:41 +0000 (19:37 +0200)
committerSteve Pfister <steveisok@users.noreply.github.com>
Thu, 1 Aug 2019 17:37:41 +0000 (13:37 -0400)
commit791534aa6d616edc8e83d48c8bce12e24d2a907f
tree63a6e9e93facc769612ef0091c470d54ffffecbf
parentfbba842459a3a6129a47495c3f4e79276559043a
[jit] Align float/double Nan/Inf to uint conversion behavior with CoreCLR/LLVM/Roslyn (mono/mono#15930)

* [jit] Align float/double Nan/Inf to uint conversion behavior with CoreCLR/LLVM

* Fix float/double -> ulong conversion for edge cases

* Fix mono_fconv_u8 / mono_rconv_u8 to also return 0 for PositiveInfinity

* Enable support for platform specific implementations of OP_RCONV_U8/OP_FCONV_U8/OP_FCONV_U4

* Restore OP emulation on WASM target

* Update tests

* Disable failing tests for now

* Adjust tests

* Adjust tests

* Fix float -> uint conversion on WASM

* Make interpreter consistent with compiled code

* Blind attempt to fix WASM test leg

* Implement remaining conversions in LLVM

* Fix ARM32

* Workaround for Windows x64 FullAOT+LLVM

* Bump AOT version

Commit migrated from https://github.com/mono/mono/commit/3c92cd8c94c027b7c9215a12044345106851262b
19 files changed:
src/mono/mono/metadata/icall-signatures.h
src/mono/mono/metadata/jit-icall-reg.h
src/mono/mono/mini/aot-runtime.h
src/mono/mono/mini/basic-float.cs
src/mono/mono/mini/interp/interp.c
src/mono/mono/mini/jit-icalls.c
src/mono/mono/mini/jit-icalls.h
src/mono/mono/mini/mini-amd64.c
src/mono/mono/mini/mini-amd64.h
src/mono/mono/mini/mini-arm.h
src/mono/mono/mini/mini-llvm.c
src/mono/mono/mini/mini-mips.h
src/mono/mono/mini/mini-ppc.h
src/mono/mono/mini/mini-riscv.h
src/mono/mono/mini/mini-runtime.c
src/mono/mono/mini/mini-sparc.h
src/mono/mono/mini/mini-wasm.h
src/mono/mono/mini/mini-x86.h
src/mono/netcore/CoreFX.issues.rsp