Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/FastExpressionCompiler/FastExpressionCompiler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2568,7 +2568,7 @@ private static bool TryEmitCoalesceOperator(BinaryExpression expr, ILGenerator i
il.DmarkLabel(labelFalse);
else
{
il.Demit(OpCodes.Br, labelDone);
il.Demit(OpCodes.Br_S, labelDone); // safe: jumps over Castclass (5 bytes) = 5 bytes
il.DmarkLabel(labelFalse); // todo: @bug? should we insert the boxing for the Nullable value type before the Castclass
il.Demit(OpCodes.Castclass, exprType);
il.DmarkLabel(labelDone);
Expand Down Expand Up @@ -2947,9 +2947,9 @@ private static bool TryEmitSimpleUnaryExpression(UnaryExpression expr, Expressio
{
var falseLabel = il.DefineLabel();
var continueLabel = il.DefineLabel();
il.Demit(OpCodes.Brfalse, falseLabel);
il.Demit(OpCodes.Brfalse_S, falseLabel); // safe: jumps over Ldc_I4_0 (1 byte) + Br_S (2 bytes) = 3 bytes
il.Demit(OpCodes.Ldc_I4_0);
il.Demit(OpCodes.Br, continueLabel);
il.Demit(OpCodes.Br_S, continueLabel); // safe: jumps over Ldc_I4_1 (1 byte) = 1 byte
il.DmarkLabel(falseLabel);
il.Demit(OpCodes.Ldc_I4_1);
il.DmarkLabel(continueLabel);
Expand Down Expand Up @@ -5767,9 +5767,9 @@ var methodName
var resultLabel = il.DefineLabel();
var isNullLabel = il.DefineLabel();
EmitLoadLocalVariable(il, leftHasValueVar);
il.Demit(OpCodes.Brfalse, isNullLabel);
il.Demit(OpCodes.Brfalse_S, isNullLabel); // safe: jumps over EmitLoadLocalVariable (1-4 bytes) + Brtrue_S (2 bytes) = 3-6 bytes
EmitLoadLocalVariable(il, rightHasValueVar);
il.Demit(OpCodes.Brtrue, resultLabel);
il.Demit(OpCodes.Brtrue_S, resultLabel); // safe: jumps over Pop (1 byte) + Ldnull (1 byte) = 2 bytes
il.DmarkLabel(isNullLabel);
il.Demit(OpCodes.Pop);
il.Demit(OpCodes.Ldnull);
Expand Down Expand Up @@ -5974,7 +5974,7 @@ private static bool TryEmitLogicalOperator(BinaryExpression expr, ExpressionType
return false;

var labelDone = il.DefineLabel();
il.Demit(OpCodes.Br, labelDone);
il.Demit(OpCodes.Br_S, labelDone); // safe: jumps over Ldc_I4_0 or Ldc_I4_1 (1 byte) = 1 byte

il.DmarkLabel(labelSkipRight); // label the second branch
il.Demit(nodeType == ExpressionType.AndAlso ? OpCodes.Ldc_I4_0 : OpCodes.Ldc_I4_1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ public void ComparisonsWithConversionsShouldWork4()
OpCodes.Cgt_Un,
OpCodes.Ldc_I4_0,
OpCodes.Ceq,
OpCodes.Br,
OpCodes.Br_S, // short form: jumps over Ldc_I4_0 (1 byte) = 1 byte
OpCodes.Ldc_I4_0,
OpCodes.Ret);

Expand Down
Loading