File tree Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Expand file tree Collapse file tree 1 file changed +11
-2
lines changed Original file line number Diff line number Diff line change 11open Core_kernel [@@warning " -D" ]
2+ open Bap_main
23open Bap.Std
34open X86_asm.Reg
45
@@ -7,10 +8,18 @@ module AMD64 = X86_backend.AMD64
78
89type endbr = [ `ENDBR32 | `ENDBR64 ] [@@ deriving bin_io , sexp , compare , enumerate ]
910
10- let lift _mem _insn = Ok [ Bil. (encode intrinsic " endbr" )]
11+ let lift enabled _mem _insn =
12+ if enabled then Ok [Bil. (encode intrinsic " endbr" ) ]
13+ else Ok []
14+
15+ let enabled = Extension.Configuration. flag " cet-enabled"
16+ ~aliases: [" endbr-enabled" ]
17+ ~doc: " When enabled, translate all endbr instruction into \
18+ intrinsic calls. Otherwise treat them as nops"
1119
1220let () =
13- Bap_main.Extension. declare @@ fun _ctxt ->
21+ Extension. declare @@ fun ctxt ->
22+ let lift = lift @@ Extension.Configuration. get ctxt enabled in
1423 let name op = sexp_of_endbr op |> Sexp. to_string in
1524 List. iter all_of_endbr ~f: (fun op -> IA32. register (name op) lift);
1625 List. iter all_of_endbr ~f: (fun op -> AMD64. register (name op) lift);
You can’t perform that action at this time.
0 commit comments