blob: ce80d3815beb1d7259621f2914f2ace951508907 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
2024-06-14 Georg-Johann Lay <avr@gjlay.de>
PR target/115419
* libf7.c (f7_get_double): Round tie breaks to even LSB.
2024-06-01 Georg-Johann Lay <avr@gjlay.de>
PR target/115317
* libf7-asm.sx (__isinf): Map -Inf to -1.
2024-05-08 Georg-Johann Lay <avr@gjlay.de>
PR target/114981
* libf7-common.mk (F7_ASM_PARTS): Add D_powi
* libf7-asm.sx (F7MOD_D_powi_, __powidf2): New module and function.
* libf7.c (f7_powi): Fix last (wrong) statement.
Tweak trivial multiplications with 1.0.
2023-11-14 Georg-Johann Lay <avr@gjlay.de>
* libf7-const.def [F7MOD_sinh_]: Add MiniMax polynomial.
* libf7.c (f7_sinh): Use it instead of (exp(x) - exp(-x)) / 2
when |x| < 0.5 to avoid loss of precision due to cancellation.
2023-11-12 Georg-Johann Lay <avr@gjlay.de>
* libf7-asm.sx (sqrt_approx): Rewrite.
* libf7.c (f7_sqrt): Use it instead of sqrt_worker.
(sqrt_worker): Remove.
2023-11-08 Georg-Johann Lay <avr@gjlay.de>
* libf7-asm.sx (mul_mant) [AVR_HAVE_MUL]: Tweak code.
2023-10-18 Georg-Johann Lay <avr@gjlay.de>
* libf7-asm.sx (mul_mant): Implement for devices without MUL.
* asm-defs.h (wmov) [!HAVE_MUL]: Fix regno computation.
* t-libf7 (F7_ASM_FLAGS): Add -g0.
2023-10-17 Georg-Johann Lay <avr@gjlay.de>
* f7-renames.h: Re-renerate.
2023-10-17 Georg-Johann Lay <avr@gjlay.de>
* libf7.h (F7_SIZEOF): New macro.
* libf7-asm.sx: Use F7_SIZEOF instead of magic number "10".
(F7MOD_D_fma_, __fma): New module and function.
(fma) [-mdouble=64]: Define as alias for __fma.
(fmal) [-mlong-double=64]: Define as alias for __fma.
* libf7-common.mk (F7_ASM_PARTS): Add D_fma.
2023-10-12 Georg-Johann Lay <avr@gjlay.de>
* libf7.c (F7MOD_atan2_, f7_atan2): New module and function.
* libf7.h: Adjust comments.
* libf7-common.mk (CALL_PROLOGUES): Add atan2.
2023-10-05 Georg-Johann Lay <avr@gjlay.de>
* libf7.h (F7_PURE): Remove all occurrences.
* libf7.c: Same.
2023-10-05 Georg-Johann Lay <avr@gjlay.de>
* libf7.h (F7_FLAGNO_plusx, F7_FLAG_plusx): New macros.
* libf7.c (f7_horner): Handle F7_FLAG_plusx in highest coefficient.
* libf7-const.def [F7MOD_atan_]: Denominator: Set F7_FLAG_plusx
and omit highest term.
[F7MOD_asinacos_]: Use rational function with normalized denominator.
2022-09-19 Georg-Johann Lay <avr@gjlay.de>
PR target/99184
* libf7-asm.sx (to_integer, to_unsigned): Don't round 16-bit
and 32-bit integers.
2020-06-23 David Edelsohn <dje.gcc@gmail.com>
* t-libf7: Use -include.
2020-01-08 Georg-Johann Lay <avr@gjlay.de>
Implement 64-bit double functions.
PR target/92055
* t-libf7: New file.
* t-libf7-math: New file.
* t-libf7-math-symbols: New file.
* libf7-common.mk: New file.
* libf7-asm-object.mk: New file.
* libf7-c-object.mk: New file.
* asm-defs.h: New file.
* libf7.h: New file.
* libf7.c: New file.
* libf7-asm.sx: New file.
* libf7-array.def: New file.
* libf7-const.def: New file.
* libf7-constdef.h: New file.
* f7renames.sh: New script.
* f7wraps.sh: New script.
* f7-renames.h: New generated file.
* f7-wraps.h: New generated file.
|