aboutsummaryrefslogtreecommitdiff
path: root/core/simd
diff options
context:
space:
mode:
Diffstat (limited to 'core/simd')
-rw-r--r--core/simd/x86/rdtsc.odin19
1 files changed, 19 insertions, 0 deletions
diff --git a/core/simd/x86/rdtsc.odin b/core/simd/x86/rdtsc.odin
new file mode 100644
index 000000000..0527fc084
--- /dev/null
+++ b/core/simd/x86/rdtsc.odin
@@ -0,0 +1,19 @@
+//+build i386, amd64
+package simd_x86
+
+_rdtsc :: #force_inline proc "c" () -> u64 {
+ return rdtsc()
+}
+
+__rdtscp :: #force_inline proc "c" (aux: ^u32) -> u64 {
+ return rdtscp(aux)
+}
+
+@(default_calling_convention="c")
+@(private)
+foreign _ {
+ @(link_name="llvm.x86.rdtsc")
+ rdtsc :: proc() -> u64 ---
+ @(link_name="llvm.x86.rdtscp")
+ rdtscp :: proc(aux: rawptr) -> u64 ---
+} \ No newline at end of file