aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen
Commit message (Expand)AuthorAgeFilesLines
* Document appendFunctionSelectorAlex Beregszaszi2017-06-291-0/+4
* Stack adjustment and code generation for fallback function.chriseth2017-06-291-4/+6
* Fix negative stack size checks.chriseth2017-06-282-0/+11
* Merge pull request #2459 from ethereum/noComparisonForSomeTypesAlex Beregszaszi2017-06-271-0/+1
|\
| * Disallow comparisons between some types.chriseth2017-06-261-0/+1
* | Merge pull request #2453 from ethereum/memcopyAsForLoopAlex Beregszaszi2017-06-272-23/+20
|\ \ | |/ |/|
| * Comment about zero length.chriseth2017-06-271-0/+2
| * Reformat.chriseth2017-06-261-6/+9
| * Use for loop for assembly memcopy.chriseth2017-06-261-23/+15
* | Merge pull request #2460 from ethereum/disallowMultiModifierAlex Beregszaszi2017-06-262-0/+5
|\ \ | |/ |/|
| * Disallow invoking the same modifier multiple times.chriseth2017-06-242-0/+5
* | Review suggestions.chriseth2017-06-241-1/+1
* | Change invalid opcode to revert for input validation.chriseth2017-06-246-20/+52
|/
* Merge pull request #2444 from ethereum/parser-scannerAlex Beregszaszi2017-06-231-0/+1
|\
| * Avoid including Scanner.h in ParserBase.hAlex Beregszaszi2017-06-231-0/+1
* | Fix ABI encoding of empty string literal.chriseth2017-06-221-1/+1
|/
* Merge interface/Exceptions and interface/UtilsAlex Beregszaszi2017-06-223-2/+3
* Move subroutine helpers from CompilerContext to AssemblyAlex Beregszaszi2017-06-151-3/+3
* Remove obsolete errorTag()Alex Beregszaszi2017-06-151-2/+0
* Use inline assembly directly and not via AsmStackAlex Beregszaszi2017-06-091-3/+17
* Remove error reporter from code generation phase.chriseth2017-06-081-5/+1
* Initial EVM1.5 assembly implementation.chriseth2017-06-082-7/+13
* Merge pull request #2317 from ethereum/keccak256chriseth2017-05-314-8/+8
|\
| * Rename the SHA3 assembly instruction to KECCAK256Alex Beregszaszi2017-05-304-8/+8
* | Refactor error reportingRhett Aultman2017-05-301-2/+3
|/
* Adapt EVM codegen to new namespace.chriseth2017-05-262-9/+9
* Merge pull request #1810 from ethereum/compactJsonchriseth2017-05-221-3/+3
|\
| * refactoring functionCallAnnotationdjudjuu2017-05-191-3/+3
* | Refactor to abstract assembly to JULIA.chriseth2017-05-202-24/+28
|/
* Remove error label / invalid jump label.chriseth2017-04-282-23/+0
* Refactor to combined scope and stack height info.chriseth2017-04-261-1/+2
* Special case for storage types with offset zero.chriseth2017-04-251-3/+18
* Build fix.chriseth2017-04-251-1/+1
* Storage access from inline assembly.chriseth2017-04-251-10/+35
* Move analysis out of code generator.chriseth2017-04-251-1/+3
* Only allow access to local variables and only if they have a stack size of one.chriseth2017-04-251-34/+14
* Review comments.chriseth2017-04-252-2/+6
* Review comments and cleanup.chriseth2017-04-251-2/+5
* Split external identifier access into resolving and code generation.chriseth2017-04-252-80/+95
* Change references to FunctionType::LocationAlex Beregszaszi2017-03-163-86/+84
* Require and Assert.chriseth2017-03-141-2/+6
* Merge pull request #1702 from ethereum/assertErrorYoichi Hirai2017-03-041-3/+2
|\
| * Change effect of assert to invalid opcode.chriseth2017-02-161-3/+2
* | Merge pull request #1700 from ethereum/fixNoMobilechriseth2017-02-241-0/+3
|\ \
| * | Some checks for the existence of mobile type.chriseth2017-02-161-0/+3
| |/
* | Disallow setting .gas() on .transfer()Alex Beregszaszi2017-02-241-8/+4
* | Do not keep the gas stipend if sending non-zero valueAlex Beregszaszi2017-02-241-1/+1
* | Support gas modifier on addr.transfer()Alex Beregszaszi2017-02-241-1/+2
* | Implement address.transfer()Alex Beregszaszi2017-02-241-4/+15
|/
* Use the revert opcode in assert()Alex Beregszaszi2017-02-111-2/+8
* Use the REVERT opcode for throw;Alex Beregszaszi2017-02-111-1/+3
* Support revert()Alex Beregszaszi2017-02-111-0/+5
* Cleanup is not needed for assert()Alex Beregszaszi2017-02-101-1/+1
* Implement assert as a global functionAlex Beregszaszi2017-02-101-0/+8
* Rename SUICIDE opcode to SELFDESTRUCT in libevmasmAlex Beregszaszi2017-02-071-1/+1
* Warn early when exhausting stackAlex Beregszaszi2017-02-021-0/+1
* Only capture function type to address conversionAlex Beregszaszi2017-02-011-8/+10
* Be more verbose on the stack-mismatch errorsAlex Beregszaszi2017-02-011-1/+1
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-012-1/+13
* Changelog and review suggestions.chriseth2017-01-271-1/+1
* Uninitialized internal function should call INVALID.chriseth2017-01-261-1/+3
* Allow inserting low-level functions without calling them.chriseth2017-01-262-5/+26
* Split line.chriseth2017-01-261-1/+3
* Address feedback from code review.Valentin Wüstholz2017-01-262-6/+6
* Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-266-13/+31
* Warn about invalid checksums of addresses.chriseth2017-01-251-0/+1
* Include creation code only once.chriseth2017-01-251-14/+18
* Use int arithmetics for stack adjustment.chriseth2017-01-241-1/+1
* Change clearStorageLoop to TypePointer.chriseth2017-01-242-16/+18
* Use shared_ptrs to enable shared_from_this.chriseth2017-01-241-4/+4
* Convert ArrayUtils routines into low-level functions.chriseth2017-01-241-228/+251
* Move some util functions to low-level functions.chriseth2017-01-245-244/+320
* Low level named functions for CompilerContext.chriseth2017-01-242-0/+23
* Report source location on "stack too deep" errors.chriseth2017-01-212-2/+14
* Use fully-qualified names for linking, tooRhett Aultman2017-01-172-3/+3
* ast, codegen: enable accessing events through contract names.Yoichi Hirai2017-01-031-9/+33
* Merge pull request #1487 from ethereum/shift-opsYoichi Hirai2016-12-142-30/+98
|\
| * Use correct type for storing.chriseth2016-12-131-7/+7
| * Cleaner shift handling and type conversion for binary operations.chriseth2016-12-122-45/+80
| * Support bitshifting in variablesAlex Beregszaszi2016-12-122-9/+42
* | Renamed padToWordBoundaries -> padToWordschriseth2016-12-132-14/+14
* | Split memcopy into three functions.chriseth2016-12-123-54/+79
* | Fix inline assembly.chriseth2016-12-121-1/+2
* | Reset stack height after inline assembly blockAlex Beregszaszi2016-12-121-0/+1
* | Better assert message for appendInlineAssembnlyAlex Beregszaszi2016-12-121-1/+1
* | Implement identity call in inline assemblyAlex Beregszaszi2016-12-121-14/+21
* | Turn off the identity precompile for testingAlex Beregszaszi2016-12-121-1/+1
* | Implement CompilerUtils::memoryCopy using inline assemblyAlex Beregszaszi2016-12-121-1/+26
* | Add usingIdentity option to CompilerUtils::memoryCopyAlex Beregszaszi2016-12-122-2/+9
|/
* Merge pull request #1351 from ethereum/truncate_bitchriseth2016-12-083-3/+5
|\
| * codegen: clean not only booleans but all types before storing them into memoryYoichi Hirai2016-12-012-4/+3
| * codegen: clean any data from the inputYoichi Hirai2016-12-011-2/+2
| * codegen: truncate booleans before they enter storageYoichi Hirai2016-12-011-1/+0
| * codegen: cleanup booleans before storing them into memoryYoichi Hirai2016-12-011-0/+2
| * codegen: truncate a boolean calldata down to one bitYoichi Hirai2016-12-011-0/+2
* | Throw if calling the identity precompile (memoryCopy) failedAlex Beregszaszi2016-12-021-1/+2
* | Use CBOR encoding.chriseth2016-12-012-3/+3
* | Fix tests.chriseth2016-12-012-10/+0
* | Add swarm hash to the end of the bytecode.chriseth2016-12-013-12/+3
* | Metadata stamp.chriseth2016-12-014-7/+16
* | Merge pull request #1462 from ethereum/fix-incorrect-assertionchriseth2016-12-011-1/+1
|\ \
| * | codegen: assertion did not assert non-nullnessYoichi Hirai2016-12-011-1/+1
| |/
* / codegen: this commit removes one of duplicate assignmentsYoichi Hirai2016-12-011-2/+0
|/
* Use solUnimplemented wherever possibleAlex Beregszaszi2016-11-282-3/+3
* codegen: cleanup values to fit in storage bytesYoichi Hirai2016-11-251-0/+4
* codegen: storing of non-value types; add some assertionsYoichi Hirai2016-11-251-8/+5
* codegen: shorten the bit truncationYoichi Hirai2016-11-251-5/+2
* codegen: merge type conversion and cleaning upYoichi Hirai2016-11-251-3/+2
* codegen: document _chopSignBits parameter of convertType functionYoichi Hirai2016-11-251-0/+1
* codegen: add an option to CovertType so that it can truncate sign bitsYoichi Hirai2016-11-253-10/+22
* codegen: cleanup stored values in a more consistent wayYoichi Hirai2016-11-251-4/+16
* codegen: cleanup value types before storing themYoichi Hirai2016-11-241-0/+5
* Fix licensing headersVoR02202016-11-2314-56/+56
* Add appendCallValueCheckAlex Beregszaszi2016-11-182-20/+14
* Add payable check for constructor in codegenAlex Beregszaszi2016-11-181-0/+12
* Some more assertions and style changes.chriseth2016-11-161-1/+1
* Change encoding to address-funid and add "function" as ABI type.chriseth2016-11-162-14/+19
* Simple peephole optimizer that is activated even if not requested.chriseth2016-11-162-5/+3
* Converted sub assembly to smart pointer.chriseth2016-11-165-48/+50
* Stored combined creation and runtime tags.chriseth2016-11-169-59/+122
* Fix tests.chriseth2016-11-161-1/+11
* codegen: add a compilation mode and a runtime context to CompilerContextYoichi Hirai2016-11-164-6/+23
* Implement uninitialized storage functions.chriseth2016-11-162-11/+17
* Bugfix in code generator.chriseth2016-11-161-1/+1
* Change alignment.chriseth2016-11-163-30/+42
* External functions in storage.chriseth2016-11-163-18/+49
* Code generator for function types.chriseth2016-11-162-1/+34
* Unimplemented features moved to their own exception (#1361)Rhett Aultman2016-11-155-17/+17
* Merge pull request #1372 from ethereum/invalid_enum_as_external_retchriseth2016-11-151-2/+2
|\
| * codegen: overflow checking also during conversion from enumsYoichi Hirai2016-11-151-2/+2
* | codegen: add a missing `break;`Yoichi Hirai2016-11-141-0/+1
|/
* codegen: move the enum overflow checking closer to the conversion into enumsYoichi Hirai2016-11-141-8/+16
* ast, codegen: disallow conversion between different enum typesYoichi Hirai2016-11-121-1/+1
* codegen: shorten the overflow checking when converting into enumsYoichi Hirai2016-11-121-1/+2
* codegen: check the value range after converting something to an enum elementYoichi Hirai2016-11-121-0/+8
* Add support for do/while loopsRhett Aultman2016-11-101-3/+16
* Clear all value types prior to storing.chriseth2016-10-311-7/+1
* Merge pull request #1264 from ethereum/988chriseth2016-10-252-9/+16
|\
| * codegen: refactor common codeYoichi Hirai2016-10-242-20/+15
| * codegen: if a member access has been resolved as a variable, follow thatYoichi Hirai2016-10-241-0/+12
* | More checks for missing mobile type.chriseth2016-10-242-5/+16
|/
* codegen: skip contract L for L.Foo where Foo is a typeYoichi Hirai2016-10-241-1/+6
* Allow warnings for inline assembly blockAlex Beregszaszi2016-10-201-1/+1
* Rename dev::sha3 to dev::keccak256Alex Beregszaszi2016-10-061-1/+1
* Merge pull request #1104 from ethereum/fixmemcostschriseth2016-09-171-4/+13
|\
| * Access output memory area so that we do not pay for resize during call.chriseth2016-09-171-4/+13
* | Allow value transfer to library functions.chriseth2016-09-171-1/+3
|/
* Provide gas stipend manually for send(0).chriseth2016-09-061-1/+6
* Merge pull request #665 from axic/feature/accept-etherchriseth2016-09-062-0/+16
|\
| * Change function type to include and propagate payable and constant modifier.chriseth2016-09-062-0/+8
| * Merged in changes from chriseth/payableAlex Beregszaszi2016-09-061-11/+2
| * Support payable keyword for functionsAlex Beregszaszi2016-09-061-0/+17
* | Merge pull request #1006 from ethereum/nenewaccountgaschriseth2016-09-061-1/+3
|\ \ | |/ |/|
| * Do not pay new account gas.chriseth2016-09-051-1/+3
* | Improve error message.chriseth2016-09-051-1/+1
* | Guard encoding crashes with assertions.chriseth2016-09-021-0/+8
|/
* Make fallback function throw by default.chriseth2016-08-301-4/+1
* Merge pull request #839 from chriseth/checkcodechriseth2016-08-171-0/+7
|\
| * Make function calls throw if target does not have code.chriseth2016-08-171-0/+7
* | Merge pull request #888 from chriseth/throwOnDivZerochriseth2016-08-171-3/+10
|\ \
| * | Throw on division by zero.chriseth2016-08-171-3/+10
| |/
* / BREAKING: return only exits current function/modifierchriseth2016-08-172-35/+45
|/
* Merge pull request #838 from chriseth/ecrecoverchriseth2016-08-171-5/+38
|\
| * Actually better to return zero on error.chriseth2016-08-161-2/+0
| * Make ecrecover throw for malformed input.chriseth2016-08-161-5/+40
* | Provide inline assembly to the code generator. (#840)chriseth2016-08-163-0/+58
* | Throw if contract creation fails.chriseth2016-08-161-0/+3
|/
* Remove After from ExpressionCompilerDenton Liu2016-08-111-3/+0
* Merge pull request #722 from NicolaiSoeborg/developchriseth2016-08-112-2/+2
|\
| * Remove the remains of "expresison"Nicolai2016-07-152-2/+2
* | Fix identity precompile gas calculationAlex Beregszaszi2016-08-061-2/+2
* | Bugfix: Allocate empty array.chriseth2016-07-282-3/+7
|/
* Merge pull request #641 from axic/patch/shift-parserchriseth2016-06-091-0/+2
|\
| * Include SHR case in ExpressionCompiler::appendShiftOperatorCodeAlex Beregszaszi2016-06-081-0/+2
* | Disallow implementation of abstract function by constructor of derived class.chriseth2016-06-071-0/+3
|/
* Fixes for invalid cleanups for small types.chriseth2016-05-202-9/+15
* Refactor compiler to avoid weird swap of contextschriseth2016-05-204-871/+999
* Allow access to functions in inline assembly.chriseth2016-05-122-14/+13
* Remove unused tests and add asserts for not implemented parts in code generat...chriseth2016-05-113-10/+13
* added bytes conversion tests, resolved that, converted to binary scaling, ref...VoR02202016-05-101-1/+0
* fixing modulus and Solidity Name and Type ResolutionVoR02202016-05-101-1/+1
* changed names for Rational Constants and categoriesVoR02202016-05-102-9/+9
* got exponents up and working with their inverse, changed a few of the tests.....RJ Catalano2016-05-101-13/+0
* initial work for fixed types...potentially needing a constant literal type fo...RJ Catalano2016-05-103-8/+42
* Allow calling internal functions of libraries.chriseth2016-05-043-33/+75
* Remove non-determinism in missing code queue.chriseth2016-05-034-37/+95
* Bugfix: static arrays in constructor argumentschriseth2016-04-161-1/+1
* Fix for bug about deleting dynamic array of structs.chriseth2016-04-151-1/+1
* Make solidity independent from ethcore.chriseth2016-04-072-10/+6
* reduce unnecessary solidity:: namespaceDimitry2016-04-047-535/+535
* enable solidity testDimitry2016-04-041-1/+1
* rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-027-535/+535
* move libevmcore to solidityDimitry2016-04-025-5/+5
* Correctly clean higher order bits for index access.chriseth2016-03-311-0/+2
* Code generation (missing external access and source locations).chriseth2016-03-303-0/+89
* Fixed Windows warningsBob Summerwill2016-03-181-1/+2
* BREAKING: Implement delegatecall and make default for library calls.chriseth2016-03-123-18/+23
* Index access for bytesXX.chriseth2016-02-101-0/+26
* [cond-expr] fixup according to code reviewLu Guanqun2016-01-231-1/+3
* [cond-expr] make the codegen one instruction lessLu Guanqun2016-01-231-5/+4
* [cond-expr] generate assembly for _ ? _ : _Lu Guanqun2016-01-232-0/+16
* Detect library name clashes.chriseth2016-01-141-2/+0
* final changes to typechecker, the expression compiler, and a couple more test...RJ Catalano2016-01-121-8/+7
* Update ExpressionCompiler.cppRJ2016-01-111-14/+16
* Update ExpressionCompiler.cppRJ2016-01-111-4/+2
* Update ExpressionCompiler.cppRJ2016-01-101-17/+39
* support decayed tuple expression as left valueLu Guanqun2016-01-041-1/+6
* Add structs and enums to contract types.chriseth2015-12-181-7/+9
* Fix: Segfaults connected to paramater types.chriseth2015-12-101-2/+2
* Code generation for calling bound methods.chriseth2015-12-011-4/+37
* Simplify and optimise stack rotation.chriseth2015-12-012-8/+27
* Merge pull request #251 from chriseth/bind2chriseth2015-11-301-1/+1
|\
| * Add bound functions to types.chriseth2015-11-291-1/+1
* | Merge pull request #256 from chriseth/selfdestructchriseth2015-11-301-1/+1
|\ \
| * | Introduce selfdestruct alias for suicide.chriseth2015-11-291-1/+1
| |/
* / Bugfix for constructor unpacking with fixed-size arrays.chriseth2015-11-291-5/+13
|/
* Do not store elements of a contract by AST node type.chriseth2015-11-262-4/+4
* Make members context-sensitive.chriseth2015-11-263-10/+6
* Code generation for creating arrays.chriseth2015-11-263-9/+67
* Fixed string inside struct allocation bug.chriseth2015-11-244-10/+3
* Merge pull request #236 from ethereum/hot_gavGav Wood2015-11-233-9/+10
|\
| * Fix up for new API from EIP-1.1.Gav Wood2015-11-213-9/+10
* | Merge pull request #227 from chriseth/addmodchriseth2015-11-191-0/+14
|\ \
| * | Addmod and mulmod.chriseth2015-11-191-0/+14
* | | Merge pull request #204 from ethereum/hot_gavGav Wood2015-11-191-2/+4
|\ \ \ | |/ / |/| / | |/
| * Minor API change - must provide SealEngine to Executive now.Gav Wood2015-11-191-2/+4
* | Merge pull request #218 from chriseth/fix_overwriteMemorychriseth2015-11-171-3/+13
|\ \
| * | Fix memory overwrite problem for arrays.chriseth2015-11-171-3/+13
| |/
* / Fix dynamic indexed event arguments - applies sha3.chriseth2015-11-171-5/+18
|/
* Bugfix: Returning literal strings in tuples.chriseth2015-11-012-2/+6
* Fix override warning.chriseth2015-10-231-1/+1
* File reorganisation.chriseth2015-10-2112-0/+5667