about summary refs log tree commit diff
path: root/library/stdarch/crates/stdarch-test/src
diff options
context:
space:
mode:
Diffstat (limited to 'library/stdarch/crates/stdarch-test/src')
-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