Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
[feat] Ensure instruction stream synchronisation
When fixing up targets to call-sites during compilation and code installation no explicit synchronisation is needed as long as the cache maintenance is performed after fixing up. This approach has been necessary to ensure stability and also reduces the number of cache maintenance events required. A concurrent flag is added to the private interface indicating when synchronisation is required. Calls to the membarrier system call are added after explicit cache maintenance to ensure that any updates to instructions are visible immediately after modification. An additional memory barrier is added after patching a trampoline address operand that ensures that its store cannot be allowed to trail a store to the call-site branch instruction.
- Loading branch information
1 parent
7f0e93a
commit 1e31857
Showing
1 changed file
with
40 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters