Skip to content

Commit 10c0c1b

Browse files
committed
Allow checking of PC in postcondition
Can be used to check the following properties: - code finalsied correctly: END_P# - code finalised in the fault ahndler: FH_END_P# - code finalised in an infinite loop: loop label
1 parent bd2e75d commit 10c0c1b

37 files changed

+334
-9
lines changed

herd/AArch64Arch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ module Make (C:Arch_herd.Config)(V:Value.AArch64) =
512512
let endian = endian
513513

514514
type arch_reg = reg
515+
let pc_reg = Some PC
515516
let pp_reg = pp_reg
516517
let reg_compare = reg_compare
517518

herd/ARMArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ module Make (C:Arch_herd.Config) (V:Value.S) =
135135
let endian = endian
136136

137137
type arch_reg = reg
138+
let pc_reg = None
138139
let pp_reg = pp_reg
139140
let reg_compare = reg_compare
140141

herd/ASLExtra.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ module Make (B : ArchBaseHerd) (C : Arch_herd.Config) (V : Value.S) = struct
5151

5252
type arch_reg = reg
5353

54+
let pc_reg = None
5455
let endian = endian
5556
let pp_reg = pp_reg
5657
let reg_compare = reg_compare

herd/BPFArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ struct
9494

9595
type arch_reg = reg
9696

97+
let pc_reg = None
9798
let pp_reg = pp_reg
9899
let reg_compare = reg_compare
99100
let fromto_of_instr _ = None

herd/BellArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ module Make
4646
let endian = endian
4747

4848
type arch_reg = reg
49+
let pc_reg = None
4950
let pp_reg = pp_reg
5051
let reg_compare = reg_compare
5152

herd/CArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ module Make (C:Arch_herd.Config) (V:Value.S) = struct
4040
let endian = endian
4141

4242
type arch_reg = reg
43+
let pc_reg = None
4344
let pp_reg = pp_reg
4445
let reg_compare = reg_compare
4546

herd/JavaArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ module Make (C:Arch_herd.Config) (V:Value.S) = struct
3838
module V = V
3939
let endian = endian
4040
type arch_reg = reg
41+
let pc_reg = None
4142
let pp_reg = pp_reg
4243
let reg_compare = reg_compare
4344
let fromto_of_instr _ = None

herd/MIPSArch_herd.ml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,10 @@ module Make
6868

6969
let endian = endian
7070

71-
type arch_reg = reg
72-
let pp_reg = pp_reg
73-
let reg_compare = reg_compare
71+
type arch_reg = reg
72+
let pc_reg = None
73+
let pp_reg = pp_reg
74+
let reg_compare = reg_compare
7475

7576
let fromto_of_instr _ = None
7677

herd/PPCArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ module Make (C:Arch_herd.Config) (V:Value.S)
9292
let endian = endian
9393

9494
type arch_reg = reg
95+
let pc_reg = None
9596
let pp_reg = pp_reg
9697
let reg_compare = reg_compare
9798

herd/RISCVArch_herd.ml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ module Make (C:Arch_herd.Config) (V:Value.S) =
131131
let endian = endian
132132

133133
type arch_reg = reg
134+
let pc_reg = None
134135
let pp_reg = pp_reg
135136
let reg_compare = reg_compare
136137

0 commit comments

Comments
 (0)