summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kotas <jkotas@microsoft.com>2019-06-25 13:22:23 -0700
committerGitHub <noreply@github.com>2019-06-25 13:22:23 -0700
commit52f10ff250d2a7bfdd8bf98299c8005aa2956659 (patch)
tree7e8ba2cd535bafdf391853f5c74e4f671722bfe3
parentc0b20d1612a73d2aa5cdfe0fbec4653ab3743927 (diff)
downloadcoreclr-52f10ff250d2a7bfdd8bf98299c8005aa2956659.tar.gz
coreclr-52f10ff250d2a7bfdd8bf98299c8005aa2956659.tar.bz2
coreclr-52f10ff250d2a7bfdd8bf98299c8005aa2956659.zip
Fix StackChange value for OpCodes.Stelem (#25382)
Fixes dotnet/corefx#37955
-rw-r--r--src/System.Private.CoreLib/shared/System/Reflection/Emit/OpCodes.cs12
-rw-r--r--src/inc/OpCodeGen.pl8
2 files changed, 15 insertions, 5 deletions
diff --git a/src/System.Private.CoreLib/shared/System/Reflection/Emit/OpCodes.cs b/src/System.Private.CoreLib/shared/System/Reflection/Emit/OpCodes.cs
index 7690005e2f..07c4b1ceb7 100644
--- a/src/System.Private.CoreLib/shared/System/Reflection/Emit/OpCodes.cs
+++ b/src/System.Private.CoreLib/shared/System/Reflection/Emit/OpCodes.cs
@@ -2,6 +2,16 @@
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
+/*============================================================
+**
+** Class: OpCodes
+**
+** Purpose: Exposes all of the IL instructions supported by the runtime.
+**
+** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT BY HAND!
+** See $(RepoRoot)\src\inc\OpCodeGen.pl for more information.**
+==============================================================*/
+
namespace System.Reflection.Emit
{
//
@@ -1875,7 +1885,7 @@ namespace System.Reflection.Emit
((int)StackBehaviour.Popref_popi_pop1 << OpCode.StackBehaviourPopShift) |
((int)StackBehaviour.Push0 << OpCode.StackBehaviourPushShift) |
(1 << OpCode.SizeShift) |
- (0 << OpCode.StackChangeShift)
+ (-3 << OpCode.StackChangeShift)
);
public static readonly OpCode Unbox_Any = new OpCode(OpCodeValues.Unbox_Any,
diff --git a/src/inc/OpCodeGen.pl b/src/inc/OpCodeGen.pl
index c29d4976e7..64ba130da4 100644
--- a/src/inc/OpCodeGen.pl
+++ b/src/inc/OpCodeGen.pl
@@ -46,8 +46,8 @@ $endHeaderComment = "**\n** THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT BY
$endHeaderComment .= "** See \$(RepoRoot)\\src\\inc\\OpCodeGen.pl for more information.**\n";
$endHeaderComment .= "==============================================================*/\n\n";
-$usingAndRefEmitNmsp = "using System;\n\nnamespace System.Reflection.Emit\n{\n\n";
-$obsoleteAttr = " [Obsolete(\"This API has been deprecated. http://go.microsoft.com/fwlink/?linkid=14202\")]\n";
+$usingAndRefEmitNmsp = "namespace System.Reflection.Emit\n{\n\n";
+$obsoleteAttr = " [Obsolete(\"This API has been deprecated. https://go.microsoft.com/fwlink/?linkid=14202\")]\n";
# Open source file and target files
@@ -298,7 +298,7 @@ while (<OPCODE>)
{
$popstate = $popstate -2;
}
- elsif ($pop eq "Popi_popi_popi" || $pop eq "Popref_popi_popi" || $pop eq "Popref_popi_popi8" || $pop eq "Popref_popi_popr4" || $pop eq "Popref_popi_popr8" || $pop eq "Popref_popi_popref")
+ elsif ($pop eq "Popi_popi_popi" || $pop eq "Popref_popi_popi" || $pop eq "Popref_popi_popi8" || $pop eq "Popref_popi_popr4" || $pop eq "Popref_popi_popr8" || $pop eq "Popref_popi_popref" || $pop eq "Popref_popi_pop1")
{
$popstate = $popstate -3;
}
@@ -473,7 +473,7 @@ print OUTPUT " case OperandType.ShortInlineBrTarget:\n";
print OUTPUT " case OperandType.ShortInlineI:\n";
print OUTPUT " case OperandType.ShortInlineVar:\n";
print OUTPUT " return true;\n";
-print OUTPUT " };\n";
+print OUTPUT " }\n";
print OUTPUT " return false;\n";
print OUTPUT " }\n";