From 8b066b24563a7b2644c1128d267d90f16c7b5a73 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 14 May 2020 17:56:24 +0100 Subject: [PATCH] Fix `runtime.memset` issue --- core/mem/mem.odin | 23 +---------------------- core/runtime/internal.odin | 9 --------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/core/mem/mem.odin b/core/mem/mem.odin index fe2be4cf6..fef8e7619 100644 --- a/core/mem/mem.odin +++ b/core/mem/mem.odin @@ -3,28 +3,7 @@ package mem import "core:runtime" set :: proc(data: rawptr, value: byte, len: int) -> rawptr { - foreign _ { - when ODIN_USE_LLVM_API { - when size_of(rawptr) == 8 { - @(link_name="llvm.memset.p0i8.i64") - memset :: proc(dst: rawptr, val: byte, len: int, is_volatile: bool = false) ---; - } else { - @(link_name="llvm.memset.p0i8.i32") - memset :: proc(dst: rawptr, val: byte, len: int, is_volatile: bool = false) ---; - } - } else { - when size_of(rawptr) == 8 { - @(link_name="llvm.memset.p0i8.i64") - memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---; - } else { - @(link_name="llvm.memset.p0i8.i32") - memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---; - } - } - } - - memset(data, value, len); - return data; + return runtime.memset(data, i32(value), len); } zero :: inline proc(data: rawptr, len: int) -> rawptr { return set(data, 0, len); diff --git a/core/runtime/internal.odin b/core/runtime/internal.odin index a89c0580d..9d148a6fa 100644 --- a/core/runtime/internal.odin +++ b/core/runtime/internal.odin @@ -70,15 +70,6 @@ align_forward_uintptr :: inline proc(ptr, align: uintptr) -> uintptr { mem_zero :: proc "contextless" (data: rawptr, len: int) -> rawptr { if data == nil do return nil; if len < 0 do return data; - when !ODIN_USE_LLVM_API do foreign _ { - when size_of(rawptr) == 8 { - @(link_name="llvm.memset.p0i8.i64") - memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---; - } else { - @(link_name="llvm.memset.p0i8.i32") - memset :: proc(dst: rawptr, val: byte, len: int, align: i32 = 1, is_volatile: bool = false) ---; - } - } memset(data, 0, len); return data; }