Bug 440332 - arm64: Correct memory barrier position for 8.1-A LSE instructions
Summary: arm64: Correct memory barrier position for 8.1-A LSE instructions
Status: REPORTED
Alias: None
Product: valgrind
Classification: Developer tools
Component: vex (show other bugs)
Version: unspecified
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: Julian Seward
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-07-27 17:55 UTC by Petr Pavlu
Modified: 2021-07-27 17:55 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments
arm64: Correct memory barrier position for 8.1-A LSE instructions (3.21 KB, patch)
2021-07-27 17:55 UTC, Petr Pavlu
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Petr Pavlu 2021-07-27 17:55:20 UTC
Created attachment 140356 [details]
arm64: Correct memory barrier position for 8.1-A LSE instructions

Fix guest-to-IR decoding of the Armv8.1-A LSE instructions LD<x>{,A}{,L},
CAS{,A}{,L} and CASP{,A}{,L} which have the memory barrier statement placed at
an incorrect position. For acquire semantics, place the barrier after the IR of
the decoded operation. For release semantics, place the barrier before it.

Note that decoding of the Armv8.0-A instructions LDAXR, STLXR, LDAR and STLR
places the memory barrier statement at the correct position.