about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/tools/miri/src/intrinsics/atomic.rs (renamed from src/tools/miri/src/shims/intrinsics/atomic.rs)0
-rw-r--r--src/tools/miri/src/intrinsics/mod.rs (renamed from src/tools/miri/src/shims/intrinsics/mod.rs)0
-rw-r--r--src/tools/miri/src/intrinsics/simd.rs (renamed from src/tools/miri/src/shims/intrinsics/simd.rs)0
-rw-r--r--src/tools/miri/src/lib.rs3
-rw-r--r--src/tools/miri/src/shims/foreign_items.rs60
-rw-r--r--src/tools/miri/src/shims/mod.rs1
-rw-r--r--src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.rs (renamed from src/tools/miri/tests/fail/shims/intrinsic_target_feature.rs)0
-rw-r--r--src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.stderr (renamed from src/tools/miri/tests/fail/shims/intrinsic_target_feature.stderr)0
-rw-r--r--src/tools/miri/tests/pass/integers.rs (renamed from src/tools/miri/tests/pass/ints.rs)0
-rw-r--r--src/tools/miri/tests/pass/intrinsics/integer.rs (renamed from src/tools/miri/tests/pass/intrinsics-integer.rs)0
-rw-r--r--src/tools/miri/tests/pass/intrinsics/intrinsics.rs (renamed from src/tools/miri/tests/pass/intrinsics.rs)0
-rw-r--r--src/tools/miri/tests/pass/intrinsics/portable-simd-ptrs.rs (renamed from src/tools/miri/tests/pass/portable-simd-ptrs.rs)0
-rw-r--r--src/tools/miri/tests/pass/intrinsics/portable-simd.rs (renamed from src/tools/miri/tests/pass/portable-simd.rs)0
-rw-r--r--src/tools/miri/tests/pass/intrinsics/volatile.rs (renamed from src/tools/miri/tests/pass/volatile.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/available-parallelism-miri-num-cpus.rs (renamed from src/tools/miri/tests/pass/available-parallelism-miri-num-cpus.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/available-parallelism.rs (renamed from src/tools/miri/tests/pass/available-parallelism.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-aes-vaes.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-aes-vaes.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-avx.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx2.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-avx2.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx512.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-avx512.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-pause-without-sse2.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-pause-without-sse2.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-sse.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse2.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-sse2.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse3-ssse3.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-sse3-ssse3.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse41.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86-sse41.rs)0
-rw-r--r--src/tools/miri/tests/pass/shims/x86/intrinsics-x86.rs (renamed from src/tools/miri/tests/pass/intrinsics-x86.rs)0
26 files changed, 32 insertions, 32 deletions
diff --git a/src/tools/miri/src/shims/intrinsics/atomic.rs b/src/tools/miri/src/intrinsics/atomic.rs
index 865886a7fc1..865886a7fc1 100644
--- a/src/tools/miri/src/shims/intrinsics/atomic.rs
+++ b/src/tools/miri/src/intrinsics/atomic.rs
diff --git a/src/tools/miri/src/shims/intrinsics/mod.rs b/src/tools/miri/src/intrinsics/mod.rs
index a7ba4fd7f9e..a7ba4fd7f9e 100644
--- a/src/tools/miri/src/shims/intrinsics/mod.rs
+++ b/src/tools/miri/src/intrinsics/mod.rs
diff --git a/src/tools/miri/src/shims/intrinsics/simd.rs b/src/tools/miri/src/intrinsics/simd.rs
index e6d6f72404e..e6d6f72404e 100644
--- a/src/tools/miri/src/shims/intrinsics/simd.rs
+++ b/src/tools/miri/src/intrinsics/simd.rs
diff --git a/src/tools/miri/src/lib.rs b/src/tools/miri/src/lib.rs
index f47c84842b1..f01c2da25d9 100644
--- a/src/tools/miri/src/lib.rs
+++ b/src/tools/miri/src/lib.rs
@@ -79,6 +79,7 @@ mod concurrency;
 mod diagnostics;
 mod eval;
 mod helpers;
+mod intrinsics;
 mod machine;
 mod mono_hash_map;
 mod operator;
@@ -95,9 +96,9 @@ pub use rustc_const_eval::interpret::*;
 #[doc(no_inline)]
 pub use rustc_const_eval::interpret::{self, AllocMap, PlaceTy, Provenance as _};
 
+pub use crate::intrinsics::EvalContextExt as _;
 pub use crate::shims::env::{EnvVars, EvalContextExt as _};
 pub use crate::shims::foreign_items::{DynSym, EvalContextExt as _};
-pub use crate::shims::intrinsics::EvalContextExt as _;
 pub use crate::shims::os_str::EvalContextExt as _;
 pub use crate::shims::panic::{CatchUnwindData, EvalContextExt as _};
 pub use crate::shims::time::EvalContextExt as _;
diff --git a/src/tools/miri/src/shims/foreign_items.rs b/src/tools/miri/src/shims/foreign_items.rs
index 4b96ff18b74..6a12180b836 100644
--- a/src/tools/miri/src/shims/foreign_items.rs
+++ b/src/tools/miri/src/shims/foreign_items.rs
@@ -893,36 +893,6 @@ trait EvalContextExtPriv<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
                     throw_unsup_format!("unsupported `llvm.prefetch` type argument: {}", ty);
                 }
             }
