Skip to content

Commit 6ac46cd

Browse files
TylerMSFTTylerMSFT
authored andcommitted
acrolinx
1 parent 2121187 commit 6ac46cd

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

docs/build/reference/volatile.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@ Generate metadata on volatile memory accesses to improve performance when runnin
1818
## Arguments
1919

2020
**`-`**\
21-
Turns off `/volatileMetadata`. This may result in worse performance if your code is run in emulation mode on ARM because the emulator will pessimistically assume that every load/store needs a barrier.
21+
Turns off `/volatileMetadata`. This may result in worse performance when your code runs in emulation mode on ARM because the emulator pessimistically assumes that every load/store needs a barrier.
2222

2323
## Remarks
2424

25-
Starting with Visual Studio 2019 16.10, `/volatileMetadata` is on by default when generating x64 code meant to run on ARM. It improves the emulation performance of x64 code on ARM by generating metadata that identifies volatile memory addresses. This metadata can be used by an emulator to improve performance because it then knows which addresses aren't volatile. Without this metadata, the emulator assumes that all addresses are volatile, and uses acquire and release semantics to access them.
25+
Starting with Visual Studio 2019 16.10, `/volatileMetadata` is on by default when generating x64 code. It improves the emulation performance of x64 code on ARM by generating metadata that identifies volatile memory addresses. An emulator can use this metadata improve performance by not using acquire/release semantics on accesses it knows aren't volatile. Without this metadata, the emulator assumes that all addresses are volatile, and uses acquire and release semantics to access them.
2626

27-
One side effect `/volatileMetadata` is you may see `npad` macros in the generated code. This macro expands to a specified number of NOP instructions to create an address to associate with the memory barrier. That address is then recorded in the metadata.
27+
One side effect `/volatileMetadata` is you may see `npad` macros in the generated code. This macro expands to a specified number of `NOP` instructions that create an address to associate with the memory barrier. That address is then recorded in the metadata.
2828

2929
`/volatileMetadata` can be disabled by using `/volatileMetadata-`.
3030

3131
`/volatileMetadata` is ignored when targeting x86.
3232

3333
## Requirements
3434

35-
Visual Studio 16.10 or later.
35+
Visual Studio 2019 version 16.10 or later.
3636

3737
## See also
3838

0 commit comments

Comments
 (0)