aboutsummaryrefslogtreecommitdiffstats
path: root/liblll
Commit message (Collapse)AuthorAgeFilesLines
* 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