-            // FIXME: Move these to an `arm` submodule.
-            "llvm.aarch64.isb" if this.tcx.sess.target.arch == "aarch64" => {
-                let [arg] = this.check_shim(abi, Abi::Unadjusted, link_name, args)?;
-                let arg = this.read_scalar(arg)?.to_i32()?;
-                match arg {
-                    // SY ("full system scope")
-                    15 => {
-                        this.yield_active_thread();
-                    }
-                    _ => {
-                        throw_unsup_format!("unsupported llvm.aarch64.isb argument {}", arg);
-                    }
-                }
-            }
-            "llvm.arm.hint" if this.tcx.sess.target.arch == "arm" => {
-                let [arg] = this.check_shim(abi, Abi::Unadjusted, link_name, args)?;
-                let arg = this.read_scalar(arg)?.to_i32()?;
-                // Note that different arguments might have different target feature requirements.
-                match arg {
-                    // YIELD
-                    1 => {
-                        this.expect_target_feature_for_intrinsic(link_name, "v6")?;
-                        this.yield_active_thread();
-                    }
-                    _ => {
-                        throw_unsup_format!("unsupported llvm.arm.hint argument {}", arg);
-                    }
-                }
-            }
-
             // Used to implement the x86 `_mm{,256,512}_popcnt_epi{8,16,32,64}` and wasm
             // `{i,u}8x16_popcnt` functions.
             name if name.starts_with("llvm.ctpop.v") => {
@@ -946,6 +916,7 @@ trait EvalContextExtPriv<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
                 }
             }
 
+            // Target-specific shims
             name if name.starts_with("llvm.x86.")
                 && (this.tcx.sess.target.arch == "x86"
                     || this.tcx.sess.target.arch == "x86_64") =>
@@ -954,6 +925,35 @@ trait EvalContextExtPriv<'mir, 'tcx: 'mir>: crate::MiriInterpCxExt<'mir, 'tcx> {
                     this, link_name, abi, args, dest,
                 );
             }
+            // FIXME: Move these to an `arm` submodule.
+            "llvm.aarch64.isb" if this.tcx.sess.target.arch == "aarch64" => {
+                let [arg] = this.check_shim(abi, Abi::Unadjusted, link_name, args)?;
+                let arg = this.read_scalar(arg)?.to_i32()?;
+                match arg {
+                    // SY ("full system scope")
+                    15 => {
+                        this.yield_active_thread();
+                    }
+                    _ => {
+                        throw_unsup_format!("unsupported llvm.aarch64.isb argument {}", arg);
+                    }
+                }
+            }
+            "llvm.arm.hint" if this.tcx.sess.target.arch == "arm" => {
+                let [arg] = this.check_shim(abi, Abi::Unadjusted, link_name, args)?;
+                let arg = this.read_scalar(arg)?.to_i32()?;
+                // Note that different arguments might have different target feature requirements.
+                match arg {
+                    // YIELD
+                    1 => {
+                        this.expect_target_feature_for_intrinsic(link_name, "v6")?;
+                        this.yield_active_thread();
+                    }
+                    _ => {
+                        throw_unsup_format!("unsupported llvm.arm.hint argument {}", arg);
+                    }
+                }
+            }
 
             // Platform-specific shims
             _ =>
diff --git a/src/tools/miri/src/shims/mod.rs b/src/tools/miri/src/shims/mod.rs
index 85c9a202f7d..ab5a8c5877e 100644
--- a/src/tools/miri/src/shims/mod.rs
+++ b/src/tools/miri/src/shims/mod.rs
@@ -5,7 +5,6 @@ mod backtrace;
 #[cfg(target_os = "linux")]
 pub mod ffi_support;
 pub mod foreign_items;
-pub mod intrinsics;
 pub mod unix;
 pub mod windows;
 mod x86;
