Skip to content

Commit

Permalink
Add note about backward branch constraints to ECMA-335 augments (dotn…
Browse files Browse the repository at this point in the history
  • Loading branch information
jkotas authored Jun 15, 2022
1 parent eeb0c15 commit 1abd9a1
Showing 1 changed file with 5 additions and 0 deletions.
5 changes: 5 additions & 0 deletions docs/design/specs/Ecma-335-Augments.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ This is a list of additions and edits to be made in ECMA-335 specifications. It
- [Rules for IL rewriters](#rules-for-il-rewriters)
- [Checked user-defined operators](#checked-user-defined-operators)
- [Atomic reads and writes](#atomic-reads-and-writes)
- [Backward branch constraints](#backward-branch-constraints)

## Signatures

Expand Down Expand Up @@ -1020,3 +1021,7 @@ A checked user-defined operator is expected to throw an exception when the resul
Section "I.12.6.6 Atomic reads and writes" adds clarification that the atomicity guarantees apply to built-in primitive value types and pointers only.

A conforming CLI shall guarantee that read and write access of *built-in primitive value types and pointers* to properly aligned memory locations no larger than the native word size (the size of type native int) is atomic (see §I.12.6.2) when all the write accesses to a location are the same size.

## Backward branch constraints

Section "II.1.7.5 Backward branch constraints" is deleted. These constraints were not enforced by any mainstream .NET runtime and they are not respected by .NET compilers. It means that it is not possible to infer the exact state of the evaluation stack at every instruction with a single forward-pass through the CIL instruction stream.

0 comments on commit 1abd9a1

Please sign in to comment.