From 00a32c84606aa55dee499dfc971cdb487eafb658 Mon Sep 17 00:00:00 2001 From: Nicholas Coughlin Date: Mon, 23 Dec 2024 09:24:39 +1000 Subject: [PATCH] Extend offline to handle new reachable constructs --- libASL/symbolic.ml | 4 ++++ libASL/symbolic_lifter.ml | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libASL/symbolic.ml b/libASL/symbolic.ml index a904fcfb..a999a19c 100644 --- a/libASL/symbolic.ml +++ b/libASL/symbolic.ml @@ -990,6 +990,10 @@ let prims_impure () = FIdent("AtomicEnd",0); FIdent("AArch64.MemTag.read",0); FIdent("AArch64.MemTag.set",0); + FIdent("SetTagCheckedInstruction",0); + FIdent("SpeculativeStoreBypassBarrierToPA",0); + FIdent("SpeculationBarrier",0); + FIdent("SpeculativeStoreBypassBarrierToVA",0); ] (** Test if an expression is only over constants, variables and pure operations. Does not diff --git a/libASL/symbolic_lifter.ml b/libASL/symbolic_lifter.ml index 86dd03b4..af56c66c 100644 --- a/libASL/symbolic_lifter.ml +++ b/libASL/symbolic_lifter.ml @@ -135,9 +135,12 @@ module RemoveUnsupported = struct | Stmt_Dep_ImpDef (_, loc) | Stmt_See (_, loc) | Stmt_Throw (_, loc) + | Stmt_Repeat(_, _, loc) + | Stmt_Try(_, _, _, _, loc) | Stmt_DecodeExecute (_, _, loc) -> ChangeTo (assert_false loc) - | _ -> failwith @@ "Unknown stmt: " ^ (pp_stmt e)) + ) + end let run unsupported env body =