diff --git a/src/tools/miri/tests/fail/shims/intrinsic_target_feature.rs b/src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.rs
index 9263ad381d1..9263ad381d1 100644
--- a/src/tools/miri/tests/fail/shims/intrinsic_target_feature.rs
+++ b/src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.rs
diff --git a/src/tools/miri/tests/fail/shims/intrinsic_target_feature.stderr b/src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.stderr
index 8e83d20854f..8e83d20854f 100644
--- a/src/tools/miri/tests/fail/shims/intrinsic_target_feature.stderr
+++ b/src/tools/miri/tests/fail/intrinsics/intrinsic_target_feature.stderr
diff --git a/src/tools/miri/tests/pass/ints.rs b/src/tools/miri/tests/pass/integers.rs
index c04c6921f3c..c04c6921f3c 100644
--- a/src/tools/miri/tests/pass/ints.rs
+++ b/src/tools/miri/tests/pass/integers.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-integer.rs b/src/tools/miri/tests/pass/intrinsics/integer.rs
index 13e7bd8e1b9..13e7bd8e1b9 100644
--- a/src/tools/miri/tests/pass/intrinsics-integer.rs
+++ b/src/tools/miri/tests/pass/intrinsics/integer.rs
diff --git a/src/tools/miri/tests/pass/intrinsics.rs b/src/tools/miri/tests/pass/intrinsics/intrinsics.rs
index 0dda5aadce2..0dda5aadce2 100644
--- a/src/tools/miri/tests/pass/intrinsics.rs
+++ b/src/tools/miri/tests/pass/intrinsics/intrinsics.rs
diff --git a/src/tools/miri/tests/pass/portable-simd-ptrs.rs b/src/tools/miri/tests/pass/intrinsics/portable-simd-ptrs.rs
index 096ec78da1a..096ec78da1a 100644
--- a/src/tools/miri/tests/pass/portable-simd-ptrs.rs
+++ b/src/tools/miri/tests/pass/intrinsics/portable-simd-ptrs.rs
diff --git a/src/tools/miri/tests/pass/portable-simd.rs b/src/tools/miri/tests/pass/intrinsics/portable-simd.rs
index 1fc713d48dc..1fc713d48dc 100644
--- a/src/tools/miri/tests/pass/portable-simd.rs
+++ b/src/tools/miri/tests/pass/intrinsics/portable-simd.rs
diff --git a/src/tools/miri/tests/pass/volatile.rs b/src/tools/miri/tests/pass/intrinsics/volatile.rs
index c9799801455..c9799801455 100644
--- a/src/tools/miri/tests/pass/volatile.rs
+++ b/src/tools/miri/tests/pass/intrinsics/volatile.rs
diff --git a/src/tools/miri/tests/pass/available-parallelism-miri-num-cpus.rs b/src/tools/miri/tests/pass/shims/available-parallelism-miri-num-cpus.rs
index 137fa510249..137fa510249 100644
--- a/src/tools/miri/tests/pass/available-parallelism-miri-num-cpus.rs
+++ b/src/tools/miri/tests/pass/shims/available-parallelism-miri-num-cpus.rs
diff --git a/src/tools/miri/tests/pass/available-parallelism.rs b/src/tools/miri/tests/pass/shims/available-parallelism.rs
index 77fb78424ba..77fb78424ba 100644
--- a/src/tools/miri/tests/pass/available-parallelism.rs
+++ b/src/tools/miri/tests/pass/shims/available-parallelism.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-aes-vaes.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-aes-vaes.rs
index 7363c753617..7363c753617 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-aes-vaes.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-aes-vaes.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-avx.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx.rs
index 7d43cc596ae..7d43cc596ae 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-avx.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-avx2.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx2.rs
index 80d125bb856..80d125bb856 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-avx2.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx2.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-avx512.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx512.rs
index 66bfcb20f1c..66bfcb20f1c 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-avx512.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-avx512.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-pause-without-sse2.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-pause-without-sse2.rs
index c8b92fd5458..c8b92fd5458 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-pause-without-sse2.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-pause-without-sse2.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-sse.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse.rs
index a62a5ee3781..a62a5ee3781 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-sse.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-sse2.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse2.rs
index e0088b9eb24..e0088b9eb24 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-sse2.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse2.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-sse3-ssse3.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse3-ssse3.rs
index 7566be4431b..7566be4431b 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-sse3-ssse3.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse3-ssse3.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86-sse41.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse41.rs
index 06607f3fd59..06607f3fd59 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86-sse41.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86-sse41.rs
diff --git a/src/tools/miri/tests/pass/intrinsics-x86.rs b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86.rs
index 90bcdba4353..90bcdba4353 100644
--- a/src/tools/miri/tests/pass/intrinsics-x86.rs
+++ b/src/tools/miri/tests/pass/shims/x86/intrinsics-x86.rs