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 1
1
open Core_kernel [@@warning " -D" ]
2
+ open Bap_main
2
3
open Bap.Std
3
4
open X86_asm.Reg
4
5
@@ -7,10 +8,18 @@ module AMD64 = X86_backend.AMD64
7
8
8
9
type endbr = [ `ENDBR32 | `ENDBR64 ] [@@ deriving bin_io , sexp , compare , enumerate ]
9
10
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"
11
19
12
20
let () =
13
- Bap_main.Extension. declare @@ fun _ctxt ->
21
+ Extension. declare @@ fun ctxt ->
22
+ let lift = lift @@ Extension.Configuration. get ctxt enabled in
14
23
let name op = sexp_of_endbr op |> Sexp. to_string in
15
24
List. iter all_of_endbr ~f: (fun op -> IA32. register (name op) lift);
16
25
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