Browse Source

Add `raw_simd_data`

gingerBill 3 years ago
parent
commit
63d6c08d90
2 changed files with 6 additions and 1 deletions
  1. 1 0
      core/mem/raw.odin
  2. 5 1
      core/runtime/core_builtin.odin

+ 1 - 0
core/mem/raw.odin

@@ -21,6 +21,7 @@ make_any :: proc "contextless" (data: rawptr, id: typeid) -> any {
 }
 }
 
 
 raw_array_data         :: runtime.raw_array_data
 raw_array_data         :: runtime.raw_array_data
+raw_simd_data          :: runtime.raw_simd_data
 raw_string_data        :: runtime.raw_string_data
 raw_string_data        :: runtime.raw_string_data
 raw_slice_data         :: runtime.raw_slice_data
 raw_slice_data         :: runtime.raw_slice_data
 raw_dynamic_array_data :: runtime.raw_dynamic_array_data
 raw_dynamic_array_data :: runtime.raw_dynamic_array_data

+ 5 - 1
core/runtime/core_builtin.odin

@@ -604,6 +604,10 @@ raw_array_data :: proc "contextless" (a: $P/^($T/[$N]$E)) -> [^]E {
 	return ([^]E)(a)
 	return ([^]E)(a)
 }
 }
 @builtin
 @builtin
+raw_simd_data :: proc "contextless" (a: $P/^($T/#simd[$N]$E)) -> [^]E {
+	return ([^]E)(a)
+}
+@builtin
 raw_slice_data :: proc "contextless" (s: $S/[]$E) -> [^]E {
 raw_slice_data :: proc "contextless" (s: $S/[]$E) -> [^]E {
 	ptr := (transmute(Raw_Slice)s).data
 	ptr := (transmute(Raw_Slice)s).data
 	return ([^]E)(ptr)
 	return ([^]E)(ptr)
@@ -619,7 +623,7 @@ raw_string_data :: proc "contextless" (s: $S/string) -> [^]u8 {
 }
 }
 
 
 @builtin
 @builtin
-raw_data :: proc{raw_array_data, raw_slice_data, raw_dynamic_array_data, raw_string_data}
+raw_data :: proc{raw_array_data, raw_slice_data, raw_dynamic_array_data, raw_string_data, raw_simd_data}