Free cookie consent management tool by TermsFeed Policy Generator

Changeset 10791 for trunk


Ignore:
Timestamp:
04/24/14 10:07:09 (11 years ago)
Author:
mkommend
Message:

#2177: Added xor support in the IL emitting interpreter.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/Interpreter/SymbolicDataAnalysisExpressionTreeILEmittingInterpreter.cs

    r9828 r10791  
    447447            il.Emit(System.Reflection.Emit.OpCodes.Sub);
    448448            il.Emit(System.Reflection.Emit.OpCodes.Neg); // * -1
     449            return;
     450          }
     451        case OpCodes.XOR: {
     452            CompileInstructions(il, state, ds);
     453            il.Emit(System.Reflection.Emit.OpCodes.Ldc_I4_0);
     454            il.Emit(System.Reflection.Emit.OpCodes.Cgt);// > 0
     455
     456            for (int i = 1; i < nArgs; i++) {
     457              CompileInstructions(il, state, ds);
     458              il.Emit(System.Reflection.Emit.OpCodes.Ldc_I4_0);
     459              il.Emit(System.Reflection.Emit.OpCodes.Cgt);// > 0
     460              il.Emit(System.Reflection.Emit.OpCodes.Xor);
     461            }
     462            il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, 2.0); // * 2
     463            il.Emit(System.Reflection.Emit.OpCodes.Mul);
     464            il.Emit(System.Reflection.Emit.OpCodes.Ldc_R8, 1.0); // - 1
     465            il.Emit(System.Reflection.Emit.OpCodes.Sub);
    449466            return;
    450467          }
Note: See TracChangeset for help on using the changeset viewer.