Skip to content

Commit 7477893

Browse files
authored
Fix minor issues (#9391)
1 parent 6a12fd3 commit 7477893

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

release-notes/9.0/preview/preview6/runtime.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ for (int i = 100; i > 0; i--)
142142
}
143143
```
144144

145-
For the first example, we need to emit an instruction to increment `i`, followed by an instruction to perform the `i < 100` comparison, followed by a conditional jump to continue the loop if the conditoin is still true -- that's three instructions in total. However, if we flip the counter's direction, we need one fewer instruction. For example, on x64, we can use the `dec` instruction to decrement `i`; when `i` reaches zero, the `dec` instruction sets a CPU flag that can be used as the condition for a jump instruction immediately following the `dec`.
145+
For the first example, we need to emit an instruction to increment `i`, followed by an instruction to perform the `i < 100` comparison, followed by a conditional jump to continue the loop if the condition is still true -- that's three instructions in total. However, if we flip the counter's direction, we need one fewer instruction. For example, on x64, we can use the `dec` instruction to decrement `i`; when `i` reaches zero, the `dec` instruction sets a CPU flag that can be used as the condition for a jump instruction immediately following the `dec`.
146146

147147
Here's what the x64 assembly looks like for the first example:
148148
```asm
@@ -203,7 +203,7 @@ G_M59043_IG03: ;; offset=0x0010
203203
; Total bytes of code: 21
204204
```
205205

206-
Preview 6 improves RyuJIT's ability to track the usages of local variables' addresses, and avoid unnecessary address exposure. In this example, the more precise address exposure detection allows RyuJIT to replace usages of the `Awaitable` instance with its `Opts` field, and then eliminate `Opts` altogether by evaluating the constant expression `value ? 1 : 2`, where `value` is known to be `false`.
206+
RyuJIT can now better track the usage of local variables' addresses, and avoid unnecessary address exposure. In this example, the more precise address exposure detection allows RyuJIT to replace usages of the `Awaitable` instance with its `Opts` field, and then eliminate `Opts` altogether by evaluating the constant expression `value ? 1 : 2`, where `value` is known to be `false`.
207207

208208
Here's what the updated x64 assembly looks like:
209209
```asm
@@ -217,7 +217,7 @@ Check out [dotnet/runtime #102808](https://github.com/dotnet/runtime/pull/102808
217217

218218
## AVX10v1 Support
219219

220-
Preview 6 introduces support for AVX10, a new SIMD instruction set by Intel. Using the new API surface under `System.Runtime.Intrinsics.X86.Avx10v1`, you'll be able to accelerate your .NET applications on AVX10-enabled hardware through numerous vectorized operations. Check out [dotnet/runtime #101938](https://github.com/dotnet/runtime/pull/101938).
220+
New APIs have been added for AVX10, a new SIMD instruction set by Intel. You'll be able to accelerate your .NET applications on AVX10-enabled hardware with vectorized operations using the new `System.Runtime.Intrinsics.X86.Avx10v1` APIs. Check out [dotnet/runtime #101938](https://github.com/dotnet/runtime/pull/101938).
221221

222222
## Hardware Intrinsic Code Generation
223223

0 commit comments

Comments
 (0)