78 Commits (9590cfbf5950b62f67a5c221e9aeae99072b7c25)

Author SHA1 Message Date
Siegfried Pammer 9590cfbf59 Update tests to latest Roslyn implementation. 6 years ago
Daniel Grunwald 961923f4fd #1499, #1240: Translate pointer arithmetic on managed pointers (ref T) using the System.Runtime.CompilerServices.Unsafe intrinsics 6 years ago
Siegfried Pammer d42cf99a8c Fix dynamic transforms because https://github.com/dotnet/roslyn/issues/27800 was fixed. 6 years ago
Siegfried Pammer 94cd891609 Add support for ReadOnlySpan<T> initialization pattern. 6 years ago
Siegfried Pammer c1fca21e8a Make ILRange field private - introduce public API for IL range manipulation. 6 years ago
Daniel Grunwald 47ca51a769 Clarify the meaning of ILVariable.Index 6 years ago
Siegfried Pammer 112719efaf Extend safety-checks in TransformSpanTCtorContainingStackAlloc. 7 years ago
Siegfried Pammer 0dac55d584 Add transformation for stackalloc to Span<T>. 7 years ago
Daniel Grunwald ef866040b4 Update to SRM 1.6.0 and Roslyn 2.9. Adjust decompiler to new code pattern used for lifted nullable comparisons. 7 years ago
Daniel Grunwald 12e74daf48 Handle Comp in InferType(). 7 years ago
Daniel Grunwald 2f54eee5db #1195: Fix comparison of object reference with ldc.i4 0. 7 years ago
Daniel Grunwald dd5845e83d Support short-circuiting operators with dynamic. (e.g. "if (x.A && x.B)" where "x" is dynamic) 7 years ago
Daniel Grunwald 9479e8af13 Support overloaded operator &&/||. 7 years ago
Chicken-Bones f539bee362 Move binary->logical AND to ExpressionTransforms and use SemanticHelper.IsPure 7 years ago
Daniel Grunwald 4b96f48d87 Cosmetic changes during review of PR #1176 7 years ago
Siegfried Pammer a30c628e1f Remove hack from ExpressionTransforms.TransformDynamicAddAssignOrRemoveAssign, implement VisitDynamicSetIndexInstruction 7 years ago
Siegfried Pammer c4f41f459f Add support for more dynamic binary operators. 7 years ago
Siegfried Pammer 2c7e3c2c37 Add hack to allow inlining of compiler-generated variable after dynamic.isevent pattern transform. 7 years ago
Siegfried Pammer 273a1c24ff Add dynamic compound assignment transforms 7 years ago
Siegfried Pammer 5e4b571a62 Add DynamicCallSiteTransform 7 years ago
Daniel Grunwald 3956fa685d Refactor TransformAssignment to reduce code duplication. 7 years ago
Siegfried Pammer 845c620a9f Implement UserDefinedCompoundAssign 7 years ago
Daniel Grunwald a46ac9dc84 Also combine 'ldlen; conv.i4.ovf' to 'ldlen.i4'. 7 years ago
Daniel Grunwald 1dfda502ea Remove redundant 'box' opcodes. This eliminates some unnecessary (object)-casts in generic code. 7 years ago
Siegfried Pammer 33c5e2d3ed Add StackType.F4 and StackType.F8, and instructions LdcF4 and LdcF8. 8 years ago
Siegfried Pammer 69f2609bff Fix #861: Failure to decompile for loop with conditional early return 8 years ago
Daniel Grunwald 40a4f08a8d Add support for compound assignment of short integers. 8 years ago
Daniel Grunwald 248a9ad76f Fix #954: don't use invalid compound assignments on enums 8 years ago
Daniel Grunwald 255fab7bd6 Fix short-circuiting operators when the rhs is a comparison with 0. 8 years ago
Siegfried Pammer 9e5d4c10f7 Fix array.Length == 0 in Roslyn. 8 years ago
Daniel Grunwald f6ab796ba7 Add ldobj(ldloca) -> ldloc transform; and remove special case in ProxyCallReplacer. 8 years ago
Daniel Grunwald 39bb6856b7 Fix various bugs with compound assignments. 8 years ago
Daniel Grunwald 61900e33c3 [nullables] Lifted compound assignments 8 years ago
Daniel Grunwald 7017c6f6e6 Replace LoopingBlockTransform with StatementTransform. 8 years ago
Siegfried Pammer 48b77d4742 ExpressionTransform: comp(box T(..) [!=]= ldnull) -> comp(.. [!=]= ldnull) where T.Kind == TypeParameter 8 years ago
Daniel Grunwald 735f8e070d Compound assignment doesn't support lifting yet. 8 years ago
Daniel Grunwald 919219524b Eliminate the dedicated logic.not instruction, and treat it as syntax sugar similar to logic.and/logic.or. 8 years ago
Daniel Grunwald 21ef967d4d [nullables] Lifting for non-equality comparisons. 8 years ago
Daniel Grunwald 4830b37ab9 [nullables] Add support for '??' operator on nullables. 8 years ago
Daniel Grunwald 33099c5d65 [nullables] Extend nullable lifting to arbitrary combinations of 'conv' and 'binary.numeric'. 8 years ago
Daniel Grunwald 133ddac256 [nullables] Add support for lifted conversions. 8 years ago
Siegfried Pammer 50d55b9b05 Fix build. 8 years ago
Siegfried Pammer c34541ad4c Implement catch-when and remove local copy of exception slot. 8 years ago
Daniel Grunwald 21717f0fa4 Fixup array indices 8 years ago
Daniel Grunwald 8f36520f94 Fix unnecessary casts in newarr. 8 years ago
Daniel Grunwald 9e38bcea5f Avoid unnecessary casts for bitshifts. 8 years ago
Daniel Grunwald 83f52e4df1 #631: fix infinite transform loop 8 years ago
Daniel Grunwald 6c7e2efa6c [async] Fix await decompiler for pre-roslyn csc, at least in cases where the stack is empty during the await. 8 years ago
Daniel Grunwald 7d6122cfaf [async] Decompile await operator. 8 years ago
Daniel Grunwald 69c77d75a5 Try to get rid of some more gotos. 8 years ago