about summary refs log tree commit diff
path: root/library/stdarch/crates/stdarch-test
diff options
context:
space:
mode:
authorsayantn <sayantn05@gmail.com>2025-02-06 00:02:18 +0530
committerAmanieu d'Antras <amanieu@gmail.com>2025-02-13 10:54:53 +0000
commit46fbfe9b09623973cdbb54ae0122dabda74c820d (patch)
tree320250d6e2f104594f72d9b2b7a0604ebb83a213 /library/stdarch/crates/stdarch-test
parent2a6953d38a99e0e626b5663f8b39f644fed5b546 (diff)
downloadrust-46fbfe9b09623973cdbb54ae0122dabda74c820d.tar.gz
rust-46fbfe9b09623973cdbb54ae0122dabda74c820d.zip
Add the keylocker intrinsics
Diffstat (limited to 'library/stdarch/crates/stdarch-test')
-rw-r--r--library/stdarch/crates/stdarch-test/src/disassembly.rs5
-rw-r--r--library/stdarch/crates/stdarch-test/src/lib.rs3
2 files changed, 8 insertions, 0 deletions
diff --git a/library/stdarch/crates/stdarch-test/src/disassembly.rs b/library/stdarch/crates/stdarch-test/src/disassembly.rs
index 6a3ca06cb6f..802b2c2ba9d 100644
--- a/library/stdarch/crates/stdarch-test/src/disassembly.rs
+++ b/library/stdarch/crates/stdarch-test/src/disassembly.rs
@@ -185,7 +185,12 @@ fn parse(output: &str) -> HashSet<Function> {
                     _ => {}
                 };
             }
+
             instructions.push(parts.join(" "));
+            if matches!(&**instructions.last().unwrap(), "ret" | "retq") {
+                cached_header = None;
+                break;
+            }
         }
         let function = Function {
             name: symbol,
diff --git a/library/stdarch/crates/stdarch-test/src/lib.rs b/library/stdarch/crates/stdarch-test/src/lib.rs
index 41af91e8a57..ff224376ecf 100644
--- a/library/stdarch/crates/stdarch-test/src/lib.rs
+++ b/library/stdarch/crates/stdarch-test/src/lib.rs
@@ -119,6 +119,9 @@ pub fn assert(shim_addr: usize, fnname: &str, expected: &str) {
                 // it from the slightly more restrictive 22 instructions below.
                 "cpuid" => 30,
 
+                // These require 8 loads and stores, so it _just_ overflows the limit
+                "aesencwide128kl" | "aesencwide256kl" | "aesdecwide128kl" | "aesdecwide256kl" => 24,
+
                 // Apparently, on Windows, LLVM generates a bunch of
                 // saves/restores of xmm registers around these instructions,
                 // which exceeds the limit of 20 below. As it seems dictated by