public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc(refs/users/ibuclaw/heads/gdc)] d: Move Port::valcpy to D
@ 2021-10-14 20:47 Iain Buclaw
  0 siblings, 0 replies; only message in thread
From: Iain Buclaw @ 2021-10-14 20:47 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:e5a67458da39de7db8971cc5ec017fa6199a08c1

commit e5a67458da39de7db8971cc5ec017fa6199a08c1
Author: Iain Buclaw <ibuclaw@gdcproject.org>
Date:   Wed Oct 13 21:46:14 2021 +0200

    d: Move Port::valcpy to D

Diff:
---
 gcc/d/d-port.cc       | 28 ----------------------------
 gcc/d/dmd/root/port.d | 12 +++++++++++-
 2 files changed, 11 insertions(+), 29 deletions(-)

diff --git a/gcc/d/d-port.cc b/gcc/d/d-port.cc
index 58b3fe138b2..d8020a12780 100644
--- a/gcc/d/d-port.cc
+++ b/gcc/d/d-port.cc
@@ -139,31 +139,3 @@ Port::readlongBE (const void *buffer)
 	  | ((unsigned) p[2] << 8)
 	  | (unsigned) p[3]);
 }
-
-/* Write an SZ-byte sized VALUE to BUFFER, ignoring endian-ness.  */
-
-void
-Port::valcpy (void *buffer, uint64_t value, size_t sz)
-{
-  switch (sz)
-    {
-    case 1:
-      *(uint8_t *) buffer = (uint8_t) value;
-      break;
-
-    case 2:
-      *(uint16_t *) buffer = (uint16_t) value;
-      break;
-
-    case 4:
-      *(uint32_t *) buffer = (uint32_t) value;
-      break;
-
-    case 8:
-      *(uint64_t *) buffer = (uint64_t) value;
-      break;
-
-    default:
-      gcc_unreachable ();
-    }
-}
diff --git a/gcc/d/dmd/root/port.d b/gcc/d/dmd/root/port.d
index 7fc0d881b99..f6ab376ba4b 100644
--- a/gcc/d/dmd/root/port.d
+++ b/gcc/d/dmd/root/port.d
@@ -43,5 +43,15 @@ extern (C++) struct Port
     // Big endian
     static uint readwordBE(scope const void* buffer) pure;
 
-    static void valcpy(scope void *dst, ulong val, size_t size) pure;
+    static void valcpy(scope void *dst, ulong val, size_t size) pure
+    {
+        switch (size)
+        {
+            case 1: *cast(ubyte *)dst = cast(ubyte)val; break;
+            case 2: *cast(ushort *)dst = cast(ushort)val; break;
+            case 4: *cast(uint *)dst = cast(uint)val; break;
+            case 8: *cast(ulong *)dst = cast(ulong)val; break;
+            default: assert(0);
+        }
+    }
 }


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-10-14 20:47 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-14 20:47 [gcc(refs/users/ibuclaw/heads/gdc)] d: Move Port::valcpy to D Iain Buclaw

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).