about summary refs log tree commit diff
path: root/src/etc
diff options
context:
space:
mode:
authorSimonas Kazlauskas <git@kazlauskas.me>2016-12-22 23:53:30 +0200
committerSimonas Kazlauskas <git@kazlauskas.me>2016-12-22 23:53:30 +0200
commitb2cf6df8756c1b504f0b27b0fa6eb807d27cc53d (patch)
tree4bdeede4123778e12880fb51a5ea98f9bd47516d /src/etc
parent17d873c2db77d029b8fe26d57b676e5797e99441 (diff)
downloadrust-b2cf6df8756c1b504f0b27b0fa6eb807d27cc53d.tar.gz
rust-b2cf6df8756c1b504f0b27b0fa6eb807d27cc53d.zip
Add intrinsics & target features for rd{rand,seed}
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/platform-intrinsics/x86/rdrand.json27
-rw-r--r--src/etc/platform-intrinsics/x86/rdseed.json27
2 files changed, 54 insertions, 0 deletions
diff --git a/src/etc/platform-intrinsics/x86/rdrand.json b/src/etc/platform-intrinsics/x86/rdrand.json
new file mode 100644
index 00000000000..fa2feb4224b
--- /dev/null
+++ b/src/etc/platform-intrinsics/x86/rdrand.json
@@ -0,0 +1,27 @@
+{
+    "intrinsic_prefix": "_rdrand",
+    "llvm_prefix": "llvm.x86.rdrand.",
+    "intrinsics": [
+        {
+            "intrinsic": "16_step",
+            "width": ["0"],
+            "llvm": "16",
+            "ret": "(U16,S32)",
+            "args": []
+        },
+        {
+            "intrinsic": "32_step",
+            "width": ["0"],
+            "llvm": "32",
+            "ret": "(U32,S32)",
+            "args": []
+        },
+        {
+            "intrinsic": "64_step",
+            "width": ["0"],
+            "llvm": "64",
+            "ret": "(U64,S32)",
+            "args": []
+        }
+    ]
+}
diff --git a/src/etc/platform-intrinsics/x86/rdseed.json b/src/etc/platform-intrinsics/x86/rdseed.json
new file mode 100644
index 00000000000..7be64b583e0
--- /dev/null
+++ b/src/etc/platform-intrinsics/x86/rdseed.json
@@ -0,0 +1,27 @@
+{
+    "intrinsic_prefix": "_rdseed",
+    "llvm_prefix": "llvm.x86.rdseed.",
+    "intrinsics": [
+        {
+            "intrinsic": "16_step",
+            "width": ["0"],
+            "llvm": "16",
+            "ret": "(U16,S32)",
+            "args": []
+        },
+        {
+            "intrinsic": "32_step",
+            "width": ["0"],
+            "llvm": "32",
+            "ret": "(U32,S32)",
+            "args": []
+        },
+        {
+            "intrinsic": "64_step",
+            "width": ["0"],
+            "llvm": "64",
+            "ret": "(U64,S32)",
+            "args": []
+        }
+    ]
+}