aboutsummaryrefslogtreecommitdiffstats
path: root/liblll
Commit message (Collapse)AuthorAgeFilesLines
* make use of C++ `= default` constructor declarations as well as more ↵Christian Parpart2018-12-191-1/+1
| | | | non-static member initialization syntax.
* Add headers to targets in CMakeLists.txt.Daniel Kirchner2018-12-171-0/+5
|
* Replace push_back with emplace_back where it makes senseMathias Baumann2018-12-112-13/+13
|
* CMake: Explicitly state which files to compile instead of relying on globbing.Christian Parpart2018-11-261-3/+7
| | | | | Also remove header file lists, as there is no need to add them to add_library() or add_executable(), which should lower maintenance of the cmake files.
* Isolating files shared between Yul- and Solidity language frontend.Christian Parpart2018-11-221-1/+1
|
* LLL: implement WITH keywordAlex Beregszaszi2018-11-211-0/+29
|
* LLL: add UNSET to remove a variableAlex Beregszaszi2018-11-211-0/+10
|
* Add LLL error when assembly instruction causes stack underflowAlex Beregszaszi2018-11-131-1/+6
|
* LLL: terminate sequences with a STOPAlex Beregszaszi2018-11-131-0/+4
|
* Eliminate `byte`-typedef and use `uint8_t` in all their places instead.Christian Parpart2018-11-071-1/+1
| | | | | | | | | | | This change is made to (easily) be forward compatible with future C++ standards, in order to allow compiling the code with newer standards at some point in the future. * Removed the `using byte = uint8_t;` line from Common.h * Mechanically change all uses of `byte` to `uint8_t`. Tested with GCC 7.3 in C++11/14/17 modes :-)
* fix code format problemsliangdzou2018-09-192-2/+4
|
* Merge pull request #4753 from mattaereal/boost-to-string-patchAlex Beregszaszi2018-08-081-1/+1
|\ | | | | Replace boost:lexical_cast<std::string> for std::to_string.
| * Removing std:: from std::to_string and include for boost/lexical_castMatías Aereal Aeón2018-08-081-1/+1
| |
* | Added guards for unknown pragmasAugusto F. Hack2018-08-061-2/+8
|/ | | | | | | | | | | | | | | Removed push/pop if there was no change to the warnings *in the same file* for a given compiler. This assumes the imported boost headers use a warning stack themselves. The pragmas don't seem to be required anymore, but were not removed to mantain compatibility with older versions of the boost library. Compiled with - clang version 6.0.1 (tags/RELEASE_601/final) - gcc (GCC) 8.1.1 20180531 against: - libboost 1.67.0-5
* Replace dev::eth namespace with dev::lll in LLLAlex Beregszaszi2018-07-289-21/+23
|
* Use EVM version in gas meter and optimizer.chriseth2018-03-052-12/+14
|
* lll: disallow useless PUSHn in assemblyAlex Beregszaszi2017-10-131-17/+27
|
* LLL: do not crash if import callback is nullAlex Beregszaszi2017-10-031-0/+2
|
* LLL: change (include) to use a callbackAlex Beregszaszi2017-10-035-21/+28
|
* lll: do not expose push/dup/swap/jumpdest as functionsAlex Beregszaszi2017-10-021-1/+17
|
* Merge pull request #2622 from benjaminion/lll-switchAlex Beregszaszi2017-10-021-0/+38
|\ | | | | LLL: Implement a "switch" expression
| * LLL: Implement a switch expression.benjaminion2017-10-021-0/+38
| |
* | lll: better error reporting in some casesAlex Beregszaszi2017-10-021-7/+7
|/
* Introduce assemblyStringAlex Beregszaszi2017-09-111-3/+2
|
* Split out the JSON functionality from assembly.stream()Alex Beregszaszi2017-09-111-1/+1
|
* Merge pull request #2757 from ethereum/cmakeAlex Beregszaszi2017-08-231-17/+4
|\ | | | | Static linking
| * CMake: Cleanup "local" include pathPaweł Bylica2017-08-231-1/+0
| |
| * CMake: Make libs dependencies explicitPaweł Bylica2017-08-211-1/+1
| |
| * CMake: Simplify liblll configPaweł Bylica2017-08-181-15/+5
| |
| * CMake: Build static libs by defaultPaweł Bylica2017-08-181-2/+0
| |
* | Mark a lot of functions static (where possible)Alex Beregszaszi2017-08-221-2/+2
| |
* | Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-222-2/+2
|/
* Merge pull request #2573 from benjaminion/lll-error-report-symbolAlex Beregszaszi2017-07-201-11/+11
|\ | | | | LLL: Improve error reporting in certain cases.
| * LLL: Improve error reporting in certain cases.benjaminion2017-07-161-11/+11
| |
* | Merge pull request #2592 from ethereum/lll-simplifyYoichi Hirai2017-07-191-5/+1
|\ \ | | | | | | LLL: remove useless code
| * | LLL: remove useless codeAlex Beregszaszi2017-07-191-5/+1
| |/
* / LLL: disable optimiser entirely if requestedAlex Beregszaszi2017-07-191-2/+8
|/
* LLL: rewrite alloc to avoid issues with edge cases.benjaminion2017-07-122-6/+24
|
* LLL: fix redefinitions on some compilersAlex Beregszaszi2017-06-241-1/+5
|
* LLL: remove obsolete headerAlex Beregszaszi2017-06-231-6/+0
|
* LLL: fix the set keyword (create symbol if not present)Alex Beregszaszi2017-06-231-3/+13
|
* LLL: report correct name if a symbol was not foundAlex Beregszaszi2017-06-231-1/+1
|
* LLL: do not allow empty variable namesAlex Beregszaszi2017-06-231-0/+2
|
* Merge pull request #2440 from ethereum/lll-includechriseth2017-06-221-1/+7
|\ | | | | LLL: better error reporting in (include)
| * LLL: report errors if (include) failedAlex Beregszaszi2017-06-221-1/+7
| |
* | LLL: Fix msg macro with six arguments.benjaminion2017-06-221-1/+2
| | | | | | | | | | | | The previous macro used the set built-in in a way incompatible with the current implementation of set. This commit updates the macro to be more transparent in how it's working and avoids the use of the set and alloc built-ins.
* | Merge pull request #2415 from benjaminion/lll-fix-create-macrochriseth2017-06-221-2/+3
|\ \ | | | | | | LLL: Fix for edge case in the create macros.
| * | LLL: Fix for edge case in the create macros.benjaminion2017-06-221-2/+3
| |/ | | | | | | | | | | When (msize) is initially zero the previous create commands failed due to the "lll" expression overwriting the memory at 0x00. This fix "reserves" memory location 0x00 before calling msize. If msize is already 32 or greater it has no effect.
* | Merge pull request #2399 from ethereum/lll-ifchriseth2017-06-221-8/+11
|\ \ | |/ |/| LLL: Replace obsolete assembly code
| * Replace obsolete assembly code in LLLAlex Beregszaszi2017-06-221-8/+11
| |
* | LLL: Correctly label arguments to ecrecover built-in macro.benjaminion2017-06-221-1/+1
|/ | | | (r s v hash) -> (hash v r s) which corresponds to the order that the built-in EVM contract uses.
* Move subroutine helpers from CompilerContext to AssemblyAlex Beregszaszi2017-06-151-2/+1
|
* Remove single use Assembly::popToAlex Beregszaszi2017-06-151-1/+3
|
* Remove obsolete Assembly::outAlex Beregszaszi2017-06-151-2/+3
|
* Support shl/shr in LLLAlex Beregszaszi2017-06-141-0/+3
|
* LLL: fix handling of "sha3" expressionbenjaminion2017-06-141-1/+1
| | | | | | When PR #2317 changed the EVM opcode from SHA3 to KECCAK256 it broke the `(sha3 loc len)` expression in LLL. This PR fixes things while allowing existing code using the sha3 expression (such as the ENS registrar) to continue to compile. I.e. both `(keccak256 loc len)` and `(sha3 loc len)` may be used, and the existing related sha3 macros continue to work. Three end-to-end test cases have been added for kekkac256 and sha3.
* Change opcode generated by (panic) to INVALIDbenjaminion2017-06-142-4/+1
| | | | | | EIP-141 ethereum/EIPs#141 has preserved 0xfe as an invalid opcode for aborting EVM execution. The EVM assembler supports this via the INVALID opcode. The LLL "panic" expression used to generate a jump to an invalid location in order to abort EVM execution. This change brings "panic" into line with EIP-141 by generating the INVALID opcode instead.
* liblll: allow macros with no argumentsYoichi Hirai2017-06-121-1/+1
|
* Replace cpp-ethereum with solidity in the license headersAlex Beregszaszi2017-02-029-36/+36
|
* LLL: throw exceptions on invalid symbolsAlex Beregszaszi2016-12-011-12/+6
|
* LLL: () requires at least one parameterAlex Beregszaszi2016-12-011-1/+1
|
* LLL: do not accept '0x' as 0Alex Beregszaszi2016-12-011-1/+1
|
* LLL: simplify error handling in parseLLLAlex Beregszaszi2016-11-301-11/+3
|
* LLL: parseLLL to be less greedy catching exceptionsAlex Beregszaszi2016-11-301-6/+19
|
* LLL: parseLLL to return empty string on failureAlex Beregszaszi2016-11-301-5/+6
|
* Merge pull request #1329 from ethereum/lll-lit-changesAlex Beregszaszi2016-11-261-19/+20
|\ | | | | LLL: improvements (and fixes) to the lit keyword
| * LLL: simplify the LIT parsing codeAlex Beregszaszi2016-11-261-5/+17
| |
| * LLL: only support variable length bigendian numbers in LITAlex Beregszaszi2016-11-011-13/+2
| |
| * LLL: support multiple strings in LITAlex Beregszaszi2016-11-011-2/+2
| |
* | Converted sub assembly to smart pointer.chriseth2016-11-161-1/+2
| |
* | Stored combined creation and runtime tags.chriseth2016-11-161-2/+2
| | | | | | | | | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought.
* | Merge pull request #1252 from ethereum/jsoncpp-from-sourcechriseth2016-11-081-3/+0
|\ \ | | | | | | Build jsoncpp from source using jsoncpp.cmake script
| * | Build jsoncpp from source using jsoncpp.cmake scriptPaweł Bylica2016-10-211-3/+0
| | |
* | | LLL: add bytecodesize keyword to push resulting bytecode sizeAlex Beregszaszi2016-11-021-0/+4
| | |
* | | LLL: properly support dashes (-) as part of variable namesAlex Beregszaszi2016-11-011-2/+2
| | |
* | | LLL: simplify integer parsingAlex Beregszaszi2016-11-011-2/+2
| | |
* | | LLL: catch and display spirit::qi errorsAlex Beregszaszi2016-11-011-2/+11
| | |
* | | LLL: update exception messageAlex Beregszaszi2016-11-011-4/+3
| | |
* | | LLL: remove unneeded includesAlex Beregszaszi2016-11-011-3/+0
| | |
* | | LLL: report back unsupported keywordsAlex Beregszaszi2016-11-011-1/+1
| | |
* | | LLL: support passing error reasonsAlex Beregszaszi2016-11-011-0/+5
| |/ |/|
* | Merge pull request #1302 from ethereum/lll-panicchriseth2016-10-281-0/+4
|\ \ | | | | | | LLL: introduce panic keyword
| * | LLL: introduce panic keywordAlex Beregszaszi2016-10-271-0/+4
| | |
* | | Added support for `until`, the inverse of `while`.Daniel Ellison2016-10-261-2/+3
|/ /
* | LLL: reorder arithmetic/binary instruction list for readabilityAlex Beregszaszi2016-10-261-3/+26
| |
* | LLL: use NOT for ~Alex Beregszaszi2016-10-261-10/+1
| |
* | LLL: replace (1 0 sub) with literal valueAlex Beregszaszi2016-10-261-3/+1
|/
* Merge pull request #1228 from ethereum/lll-units-parserchriseth2016-10-192-7/+5
|\ | | | | LLL: move broken parsing of Ethereum subunits to macros
| * LLL: add Ethereum subunit macrosAlex Beregszaszi2016-10-151-0/+4
| |
| * LLL: remove Ethereum subunits from the parserAlex Beregszaszi2016-10-151-7/+1
| |
* | LLL: throw proper ParserExceptionAlex Beregszaszi2016-10-153-2/+5
| |
* | LLL: fix the commented out debugging codeAlex Beregszaszi2016-10-151-8/+9
| |
* | LLL: better error reportingAlex Beregszaszi2016-10-151-6/+24
|/
* Removed obsolete built in macros. Added a new macro to support the use of ↵Daniel Ellison2016-10-131-9/+1
| | | | 'keccak256' in addition to 'sha3'.
* Rename libevmasm.chriseth2016-08-101-1/+1
|
* Do not install headers.chriseth2016-08-051-2/+0
|
* Suppress a warning in LLL parser on MSVC 2015Paweł Bylica2016-05-131-0/+4
|
* Remove log.h from solidity.chriseth2016-04-121-1/+0
|
* return instructionInfo styleDimitry2016-04-041-1/+1
|
* rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-021-1/+1
|
* move libevmcore to solidityDimitry2016-04-022-2/+2
|
* Move libevmasm and lll.chriseth2016-03-241-1/+1
|
* includesDimitry2016-03-221-1/+1
|
* move liblllDimitry2016-03-2111-0/+1181