From 0290d19c8391ff5a16fe32a073221f34245afc5d Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Tue, 29 Aug 2017 15:51:55 +0200 Subject: [PATCH] [ilasm] Adds AggressiveInlining support --- mcs/class/PEAPI/Metadata.cs | 4 +++- mcs/ilasm/parser/ILParser.jay | 2 ++ mcs/ilasm/scanner/ILTables.cs | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mcs/class/PEAPI/Metadata.cs b/mcs/class/PEAPI/Metadata.cs index 35693efd7fc..8132ecab518 100644 --- a/mcs/class/PEAPI/Metadata.cs +++ b/mcs/class/PEAPI/Metadata.cs @@ -92,7 +92,9 @@ namespace PEAPI { /// 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 + } /// /// Storage location for initial field data diff --git a/mcs/ilasm/parser/ILParser.jay b/mcs/ilasm/parser/ILParser.jay index c12eeaf978b..b564427b568 100644 --- a/mcs/ilasm/parser/ILParser.jay +++ b/mcs/ilasm/parser/ILParser.jay @@ -288,6 +288,7 @@ namespace Mono.ILASM { /* Keywords */ %token K_AT %token K_AS +%token K_AGGRESSIVEINLINING %token K_IMPLICITCOM %token K_IMPLICITRES %token K_NOAPPDOMAIN @@ -2016,6 +2017,7 @@ impl_attr : /* EMPTY */ { $$ = new ImplAttr (); } | impl_attr K_SYNCHRONIZED { $$ = (ImplAttr) $1 | ImplAttr.Synchronised; } | impl_attr K_NOINLINING { $$ = (ImplAttr) $1 | ImplAttr.NoInLining; } | impl_attr K_NOOPTIMIZATION { $$ = (ImplAttr) $1 | ImplAttr.NoOptimization; } + | impl_attr K_AGGRESSIVEINLINING{ $$ = (ImplAttr) $1 | ImplAttr.AggressiveInlining; } ; sig_args : /* EMPTY */ diff --git a/mcs/ilasm/scanner/ILTables.cs b/mcs/ilasm/scanner/ILTables.cs index fa13dd77c08..9e62ebf638c 100644 --- a/mcs/ilasm/scanner/ILTables.cs +++ b/mcs/ilasm/scanner/ILTables.cs @@ -321,6 +321,7 @@ namespace Mono.ILASM { keywords ["legacy"] = new ILToken (Token.K_LEGACY, "legacy"); keywords ["library"] = new ILToken (Token.K_LIBRARY, "library"); keywords ["auto"] = new ILToken (Token.K_AUTO, "auto"); + keywords ["aggressiveinlining"] = new ILToken (Token.K_AGGRESSIVEINLINING, "aggressiveinlining"); return keywords; } -- 2.25.1