aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-05-29 13:48:20 +0100
committergingerBill <bill@gingerbill.org>2022-05-29 13:48:20 +0100
commitbabfba5e8fd7be50e394d426be2db07c477e538d (patch)
tree4115110573519f3375cd2eda23f43250b1dc3661 /core
parent846f8377b2416a9f77618de00e50c7314a3b7322 (diff)
Add rdtsc.odin
Diffstat (limited to 'core')
-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