[ilasm] Adds AggressiveInlining support
authorMarek Safar <marek.safar@gmail.com>
Tue, 29 Aug 2017 13:51:55 +0000 (15:51 +0200)
committerMarek Safar <marek.safar@gmail.com>
Tue, 29 Aug 2017 13:51:55 +0000 (15:51 +0200)
mcs/class/PEAPI/Metadata.cs
mcs/ilasm/parser/ILParser.jay
mcs/ilasm/scanner/ILTables.cs

index 35693efd7fcb650878edbc15e1b15dec0ebed94b..8132ecab518ced13773b2427f7a2400654a54e6d 100644 (file)
@@ -92,7 +92,9 @@ namespace PEAPI {
        /// </summary>
        public enum ImplAttr { IL, Native, Runtime = 0x03, Unmanaged = 0x04,
                ForwardRef = 0x10, PreserveSig = 0x0080, InternalCall = 0x1000, 
-               Synchronised = 0x0020, Synchronized = 0x0020, NoInLining = 0x0008, NoOptimization = 0x0040, Optil = 0x0002}
+               Synchronised = 0x0020, Synchronized = 0x0020, NoInLining = 0x0008, NoOptimization = 0x0040, Optil = 0x0002,
+               AggressiveInlining = 0x0100
+       }
 
        /// <summary>
        /// Storage location for initial field data
index c12eeaf978be47f106f6620198cbd223988e3ab2..b564427b568fa5956bc83bf9fee47d3c78750b79 100644 (file)
@@ -288,6 +288,7 @@ namespace Mono.ILASM {
 /* Keywords */\r
 %token K_AT\r
 %token K_AS\r
+%token K_AGGRESSIVEINLINING\r
 %token K_IMPLICITCOM\r
 %token K_IMPLICITRES\r
 %token K_NOAPPDOMAIN\r
@@ -2016,6 +2017,7 @@ impl_attr         : /* EMPTY */                   { $$ = new ImplAttr (); }
                        | impl_attr K_SYNCHRONIZED      { $$ = (ImplAttr) $1 | ImplAttr.Synchronised; }\r
                        | impl_attr K_NOINLINING        { $$ = (ImplAttr) $1 | ImplAttr.NoInLining; }\r
                        | impl_attr K_NOOPTIMIZATION    { $$ = (ImplAttr) $1 | ImplAttr.NoOptimization; }\r
+                       | impl_attr K_AGGRESSIVEINLINING{ $$ = (ImplAttr) $1 | ImplAttr.AggressiveInlining; }\r
                        ;\r
 \r
 sig_args               : /* EMPTY */\r
index fa13dd77c08bb451991546e419feb36d6031e719..9e62ebf638c5ddf57b0df1211211e09a5792a5b1 100644 (file)
@@ -321,6 +321,7 @@ namespace Mono.ILASM {
                                 keywords ["legacy"] = new ILToken (Token.K_LEGACY, "legacy");\r
                                 keywords ["library"] = new ILToken (Token.K_LIBRARY, "library");\r
                                 keywords ["auto"] = new ILToken (Token.K_AUTO, "auto");\r
+                                keywords ["aggressiveinlining"] = new ILToken (Token.K_AGGRESSIVEINLINING, "aggressiveinlining");\r
 \r
                                 return keywords;\r
                         }\r