aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-struct-field-expr.h
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2025-06-30 21:26:11 -0700
committerIan Lance Taylor <iant@golang.org>2025-07-08 15:49:16 -0700
commit479872227c0ac284f3935cafe90c70348059a35c (patch)
tree38d8cfb8e648e3bbe55fa938e6be99f95f8b8e91 /gcc/rust/backend/rust-compile-struct-field-expr.h
parent284e13279e8c8067f7a0046a7ca8ff7a16398feb (diff)
downloadgcc-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/rust/backend/rust-compile-struct-field-expr.h')
0 files changed, 0 insertions, 0 deletions