You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: herd/AArch64Sem.ml
+28-20Lines changed: 28 additions & 20 deletions
Original file line number
Diff line number
Diff line change
@@ -1600,8 +1600,25 @@ module Make
1600
1600
| None -> false
1601
1601
| Some rB -> AArch64.reg_compare rA rB=0
1602
1602
1603
+
(*
1604
+
Arguments:
1605
+
- rA: Base address register.
1606
+
- dir: Access direction (Dir.R for reads, Dir.W for writes).
1607
+
- updatedb: If true, update the Dirty Bit in table descriptors.
1608
+
- checked: If true, perform memory tagging checks.
1609
+
- mop: Function defining the memory operation.
1610
+
- perms: Required permissions for Morello.
1611
+
- ma: Virtual address to be accessed, represented as the value within the monad.
1612
+
- mv: Value to be stored (for write operations), represented as the value in the monad.
1613
+
- an: Annotation for the event structure.
1614
+
- ii: Instruction metadata.
1615
+
- branch: Determines control flow after the translated memory access:
1616
+
typically next instruction for data accesses, or no change
1617
+
when translating for instruction fetches.
1618
+
- domain: Whether the translation is for data or instruction access.
1619
+
*)
1603
1620
let do_lift_memop rA (* Base address register *)
1604
-
dir updatedb checked mop perms ma mv an ii (branch : 'a M.t -> branch M.t) domain =
1621
+
dir updatedb checked mop perms ma mv an ii branch domain =
1605
1622
if morello then
1606
1623
lift_morello mop perms ma mv dir an ii branch
1607
1624
else
@@ -1631,19 +1648,6 @@ module Make
1631
1648
else
1632
1649
mop Access.VIR ma |> branch
1633
1650
1634
-
(*
1635
-
Arguments:
1636
-
- rA: Base address register.
1637
-
- dir: Access direction (Dir.R for reads, Dir.W for writes).
1638
-
- updatedb: If true, update the Dirty Bit in table descriptors.
1639
-
- checked: If true, perform memory tagging checks.
1640
-
- mop: Function defining the memory operation.
1641
-
- perms: Required permissions for Morello.
1642
-
- ma: Virtual address to be accessed, represented as the value within the monad.
1643
-
- mv: Value to be stored (for write operations), represented as the value in the monad.
1644
-
- an: Annotation for the event structure.
1645
-
- ii: Instruction metadata.
1646
-
*)
1647
1651
let lift_memop rA (* Base address register *)
1648
1652
dir updatedb checked mop perms ma mv an ii =
1649
1653
let domain = DISide.Data in
@@ -4731,7 +4735,10 @@ Arguments:
4731
4735
let cand_a = base + offset in
4732
4736
let cand_i = match IntMap.find cand_a test.Test_herd.code_segment with
4733
4737
| (_,(_,i)::_) -> i
4734
-
| _ -> Warn.user_error "Instruction not found by the address %d" cand_a (* this case means that we have found a relevant page, but it does not have an instruction -- it may make sense to use NOP here rather than throw an error *)
4738
+
(* this case means that we have found a relevant page, but it
4739
+
does not have an instruction -- currently throws an error, but
4740
+
a convention to assume NOP could be envisioned *)
4741
+
| _ -> Warn.user_error "Instruction not found by the address %d" cand_a
Copy file name to clipboardExpand all lines: herd/loader.ml
+3-1Lines changed: 3 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -114,7 +114,9 @@ struct
114
114
let offset = new_addr - old_addr in
115
115
let immbranch_v =Option.get (A.mk_imm_branch offset) in
116
116
let immbranch_sz =A.size_of_ins immbranch_v in
117
-
assert (offset mod4=0); (* FIXME: this check will fail when page alignment is implemented on architectures where instructions are not all 32-bit-sized *)
117
+
(* NOTE: the following check will fail once page alignment is implemented on
118
+
architectures where instructions are not all 32-bit-sized *)
Copy file name to clipboardExpand all lines: herd/mem.ml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1329,7 +1329,7 @@ let match_reg_events es =
1329
1329
with
1330
1330
|Some (V.Var _) -> true
1331
1331
|Some (V.Val (Symbolic (Virtual {name=n;_}))) whenSymbol.is_label n -> true
1332
-
|Some (V.Val (Symbolic (Physical (s,_)))) when (s |>Symbol.of_string |>Symbol.is_label) -> true(* FIXME: this benefits from a proper exposition of a label as a physical address *)
1332
+
|Some (V.Val (Symbolic (Physical (s,_)))) when (s |>Symbol.of_string |>Symbol.is_label) -> true
0 commit comments