diff options
| author | gingerBill <bill@gingerbill.org> | 2021-11-04 13:56:38 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-11-04 13:56:38 +0000 |
| commit | 14351c5bf2adb58597a3ba003c4bb2abb1073da3 (patch) | |
| tree | a56a75ce243a149cc56a716cd7d3143e38b79868 /core/runtime | |
| parent | 7ef3c87dbb1455c5058878f69db93cdcdb16bcfd (diff) | |
Simplify logic for procs.odin
Diffstat (limited to 'core/runtime')
| -rw-r--r-- | core/runtime/procs.odin | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/core/runtime/procs.odin b/core/runtime/procs.odin index d3233c31b..c69e5b00a 100644 --- a/core/runtime/procs.odin +++ b/core/runtime/procs.odin @@ -1,7 +1,7 @@ package runtime -when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" { - @(link_name="memset", require) +when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" || ODIN_NO_CRT { + @(link_name="memset", linkage="strong", require) memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr { if ptr != nil && len != 0 { b := byte(val) @@ -13,7 +13,7 @@ when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" { return ptr } - @(link_name="memmove", require) + @(link_name="memmove", linkage="strong", require) memmove :: proc "c" (dst, src: rawptr, len: int) -> rawptr { if dst != src { d, s := ([^]byte)(dst), ([^]byte)(src) @@ -25,32 +25,7 @@ when ODIN_ARCH == "wasm32" || ODIN_ARCH == "wasm64" { return dst } -} else when ODIN_NO_CRT { - @(link_name="memset", linkage=RUNTIME_LINKAGE, require) - memset :: proc "c" (ptr: rawptr, val: i32, len: int) -> rawptr { - if ptr != nil && len != 0 { - b := byte(val) - p := ([^]byte)(ptr) - for i in 0..<len { - p[i] = b - } - } - return ptr - } - - @(link_name="memmove", linkage=RUNTIME_LINKAGE, require) - memmove :: proc "c" (dst, src: rawptr, len: int) -> rawptr { - if dst != src { - d, s := ([^]byte)(dst), ([^]byte)(src) - d_end, s_end := d[len:], s[len:] - for i := len-1; i >= 0; i -= 1 { - d[i] = s[i] - } - } - return dst - - } - @(link_name="memcpy", linkage=RUNTIME_LINKAGE, require) + @(link_name="memcpy", linkage="strong", require) memcpy :: proc "c" (dst, src: rawptr, len: int) -> rawptr { if dst != src { d, s := ([^]byte)(dst), ([^]byte)(src) |