1 |
|
|
//===-- lib/adddf3.c - Double-precision subtraction ---------------*- C -*-===// |
2 |
|
|
// |
3 |
|
|
// The LLVM Compiler Infrastructure |
4 |
|
|
// |
5 |
|
|
// This file is dual licensed under the MIT and the University of Illinois Open |
6 |
|
|
// Source Licenses. See LICENSE.TXT for details. |
7 |
|
|
// |
8 |
|
|
//===----------------------------------------------------------------------===// |
9 |
|
|
// |
10 |
|
|
// This file implements double-precision soft-float subtraction with the |
11 |
|
|
// IEEE-754 default rounding (to nearest, ties to even). |
12 |
|
|
// |
13 |
|
|
//===----------------------------------------------------------------------===// |
14 |
|
|
|
15 |
|
|
#define DOUBLE_PRECISION |
16 |
|
|
#include "fp_lib.h" |
17 |
|
|
|
18 |
|
|
ARM_EABI_FNALIAS(dsub, subdf3) |
19 |
|
|
|
20 |
|
|
// Subtraction; flip the sign bit of b and add. |
21 |
|
|
COMPILER_RT_ABI fp_t |
22 |
|
|
__subdf3(fp_t a, fp_t b) { |
23 |
|
|
return __adddf3(a, fromRep(toRep(b) ^ signBit)); |
24 |
|
|
} |
25 |
|
|
|