Browse Source

Simplify logic for procs.odin

gingerBill 3 years ago
parent
commit
14351c5bf2
1 changed files with 4 additions and 29 deletions
  1. 4 29
      core/runtime/procs.odin

+ 4 - 29
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)