[dlr] Handle more expressions in interpreter
[mono.git] / mcs / class / dlr / Runtime / Microsoft.Dynamic / Interpreter / Instructions / AddInstruction.cs
index 1f1775c180f2defa04a4daf9fb75b1c43ad979a1..3846e4d215ffefff7b4f919cce824e27e458dcd6 100644 (file)
@@ -153,7 +153,7 @@ namespace Microsoft.Scripting.Interpreter {
             public override int Run(InterpretedFrame frame) {
                 object l = frame.Data[frame.StackIndex - 2];
                 object r = frame.Data[frame.StackIndex - 1];
-                frame.Data[frame.StackIndex - 2] = (Int16)checked((Int16)l + (Int16)r);
+                frame.Data[frame.StackIndex - 2] = checked((Int16)((Int16)l + (Int16)r));
                 frame.StackIndex--;
                 return +1;
             }
@@ -163,7 +163,7 @@ namespace Microsoft.Scripting.Interpreter {
             public override int Run(InterpretedFrame frame) {
                 object l = frame.Data[frame.StackIndex - 2];
                 object r = frame.Data[frame.StackIndex - 1];
-                frame.Data[frame.StackIndex - 2] = (Int64)checked((Int64)l + (Int64)r);
+                frame.Data[frame.StackIndex - 2] = checked((Int64)((Int64)l + (Int64)r));
                 frame.StackIndex--;
                 return +1;
             }
@@ -173,7 +173,7 @@ namespace Microsoft.Scripting.Interpreter {
             public override int Run(InterpretedFrame frame) {
                 object l = frame.Data[frame.StackIndex - 2];
                 object r = frame.Data[frame.StackIndex - 1];
-                frame.Data[frame.StackIndex - 2] = (UInt16)checked((UInt16)l + (UInt16)r);
+                frame.Data[frame.StackIndex - 2] = checked((UInt16)((UInt16)l + (UInt16)r));
                 frame.StackIndex--;
                 return +1;
             }
@@ -183,7 +183,7 @@ namespace Microsoft.Scripting.Interpreter {
             public override int Run(InterpretedFrame frame) {
                 object l = frame.Data[frame.StackIndex - 2];
                 object r = frame.Data[frame.StackIndex - 1];
-                frame.Data[frame.StackIndex - 2] = (UInt32)checked((UInt32)l + (UInt32)r);
+                frame.Data[frame.StackIndex - 2] = checked((UInt32)((UInt32)l + (UInt32)r));
                 frame.StackIndex--;
                 return +1;
             }
@@ -193,7 +193,7 @@ namespace Microsoft.Scripting.Interpreter {
             public override int Run(InterpretedFrame frame) {
                 object l = frame.Data[frame.StackIndex - 2];
                 object r = frame.Data[frame.StackIndex - 1];
-                frame.Data[frame.StackIndex - 2] = (UInt64)checked((UInt64)l + (UInt64)r);
+                frame.Data[frame.StackIndex - 2] = checked((UInt64)((UInt64)l + (UInt64)r));
                 frame.StackIndex--;
                 return +1;
             }