diff options
author | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-02-04 22:34:22 +0100 |
---|---|---|
committer | Iain Buclaw <ibuclaw@gdcproject.org> | 2021-02-04 23:04:48 +0100 |
commit | c1d56e6a737418b7b48a53b355f588ea14f1b9a9 (patch) | |
tree | 5c225e580416206cdd237db00cbf63d030067662 /gcc/d/dmd/root | |
parent | ce5720447c69286599b96bae53ae854b1bbe41fa (diff) | |
download | gcc-c1d56e6a737418b7b48a53b355f588ea14f1b9a9.zip gcc-c1d56e6a737418b7b48a53b355f588ea14f1b9a9.tar.gz gcc-c1d56e6a737418b7b48a53b355f588ea14f1b9a9.tar.bz2 |
d: Merge upstream dmd 46133f761, druntime 0fd4364c
D front-end changes:
- Backported built-in function handling from upstream.
- Added new intrinsic `byteswap(ushort)`.
Druntime changes:
- Update intrinsic modules core.bitop, core.checkedint, core.simd,
core.vararg, and core.volatile.
- Backport platform-specific fixes for runtime modules core.cpuid,
core.internal.traits, and rt.lifetime.
- Backport openbsd fixes for core.stdc.stdio.
- Backport solaris fixes for core.sys.posix.locale, and
core.thread.osthread (PR98910).
gcc/d/ChangeLog:
* dmd/MERGE: Merge upstream dmd 46133f761.
* d-builtins.cc (d_build_builtins_module): Set builtins as BUILTINgcc.
(maybe_set_builtin_1): Likewise.
* d-frontend.cc (eval_builtin): Adjust condition for early return.
* intrinsics.cc (maybe_set_intrinsic): Set intrinsics as BUILTINgcc.
(maybe_expand_intrinsic): Add case for INTRINSIC_BSWAP16.
* intrinsics.def (INTRINSIC_BT): Update signature.
(INTRINSIC_BT64): Likewise.
(INTRINSIC_BSWAP16): New intrinsic.
(INTRINSIC_VLOAD8): Update module.
(INTRINSIC_VLOAD16): Likewise.
(INTRINSIC_VLOAD32): Likewise.
(INTRINSIC_VLOAD64): Likewise.
(INTRINSIC_VSTORE8): Likewise.
(INTRINSIC_VSTORE16): Likewise.
(INTRINSIC_VSTORE32): Likewise.
(INTRINSIC_VSTORE64): Likewise.
(INTRINSIC_ADDS): Update signature.
(INTRINSIC_ADDSL): Likewise.
(INTRINSIC_ADDU): Likewise.
(INTRINSIC_ADDUL): Likewise.
(INTRINSIC_SUBS): Likewise.
(INTRINSIC_SUBSL): Likewise.
(INTRINSIC_SUBU): Likewise.
(INTRINSIC_SUBUL): Likewise.
(INTRINSIC_MULS): Likewise.
(INTRINSIC_MULSL): Likewise.
(INTRINSIC_MULU): Likewise.
(INTRINSIC_MULUI): Likewise.
(INTRINSIC_MULUL): Likewise.
(INTRINSIC_NEGS): Likewise.
(INTRINSIC_NEGSL): Likewise.
libphobos/ChangeLog:
PR d/98910
* libdruntime/MERGE: Merge upstream druntime 0fd4364c.
* libdruntime/Makefile.am (DRUNTIME_DSOURCES): Add core/volatile.d.
* libdruntime/Makefile.in: Regenerate.
* testsuite/libphobos.allocations/tls_gc_integration.d: Update test.
gcc/testsuite/ChangeLog:
* gdc.dg/intrinsics.d: Update test.
Diffstat (limited to 'gcc/d/dmd/root')
-rw-r--r-- | gcc/d/dmd/root/ctfloat.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/d/dmd/root/ctfloat.h b/gcc/d/dmd/root/ctfloat.h index c72b8fc..4cdf362 100644 --- a/gcc/d/dmd/root/ctfloat.h +++ b/gcc/d/dmd/root/ctfloat.h @@ -29,6 +29,24 @@ struct CTFloat static real_t fabs(real_t x); static real_t ldexp(real_t n, int exp); + static real_t round(real_t x); + static real_t floor(real_t x); + static real_t ceil(real_t x); + static real_t trunc(real_t x); + static real_t log(real_t x); + static real_t log2(real_t x); + static real_t log10(real_t x); + static real_t pow(real_t x, real_t y); + static real_t exp(real_t x); + static real_t expm1(real_t x); + static real_t exp2(real_t x); + + static real_t fmin(real_t x, real_t y); + static real_t fmax(real_t x, real_t y); + static real_t copysign(real_t x, real_t s); + + static real_t fma(real_t x, real_t y, real_t z); + static bool isIdentical(real_t a, real_t b); static bool isNaN(real_t r); static bool isSNaN(real_t r); |