Skip to content

Commit

Permalink
[herd, aarch64]: Do not Tag Check cache maintenance operation(s)
Browse files Browse the repository at this point in the history
Arm ARM's rule state

  RDRGYL A single-copy atomic explicit memory access is Tag Unchecked
         due to any of the following, otherwise it is Tag Checked:
	 • The access is:
	 ...
	 — Due to a cache maintenance operation by VA other than DC ZVA
	 ...

However, currently DC is Tag check. Let's align DC with the rule and
make it Tag Unchecked

Signed-off-by: Vladimir Murzin <[email protected]>
  • Loading branch information
murzinv authored and relokin committed Feb 7, 2025
1 parent 3d421af commit e660aa7
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion herd/AArch64Sem.ml
Original file line number Diff line number Diff line change
Expand Up @@ -3165,7 +3165,8 @@ module Make
let dir = match op.AArch64Base.DC.funct with
| AArch64Base.DC.I -> Dir.W
| _ -> Dir.R in
lift_memop rd dir false memtag
(* CMO by VA other than DC ZVA are Tag Unchecked *)
lift_memop rd dir false false
(fun ac ma _mv -> (* value fake here *)
if Access.is_physical ac then
M.bind_ctrldata ma (mop ac)
Expand Down

0 comments on commit e660aa7

Please sign in to comment.