Add mem.simple_compare_values

This commit is contained in:
gingerBill
2020-06-10 16:37:22 +01:00
parent 61db6c1234
commit 474d79dcf1

View File

@@ -1,6 +1,7 @@
package mem
import "core:runtime"
import "core:intrinsics"
set :: proc(data: rawptr, value: byte, len: int) -> rawptr {
return runtime.memset(data, i32(value), len);
@@ -70,6 +71,11 @@ compare_byte_ptrs :: proc(a, b: ^byte, n: int) -> int #no_bounds_check {
return 0;
}
simple_compare_values :: proc(a, b: $T) -> int where intrinsics.type_is_simple_compare(T) {
a, b := a, b;
return compare_byte_ptrs((^byte)(&a), (^byte)(&b), size_of(T));
}
compare_ptrs :: inline proc(a, b: rawptr, n: int) -> int {
return compare_byte_ptrs((^byte)(a), (^byte)(b), n);
}