diff options
author | Ian Lance Taylor <iant@golang.org> | 2025-06-30 21:26:11 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2025-07-08 15:49:16 -0700 |
commit | 479872227c0ac284f3935cafe90c70348059a35c (patch) | |
tree | 38d8cfb8e648e3bbe55fa938e6be99f95f8b8e91 /gcc | |
parent | 284e13279e8c8067f7a0046a7ca8ff7a16398feb (diff) | |
download | gcc-479872227c0ac284f3935cafe90c70348059a35c.zip gcc-479872227c0ac284f3935cafe90c70348059a35c.tar.gz gcc-479872227c0ac284f3935cafe90c70348059a35c.tar.bz2 |
runtime: avoid libc memmove and memclr
The libc memmove and memclr don't reliably operate on full memory words.
We already avoided them on PPC64, but the same problem can occur even
on x86, where some processors use "rep movsb" and "rep stosb".
Always use C code that stores full memory words.
While we're here, clean up the C code. We don't need special handling
if the memmove/memclr pointers are not pointer-aligned.
Unfortunately, this will likely be slower. Perhaps some day we can
have our own assembly code that operates a word at a time,
or we can use different operations when we know there are no pointers.
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/685178
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 64eb27e..99bf24c 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -8aab4c94f039132b270ab03968f74d24d315e141 +c4d7bfb9895efc196b04f18f5da77fd99b39212a The first line of this file holds the git revision number of the last merge done from the gofrontend repository. |