diff options
| author | sayantn <sayantn05@gmail.com> | 2025-02-06 00:02:18 +0530 | 
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2025-02-13 10:54:53 +0000 | 
| commit | 46fbfe9b09623973cdbb54ae0122dabda74c820d (patch) | |
| tree | 320250d6e2f104594f72d9b2b7a0604ebb83a213 /library/stdarch/crates/stdarch-test | |
| parent | 2a6953d38a99e0e626b5663f8b39f644fed5b546 (diff) | |
| download | rust-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.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 | 
