-
-
Notifications
You must be signed in to change notification settings - Fork 636
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* FieldRVA alignment In support of dotnet/runtime#60948 the linker (an assembly rewriter) will need to be able to preserve the alignment of RVA based fields which are to be used to create the data for `CreateSpan<T>` records This is implemented by adding a concept that RVA fields detect their required alignment by examining the PackingSize of the type of the field (if the field type is defined locally in the module) * Update Mono.Cecil.Metadata/Buffers.cs Co-authored-by: Aaron Robinson <arobins@microsoft.com> * Enhace logic used to ensure type providing PackingSize is local to the module. Co-authored-by: Aaron Robinson <arobins@microsoft.com>
- Loading branch information
1 parent
75372c7
commit a56b5bd
Showing
5 changed files
with
147 additions
and
3 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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
.assembly extern mscorlib | ||
{ | ||
.publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4.. | ||
.ver 4:0:0:0 | ||
} | ||
.assembly FieldRVAAlignment {} | ||
|
||
.module FieldRVAAlignment.dll | ||
|
||
.class private auto ansi '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}' | ||
extends [mscorlib]System.Object | ||
{ | ||
.custom instance void [mscorlib]System.Runtime.CompilerServices.CompilerGeneratedAttribute::.ctor() = ( 01 00 00 00 ) | ||
.class explicit ansi sealed nested private '__StaticArrayInitTypeSize=3' | ||
extends [mscorlib]System.ValueType | ||
{ | ||
.pack 1 | ||
.size 3 | ||
} // end of class '__StaticArrayInitTypeSize=3' | ||
|
||
.class explicit ansi sealed nested private '__StaticArrayInitTypeSize=16' | ||
extends [mscorlib]System.ValueType | ||
{ | ||
.pack 8 | ||
.size 16 | ||
} // end of class '__StaticArrayInitTypeSize=16' | ||
|
||
.class explicit ansi sealed nested private '__StaticArrayInitTypeSize=20' | ||
extends [mscorlib]System.ValueType | ||
{ | ||
.pack 4 | ||
.size 20 | ||
} // end of class '__StaticArrayInitTypeSize=20' | ||
|
||
.class explicit ansi sealed nested private '__StaticArrayInitTypeSize=5' | ||
extends [mscorlib]System.ValueType | ||
{ | ||
.pack 1 | ||
.size 5 | ||
} // end of class '__StaticArrayInitTypeSize=5' | ||
|
||
.class explicit ansi sealed nested private '__StaticArrayInitTypeSize=6' | ||
extends [mscorlib]System.ValueType | ||
{ | ||
.pack 2 | ||
.size 6 | ||
} // end of class '__StaticArrayInitTypeSize=6' | ||
|
||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=3' '$$method0x6000001-1' at I_000020F0 | ||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=20' '$$method0x6000001-2' at I_000020F8 | ||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=5' '$$method0x6000001-3' at I_00002108 | ||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=20' '$$method0x6000001-4' at I_00002110 | ||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=6' '$$method0x6000001-5' at I_00002120 | ||
.field static assembly valuetype '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}'/'__StaticArrayInitTypeSize=16' '$$method0x6000001-6' at I_00002130 | ||
} // end of class '<PrivateImplementationDetails>{9B33BB20-87EF-4094-9948-34882DB2F001}' | ||
|
||
|
||
// ============================================================= | ||
|
||
.data cil I_000020F0 = bytearray ( | ||
01 02 03) | ||
.data cil I_000020F8 = bytearray ( | ||
01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00 05 00 00 00) | ||
.data cil I_00002108 = bytearray ( | ||
04 05 06 07 08) | ||
.data cil I_00002110 = bytearray ( | ||
01 00 00 00 02 00 00 00 03 00 00 00 05 00 00 00 06 00 00 00) | ||
.data cil I_00002120 = bytearray ( | ||
08 00 0C 00 0D 00) | ||
.data cil I_00002130 = bytearray ( | ||
01 00 00 00 02 00 00 00 03 00 00 00 05 00 00 00) |