diff options
Diffstat (limited to 'library/stdarch/crates/stdarch-test/src')
| -rw-r--r-- | library/stdarch/crates/stdarch-test/src/disassembly.rs | 5 | ||||
| -rw-r--r-- | library/stdarch/crates/stdarch-test/src/lib.rs | 3 |
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 |
