add more impls and memcpy

This commit is contained in:
Brendan Hansknecht 2023-06-01 22:50:12 -07:00
parent 0e2c3e4723
commit ebc6bd3f45
No known key found for this signature in database
GPG key ID: 0EA784685083E75B
5 changed files with 222 additions and 19 deletions

View file

@ -21,26 +21,13 @@ pub var memcpy_target: Memcpy = switch (arch) {
pub fn memcpy(noalias dest: [*]u8, noalias src: [*]const u8, len: usize) callconv(.C) [*]u8 {
switch (arch) {
// x86_64 has a special optimized memcpy that can use avx2.
.x86_64 => {
return memcpy_target(dest, src, len);
},
.i386 => {
@memcpy(dest, src, len);
return dest;
else => {
return musl.memcpy(dest, src, len);
},
.aarch64 => {
@memcpy(dest, src, len);
return dest;
},
.arm => {
@memcpy(dest, src, len);
return dest;
},
.wasm32 => {
@memcpy(dest, src, len);
return dest;
},
else => @compileError("Unsupported architecture for memcpy"),
}
}