[builtins] Rounding mode support for addxf3/subxf3
authorYi Kong <yikong@google.com>
Tue, 26 Mar 2019 22:01:22 +0000 (22:01 +0000)
committerYi Kong <yikong@google.com>
Tue, 26 Mar 2019 22:01:22 +0000 (22:01 +0000)
commit2cabea054e40ae2837da959d0ca89ae25cf1b1f1
tree28e7e891bd6a5b5f3dbb3745db45ea6498c1b36a
parent05495c5d4571b1756369e00a1ca7003d63e204da
[builtins] Rounding mode support for addxf3/subxf3

Implement rounding mode support for addxf3/subxf3.

On architectures that implemented the support, this will access the
corresponding floating point environment register to apply the
correct rounding. For other architectures, it will keep the current
behaviour and use IEEE-754 default rounding mode (to nearest, ties
to even).

ARM32/AArch64 support implemented in this change. i386 and AMD64
will be added in a follow up change.

Differential Revision: https://reviews.llvm.org/D57143

llvm-svn: 357035
14 files changed:
compiler-rt/lib/builtins/CMakeLists.txt
compiler-rt/lib/builtins/aarch64/fp_mode.c [new file with mode: 0644]
compiler-rt/lib/builtins/adddf3.c
compiler-rt/lib/builtins/addsf3.c
compiler-rt/lib/builtins/addtf3.c
compiler-rt/lib/builtins/arm/fp_mode.c [new file with mode: 0644]
compiler-rt/lib/builtins/fp_add_impl.inc
compiler-rt/lib/builtins/fp_mode.c [new file with mode: 0644]
compiler-rt/lib/builtins/fp_mode.h [new file with mode: 0644]
compiler-rt/lib/builtins/subdf3.c
compiler-rt/lib/builtins/subsf3.c
compiler-rt/lib/builtins/subtf3.c
compiler-rt/test/builtins/Unit/addtf3_test.c
compiler-rt/test/builtins/Unit/subtf3_test.c