aboutsummaryrefslogtreecommitdiff
path: root/gcc/d/dmd/root
diff options
context:
space:
mode:
authorIain Buclaw <ibuclaw@gdcproject.org>2021-02-04 22:34:22 +0100
committerIain Buclaw <ibuclaw@gdcproject.org>2021-02-04 23:04:48 +0100
commitc1d56e6a737418b7b48a53b355f588ea14f1b9a9 (patch)
tree5c225e580416206cdd237db00cbf63d030067662 /gcc/d/dmd/root
parentce5720447c69286599b96bae53ae854b1bbe41fa (diff)
downloadgcc-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.h18
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);