117 Commits (2edcaa2c44fdd5b2fd5dc7865ff313799a8f1191)

Author SHA1 Message Date
Daniel Grunwald 2edcaa2c44 Initial implementation of async/await decompiler. 13 years ago
Daniel Grunwald 0b968182a3 Fix #296: Array initialization decompiles into recursive reference 14 years ago
Daniel Grunwald 0010be6add Fixed decompiling "new byte[length]" where length is a long. 14 years ago
Daniel Grunwald 7e35c705b6 Initial implementation of Expression Tree Decompilation (#175) 14 years ago
Pent Ploompuu 92c892577d Use consistent terminology for lifted operators 14 years ago
David Srbecký 3b692d9c7c Ignore arguments of 'leave'. Closes #185 14 years ago
David Srbecký 822e473df3 Replace endfinally with jump. Closes #232 14 years ago
Pent Ploompuu d226afb26d Decompile all lifted operators on nullable values. Postfix increment/decrement and custom type conversions support incomplete, but correct. 14 years ago
Daniel Grunwald 43b4339bea Simplify shift operators (<< and >>). 14 years ago
Daniel Grunwald 6c94092dc5 Fixed ILAstOptimizer.CanBeExpressionStatement to include more types of assignments. 14 years ago
Alex Lyman 9faee0ad8d - Modified the InitializerPeepholeTransforms' Array Initializers to do a forward scan of the block instead of just checking the next instruction. The next-instruction thing breaks down under the case where you have an array-of-arrays (int[][]) 14 years ago
Pent Ploompuu 24c9e68633 Simplify shift operators (<< and >>). 14 years ago
David Srbecký f9d877b25a Remove unreachable return statements. Closes #174. Closes #192 14 years ago
David Srbecký 6fd28e8b6e Remove unreachable return statements. Closes #174. Closes #192 14 years ago
Daniel Grunwald 67fcd4ef7d Fix NullReferenceException in ILAstOptimizer.RecombineVariables 14 years ago
Daniel Grunwald f1a34c6a31 Fix #202: Decompilation of multiple catch clauses sharing the same variable name 14 years ago
Pent Ploompuu fec24cf171 Improved decompilation correctness for operators on nullable values 14 years ago
Siegfried Pammer a929decdeb implement basic support for custom short circuit operators + unit test; fixes #193 14 years ago
Daniel Grunwald 2d42dd5c57 Fixed several issues related to [MarshalAs] attributes. 14 years ago
Daniel Grunwald ae873ec18f Fixed decompilation of anonymous methods created by the VB compiler. Closes #127. 14 years ago
Daniel Grunwald 508073d6ac Applied some of the optimizations suggested by Kris Vandermotten. #150 14 years ago
Pent Ploompuu 1628f2870c Simplify operators on nullable values: primitive comparisons 14 years ago
Daniel Grunwald f12371e0e1 Consistently use the full MIT license header on source files. 14 years ago
Daniel Grunwald 8c927f199b Fixed issues introduced by #139 (Improved local variable inlining) 14 years ago
Daniel Grunwald 660505e04d Introduce 'AddressOf' pseudo-opcode to make the type system aware of inlined value types (#139) 14 years ago
Daniel Grunwald 600c07388e Implemented object initializers. 14 years ago
Daniel Grunwald f791897829 Implemented CachedDelegateInitialization transform for local variables (used for capturing lamdbas within loops). 15 years ago
Daniel Grunwald 6376110913 Fixed issues with "fixed" statement that were introduced by recent changes. 15 years ago
Daniel Grunwald cc0ab56869 Add pre- and post-increment support for properties (both instance and static) and for multi-dimensional arrays. 15 years ago
Daniel Grunwald 4c7a896a84 Implemented post-increment operator. Closes #76. 15 years ago
Daniel Grunwald 1df82cc3d1 Improved support for compound assignments and the pre-increment operator. 15 years ago
Daniel Grunwald 7e6490a816 Simplify conv.i8(ldc.i4(x)) to ldc.i8(x). 15 years ago
Daniel Grunwald d430ee056b Recombine variables after ILAst optimizations so that there is only a single C# variable for a single IL variable. 15 years ago
David Srbecký ab9452a30e ILBasicBlock refactored to consist only of the body. Removed ILComment. Closes #86 15 years ago
David Srbecký 17f68f450f Moved some of the optimizations into the while(modified) loop 15 years ago
David Srbecký 579cbb0acd Added a pass to joint basic blocks 15 years ago
David Srbecký 10a96a8d3f Helpers ILCode.IsConditionalControlFlow() and ILCode.IsUnconditionalControlFlow() 15 years ago
David Srbecký 015d70ff52 Simplification of && || ?? ?: put into separate file. Just recalculate the analysis rather then trying to keep it up to date. 15 years ago
David Srbecký 31b2de1126 Fixed initilizers and fixed statements which I broke during the refactoring. 15 years ago
David Srbecký 1a64d56b5a Create short circuit logical expressions as left associative 15 years ago
David Srbecký 1b8a62fb7c Run optimization loops backwards (bottom-up) 15 years ago
David Srbecký 6046fdcdfb Do not put brtrue into its own basic block - store it together with the previous instructions. 15 years ago
David Srbecký b3f1d599f8 Refactored some peephole transforms; Moved some of the transforms before loop and condition detection 15 years ago
Daniel Grunwald b41ee3ca88 Fix type analysis bugs. 15 years ago
Daniel Grunwald a3c241dac6 Improve handling of pinned variables. 15 years ago
Daniel Grunwald 01d7e2abbd Use the same representation for parameters and variables. 15 years ago
David Srbecký cce7300d66 Removed the declarative pattern matching algorithm from ILAst 15 years ago
David Srbecký 05b3bfbff2 Use the simple pattern matching in yield return 15 years ago
David Srbecký 616503f9a9 Added method to calculate unassigned ILRanges 15 years ago
David Srbecký 7318663cd5 GetSelfAndChildrenRecursive can be predicated 15 years ago