diff options
Diffstat (limited to 'yjit/src/options.rs')
-rw-r--r-- | yjit/src/options.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/yjit/src/options.rs b/yjit/src/options.rs index f73dca67de..cad7bf332a 100644 --- a/yjit/src/options.rs +++ b/yjit/src/options.rs @@ -151,7 +151,16 @@ pub fn parse_option(str_ptr: *const std::os::raw::c_char) -> Option<()> { ("greedy-versioning", "") => unsafe { OPTIONS.greedy_versioning = true }, ("no-type-prop", "") => unsafe { OPTIONS.no_type_prop = true }, - ("stats", "") => unsafe { OPTIONS.gen_stats = true }, + ("stats", "") => { + // Insn::IncrCounter uses ldaddal, which works only on ARMv8.1+. + #[cfg(target_arch = "aarch64")] + if !std::arch::is_aarch64_feature_detected!("lse") { + eprintln!("Your processor does not support --yjit-stats. Aborting."); + std::process::exit(1); + } + + unsafe { OPTIONS.gen_stats = true } + }, ("trace-exits", "") => unsafe { OPTIONS.gen_trace_exits = true; OPTIONS.gen_stats = true }, ("dump-insns", "") => unsafe { OPTIONS.dump_insns = true }, ("verify-ctx", "") => unsafe { OPTIONS.verify_ctx = true }, |