aboutsummaryrefslogtreecommitdiffstats
path: root/libevmasm
Commit message (Expand)AuthorAgeFilesLines
* Fix nondeterminism bug related to boost version.chriseth2018-11-271-1/+1
* CMake: Explicitly state which files to compile instead of relying on globbing.Christian Parpart2018-11-261-3/+19
* Merge pull request #5472 from ethereum/assemblyAnnotationOutputchriseth2018-11-241-0/+2
|\
| * Jumps with annotations cannot be functional.chriseth2018-11-221-0/+2
* | Introduce namespace `langutil` in liblangutil directory.Christian Parpart2018-11-2212-24/+47
* | Isolating files shared between Yul- and Solidity language frontend.Christian Parpart2018-11-226-111/+6
|/
* Removing redundant virtual from override function declarationmordax2018-11-211-6/+6
* Merge pull request #5265 from ethereum/cleanupsha3chriseth2018-11-094-4/+4
|\
| * Renamed SHA3.{h,cpp} files.chriseth2018-10-184-4/+4
* | Eliminate `byte`-typedef and use `uint8_t` in all their places instead.Christian Parpart2018-11-074-21/+21
|/
* Change library placeholder to `__$<hash>$__`.chriseth2018-10-121-1/+1
* Prefix "0x" to library placeholder.chriseth2018-10-121-1/+1
* Use hash for library placeholders.chriseth2018-10-122-2/+13
* Fix typos.chriseth2018-10-041-1/+1
* Merge pull request #5110 from codemascot/libevmasm/Assembly.cppchriseth2018-10-021-2/+11
|\
| * Use 'switch' instead of 'else if'Khan M Rashedun-Naby2018-09-271-2/+11
* | Set the price of EXTCODEHASH properlyAlex Beregszaszi2018-09-262-2/+4
* | Add assembly support for EXTCODEHASH (EIP-1052)Jared Wasinger2018-09-264-0/+7
|/
* Merge pull request #5089 from ethereum/gasmeterAlex Beregszaszi2018-09-263-2/+14
|\
| * Some cleanups in GasMeterAlex Beregszaszi2018-09-261-2/+2
| * Add PathGasMeter.estimateMax helperAlex Beregszaszi2018-09-261-0/+10
| * Add explanation to GasMeter::dataGasAlex Beregszaszi2018-09-261-0/+2
* | Merge pull request #5094 from ethereum/evmasm-groupingchriseth2018-09-262-24/+33
|\ \ | |/ |/|
| * Group LLL only assembly features in libevmasmAlex Beregszaszi2018-09-261-11/+18
| * Group append() functions in libevmasmAlex Beregszaszi2018-09-262-15/+17
* | Add helpers for the LOG instructionAlex Beregszaszi2018-09-262-2/+13
|/
* CREATE2 opcode has been moved from 0xfb to 0xf5Alex Beregszaszi2018-09-191-1/+1
* Merge pull request #4967 from ethereum/const-opt-costAlex Beregszaszi2018-09-183-10/+17
|\
| * Move dataGas calculation helper to GasMeterAlex Beregszaszi2018-09-183-10/+17
* | Split simplification rules into two functions.Daniel Kirchner2018-09-184-13/+62
|/
* Calculate the dataGas correctly in the constant optimiserAlex Beregszaszi2018-08-142-3/+2
* Replace safety stop by invalidLeonardo Alt2018-08-141-2/+2
* Explicitly use std::next to avoid boost version.chriseth2018-08-091-1/+1
* Use dev::toString() in Assembly instead of misusing string{} for u256Alex Beregszaszi2018-08-091-2/+2
* Fix typoLeo Arias2018-08-081-1/+1
* Added guards for unknown pragmasAugusto F. Hack2018-08-061-4/+10
* evmasm/Instruction: fixes undefined behavior of advancing iterator beyond the...Christian Parpart2018-08-031-3/+11
* Merge pull request #4473 from ethereum/fixGasTuplechriseth2018-07-111-3/+4
|\
| * Fix comparison operator for GasConsumption.chriseth2018-07-111-3/+4
* | Code, Changelog, ReleaseChecklist: Fix typos.Cryptomental2018-07-114-4/+4
|/
* As SWITCH..CASE is better than ELSE..IFKhan M Rashedun-Naby2018-07-021-8/+13
* Add TruthyAnd Peephole optimizationNicolás Venturo2018-06-151-1/+18
* Follow highest gas usage only for gas estimation.chriseth2018-05-092-5/+24
* Merge pull request #4028 from ethereum/asm-tags-32bitchriseth2018-05-021-2/+2
|\
| * Restrict assembly tags to 32-bitAlex Beregszaszi2018-05-011-2/+2
* | Add virtual destructors on base classes.Alexander Arlt2018-05-022-0/+3
|/
* Ensure that subId and tag handling is correct on all compilers in AssemblyItemAlex Beregszaszi2018-04-301-4/+12
* Fix comment typosOmar Boukli-Hacene2018-04-271-7/+7
* CMake: remove direct jsoncpp dependency in libevmasmAlexander Arlt2018-04-211-1/+1
* Remove unnecessary masking of the result of known short instructionsAlex Beregszaszi2018-04-201-0/+20
* Add constant optimiser for SHR/SHL instructionsAlex Beregszaszi2018-04-101-0/+10
* Replace comparison operators with opposites if preceded by SWAP1Alex Beregszaszi2018-04-041-1/+27
* Remove useless SWAP1 in front of commutative operationsAlex Beregszaszi2018-04-041-1/+20
* Optimize across MLOAD if MSIZE is not used.chriseth2018-04-035-7/+17
* Use EVM version in gas meter and optimizer.chriseth2018-03-058-31/+83
* Remove ROL/ROR as they are not part of EIP145 anymoreAlex Beregszaszi2018-02-272-6/+0
* Add bitwise shift operators to libevmasm (EIP145)Alex Beregszaszi2018-02-272-1/+16
* Replace MOD with AND if constant is power of 2Alex Beregszaszi2018-02-131-0/+11
* Turn simplification rule tuple into struct.chriseth2018-02-075-19/+63
* Remove recursive call to simplify with reversed arguments.chriseth2018-02-072-10/+2
* Explicitly add reversed operands for commutative operations.chriseth2018-02-071-34/+56
* Expression simplifier.chriseth2018-02-071-0/+5
* Add flag to indicate whether it can be applied to expressions with side-effects.chriseth2018-02-074-87/+104
* Move out the rule list.chriseth2018-02-072-163/+217
* Prevent libraries from being called.chriseth2018-01-195-1/+22
* Movability.chriseth2018-01-132-0/+29
* Replaced solAssert in Jumpdest optimizationIsaac van Bakel2017-11-261-3/+1
* Merge pull request #3077 from ethereum/optimze_popschriseth2017-10-172-2/+12
|\
| * Throw on too many peephole optimizer iterations.chriseth2017-10-171-1/+4
| * Assume peephole optimizer was successful if number of pops increased.chriseth2017-10-142-3/+10
* | Allow ``gas`` in view functions.chriseth2017-10-161-1/+1
|/
* Remove duplicate EVMScheduleAlex Beregszaszi2017-10-031-62/+0
* Use isDup/SwapInstruction helperAlex Beregszaszi2017-10-032-5/+3
* Add helpers for isPush/isDup/isSwapAlex Beregszaszi2017-10-021-0/+18
* CMake: Cleanup include pathsPaweł Bylica2017-09-271-1/+1
* Ensure parameter names match between headers and implementationAlex Beregszaszi2017-09-202-3/+3
* Merge pull request #2922 from ethereum/asm-bytes-requiredchriseth2017-09-181-3/+3
|\
| * Properly calculate bytesRequired for subsAlex Beregszaszi2017-09-181-3/+3
* | Add useful messages to exceptions in the assemblerAlex Beregszaszi2017-09-181-3/+3
|/
* Named assembly labels.chriseth2017-09-162-0/+14
* Merge pull request #2848 from ethereum/checkViewPurechriseth2017-09-142-0/+55
|\
| * Rename to invalidInPureFunctionschriseth2017-09-132-2/+2
| * Rename and add anonymous namespace.chriseth2017-09-062-2/+2
| * Analyze assembly.chriseth2017-09-061-0/+1
| * Add view/pure information about instructions.chriseth2017-09-062-0/+54
* | Introduce assemblyStringAlex Beregszaszi2017-09-112-0/+10
* | Do not return the stream in asssemblyStreamAlex Beregszaszi2017-09-112-4/+2
* | Split out the JSON functionality from assembly.stream()Alex Beregszaszi2017-09-112-23/+13
* | Mark functions static in libevmasmAlex Beregszaszi2017-09-112-3/+4
|/
* Merge pull request #2843 from ethereum/anonymous-cleanupchriseth2017-08-291-0/+5
|\
| * Move all file specific globals to anonymous namespaceAlex Beregszaszi2017-08-291-0/+5
* | Reconcile EVM 1.5 instruction numbers with working draft EIP615gcolvin2017-08-291-9/+11
|/
* Cleanup of vector_ref.hchriseth2017-08-261-1/+1
* Cleanup of FixedHash.hchriseth2017-08-251-1/+4
* Cleanup of Common.hchriseth2017-08-252-3/+8
* Introduce JumpdestRemover optimisation stepAlex Beregszaszi2017-08-254-10/+146
* Merge pull request #2757 from ethereum/cmakeAlex Beregszaszi2017-08-231-13/+4
|\
| * CMake: Cleanup "local" include pathPaweł Bylica2017-08-231-1/+0
| * CMake: Simplify libevmasm configPaweł Bylica2017-08-181-11/+5
| * CMake: Build static libs by defaultPaweł Bylica2017-08-181-2/+0
* | Merge pull request #2656 from ethereum/performance1chriseth2017-08-231-5/+2
|\ \
| * | Avoid some Json copy operations.chriseth2017-08-211-5/+2
| |/
* | Some smaller issues found by Covertiy ScanAlex Beregszaszi2017-08-222-1/+2
* | Switch stream properties back after temporary modificationAlex Beregszaszi2017-08-221-6/+6
* | Mark a lot of functions static (where possible)Alex Beregszaszi2017-08-222-4/+4
* | Mark appropriate constructors explicitAlex Beregszaszi2017-08-223-3/+3
* | Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-222-16/+16
|/
* Introduce fine-grained optimiser settings in libevmasmAlex Beregszaszi2017-07-272-17/+60
* Refactor exceptions and provide comment function.chriseth2017-07-132-10/+11
* MLOAD has side-effects, treat it like that in the optimiserAlex Beregszaszi2017-07-011-1/+1
* Fix negative stack size checks.chriseth2017-06-281-0/+1
* Use assertThrow where possibleAlex Beregszaszi2017-06-221-8/+5
* Replace obsolete assembly code in LLLAlex Beregszaszi2017-06-222-12/+0
* Remove debugbreak.chriseth2017-06-211-3/+3
* Merge pull request #2397 from ethereum/doublepushchriseth2017-06-153-7/+29
|\
| * Peephole optimizer for double push.chriseth2017-06-153-7/+29
* | Merge pull request #2398 from ethereum/assembly-cleanupchriseth2017-06-152-12/+8
|\ \
| * | Move subroutine helpers from CompilerContext to AssemblyAlex Beregszaszi2017-06-151-0/+7
| * | Remove single use Assembly::popToAlex Beregszaszi2017-06-151-2/+0
| * | Remove obsolete Assembly::outAlex Beregszaszi2017-06-152-8/+0
| * | Remove obsolete errorTag()Alex Beregszaszi2017-06-152-2/+1
* | | Merge branch 'develop' into asm-auxchriseth2017-06-154-5/+13
|\| |
| * | add new opcode instructions to the parserDimitry2017-06-154-5/+13
| |/
* | Print auxiliary data in the assemblyAlex Beregszaszi2017-06-151-0/+6
* | Print assembly even if there's no data sectionAlex Beregszaszi2017-06-151-1/+3
|/
* Introduce CREATE2 in the assemblerAlex Beregszaszi2017-06-144-1/+7
* Mention RETURNDATACOPY in GasMeter and SemanticInformationYoichi Hirai2017-06-132-0/+4
* libevmasm: add RETURNDATACOPY and RETURNDATASIZEYoichi Hirai2017-06-132-0/+6
* Initial EVM1.5 assembly implementation.chriseth2017-06-081-0/+9
* Rename the SHA3 assembly instruction to KECCAK256Alex Beregszaszi2017-05-308-26/+26
* Add simplification rule for SDIV(0,X) and SDIV(X,0)Alex Beregszaszi2017-05-201-0/+2
* Cleanup simplification rulesAlex Beregszaszi2017-05-201-8/+15
* Add parentheses for readability.chriseth2017-05-021-1/+1
* Fix number representation bug.chriseth2017-05-021-2/+7
* Do not use the member in checkRepresentationAlex Beregszaszi2017-04-272-4/+4
* Use OptimizerException to report errorchriseth2017-04-271-2/+6
* Add recomputation check for number representation.chriseth2017-04-272-1/+56
* libevmasm: fix sloadGas in another fileYoichi Hirai2017-04-251-1/+1
* libevmasm: add a breakYoichi Hirai2017-04-251-0/+1
* libevmasm: reflect EIP 160 gas schedule changeYoichi Hirai2017-04-251-1/+1
* libevmasm: EIP150.c gas changeYoichi Hirai2017-04-251-0/+1
* libevmasm: EIP150.a changes on SLOAD, CALL, CALLCODE, DELEGATECALL and SUICIDEYoichi Hirai2017-04-254-3/+6
* libevmadm: EIP150.a changes on EXTCODE, EXTCODESIZE and BALANCEYoichi Hirai2017-04-254-3/+9
* Initialize local variables.chriseth2017-04-121-2/+2
* Implement missing assembly output functions and do not use PushString for ass...chriseth2017-04-122-6/+14
* Add upper bound for computing constants.chriseth2017-03-032-1/+5
* Print source location before items.chriseth2017-02-241-1/+1
* Add REVERT to libevmasmAlex Beregszaszi2017-02-115-1/+7
* Rename SUICIDE opcode to SELFDESTRUCT in libevmasmAlex Beregszaszi2017-02-076-8/+8
* More verbose log of when using invalid instructionsAlex Beregszaszi2017-02-021-4/+4
* Fix optimizer with regards to INVALID instruction.chriseth2017-01-262-0/+2
* Change code for INVALID opcode to 0xfe.chriseth2017-01-262-4/+4
* Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-262-0/+4
* Create functional assembly output, if possible.chriseth2017-01-244-17/+94
* Fix error tag usage in lll.chriseth2017-01-231-1/+1
* Merge pull request #1584 from ethereum/tierchriseth2017-01-193-149/+149
|\
| * libevmasm: remove duplicate `Tier` from `Tier::xTier`sYoichi Hirai2017-01-193-149/+149
* | Provide fallback for linking.chriseth2017-01-192-6/+29
|/
* Make enum Tier into an enum classYoichi Hirai2017-01-133-141/+141
* Minor changes from review.chriseth2017-01-132-2/+1
* Windows build fix.chriseth2017-01-131-0/+2
* Fix match groups.chriseth2017-01-131-0/+1
* Fix debug output.chriseth2017-01-131-2/+8
* Optimize constant optimization.chriseth2017-01-132-37/+58
* Optimise simplification rules (sort into bins).chriseth2017-01-134-394/+514
* Optimize pattern matcher.chriseth2017-01-132-16/+22
* Optimise AssemblyItem::m_data.chriseth2017-01-134-21/+58
* Rename programSize to bytecodeSize.chriseth2017-01-031-1/+1
* Assembly output for Assembly object.chriseth2017-01-033-51/+105
* libevmasm: OpPop() optimization keeps the source locationYoichi Hirai2016-12-301-1/+1
* Fix tests.chriseth2016-12-011-2/+3
* Add swarm hash to the end of the bytecode.chriseth2016-12-012-4/+13
* libevmasm: remove an unused variable `total`Yoichi Hirai2016-12-011-3/+2
* Add more optimization rulesYoichi Hirai2016-11-301-0/+6
* Replace XOR with self with 0Alex Beregszaszi2016-11-301-0/+1
* Replace XOR/ISZERO with EQAlex Beregszaszi2016-11-301-0/+4
* Add optimiser rule for SUB with 0Alex Beregszaszi2016-11-301-1/+2
* Integrate AddPop.chriseth2016-11-252-16/+13
* Templatize.chriseth2016-11-251-37/+75
* Peephole optimizer for unreacheable code.chriseth2016-11-251-37/+73
* libevmasm: generalize ADDPOP optimization into ADDMODPOP etcYoichi Hirai2016-11-251-5/+6
* libevmasm: Add another peephole optimizationYoichi Hirai2016-11-252-3/+28
* Fix licensing headersVoR02202016-11-2331-124/+124
* Optimizer: Clear state for JUMPDESTs.chriseth2016-11-221-36/+25
* Some more assertions and style changes.chriseth2016-11-161-1/+1
* Change encoding to address-funid and add "function" as ABI type.chriseth2016-11-161-0/+1
* Fix setting the tag.chriseth2016-11-161-1/+1
* fixup! Simple peephole optimizer that is activated even if not requested.chriseth2016-11-161-0/+2
* Simple peephole optimizer that is activated even if not requested.chriseth2016-11-164-12/+223
* Converted sub assembly to smart pointer.chriseth2016-11-163-37/+62
* Stored combined creation and runtime tags.chriseth2016-11-167-52/+145
* Implement uninitialized storage functions.chriseth2016-11-161-0/+1
* Keep old code.chriseth2016-11-152-21/+30
* Report infinite gas for calls.chriseth2016-11-141-15/+19
* Merge pull request #1333 from ethereum/compare_location_fileschriseth2016-11-091-5/+10
|\
| * libevmasm: fix comparison of SourceLocationsYoichi Hirai2016-11-081-5/+10
* | Merge pull request #1252 from ethereum/jsoncpp-from-sourcechriseth2016-11-081-1/+2
|\ \ | |/ |/|
| * Build jsoncpp from source using jsoncpp.cmake scriptPaweł Bylica2016-10-211-1/+2
* | Merge pull request #1270 from ethereum/optimise-eq0chriseth2016-10-241-0/+1
|\ \
| * | Optimiser the PUSH 0, EQ case as ISZEROAlex Beregszaszi2016-10-231-0/+1
| |/
* / Optimizer: generate code starting with empty statechriseth2016-10-221-2/+4
|/
* Rename dev::sha3 to dev::keccak256Alex Beregszaszi2016-10-063-4/+4
* Explicitly specify length of push data for assembly output.chriseth2016-08-181-1/+1
* Rename libevmasm.chriseth2016-08-101-1/+1
* Merge pull request #834 from chriseth/devcorecleanupchriseth2016-08-082-5/+1
|\
| * Correct library usage.chriseth2016-08-081-1/+1
| * Some cleanup regarding libdevcore. Also rename to avoid conflicts.chriseth2016-08-062-5/+1
* | Do not install headers.chriseth2016-08-051-2/+0
|/
* Further fixes to the optimizer.chriseth2016-08-022-4/+5
* Reset knowledge in optimizer for path joins.chriseth2016-08-013-3/+12
* Make the Solidity repository standalone.Bob Summerwill2016-08-011-0/+62
* Fix warning showing up in openSUSE build.Bob Summerwill2016-06-081-1/+1
* Correctly use not/bnot/iszero.chriseth2016-05-091-2/+2
* Windows fix.chriseth2016-04-211-2/+13
* Source location for inline assembly.chriseth2016-04-201-18/+5
* Merge pull request #496 from chriseth/removelogBob Summerwill2016-04-122-10/+0
|\
| * Remove log.h from solidity.chriseth2016-04-122-10/+0
* | Make solidity independent from ethcore.chriseth2016-04-077-121/+83
|/
* reduce unnecessary solidity:: namespaceDimitry2016-04-044-8/+8
* return instructionInfo styleDimitry2016-04-049-14/+14
* enable solidity testDimitry2016-04-042-6/+6
* rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-0213-32/+33
* move libevmcore to solidityDimitry2016-04-026-4/+626
* includesDimitry2016-03-223-4/+5
* add liblll lllc libevmasmDimitry2016-03-222-4/+4
* move libevmasmDimitry2016-03-2129-0/+5102