aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen/CompilerUtils.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Split IntegerType into IntegerType and AddressType.Daniel Kirchner2018-09-051-7/+20
|
* Remove remaining instances of ``fillRight`` left over from tuple wildcards ↵Daniel Kirchner2018-08-081-10/+2
| | | | assignments.
* Isolate determining the encoding type into its own function.chriseth2018-08-011-12/+5
|
* Merge pull request #4083 from ethereum/variable_stack_slotchriseth2018-07-121-0/+9
|\ | | | | [BREAKING] Allocate local variables according to their scope
| * Add more tests and assertionsLeonardo Alt2018-07-111-0/+1
| |
| * Added tests and review suggestionsLeonardo Alt2018-07-111-0/+8
| |
* | Code, Changelog, ReleaseChecklist: Fix typos.Cryptomental2018-07-111-2/+2
|/ | | | Refs: #4442
* Fix allocation of byte arrays.chriseth2018-07-051-1/+1
|
* Revert if calldata is too short or points out of boundsLeonardo Alt2018-06-261-46/+32
|
* Change commentsAlex Beregszaszi2018-06-141-2/+2
|
* Fix revert with reason coming from a string variableAlex Beregszaszi2018-05-091-1/+0
|
* fixed grammar in error in CompilerUtils.cpp line 399, 'less variables.' ↵njwest2018-05-071-3/+3
| | | | should be 'fewer variables.'
* Change bytes to unsigned in FixedBytesTypedaniel2018-05-041-2/+2
|
* Removed signed shift right from the utilities.chriseth2018-05-011-9/+9
|
* Do not use SAR instead of SDIV in shifts because it rounds differentlyAlex Beregszaszi2018-05-011-2/+3
|
* Use native shift instructions on ConstantinopleAlex Beregszaszi2018-05-011-2/+8
|
* Properly force-clean for shortening bytesXX conversions.chriseth2018-04-161-10/+9
|
* Use error signature for revert data.chriseth2018-04-121-0/+14
|
* Bubble up error messages.chriseth2018-04-121-0/+1
|
* Create empty dynamic memory arrays more efficiently.chriseth2018-04-041-8/+22
|
* Optimize across MLOAD if MSIZE is not used.chriseth2018-04-031-8/+28
|
* Prevent encoding of weird types and support packed encoding of external ↵chriseth2018-03-291-1/+0
| | | | function types.
* Add runtimeOnly option to pushCombinedFunctionEntryLabelAlex Beregszaszi2018-03-271-4/+5
|
* Decode dynamic data.chriseth2018-03-211-2/+2
|
* Simple size check for old ABI decoder.chriseth2018-03-211-29/+88
|
* Move the old ABI decoder code.chriseth2018-03-201-0/+99
|
* ABI decoder.chriseth2017-11-301-0/+17
|
* Add explanation to unimplemented assertionsAlex Beregszaszi2017-11-161-1/+1
|
* Split encodeToMemory to packedEncode and abiEncodeAlex Beregszaszi2017-09-271-2/+2
|
* Ensure that address types are always declared as 160bitAlex Beregszaszi2017-09-271-1/+1
|
* Simplify switch statements by refactoring internal break statementsAlex Beregszaszi2017-09-251-6/+6
|
* Avoid switch fallthrough in CompilerUtilsAlex Beregszaszi2017-09-251-6/+3
|
* Implement struct encoder.chriseth2017-09-161-1/+1
|
* Move ABI encoder into its own function.chriseth2017-09-161-12/+7
|
* Named assembly labels.chriseth2017-09-161-1/+1
|
* Mark to places fall-throughAlex Beregszaszi2017-08-251-0/+1
|
* Experimental feature switch for ABI encoder.chriseth2017-08-141-2/+5
|
* Interface for new ABI encoder.chriseth2017-08-141-0/+32
|
* Change fixed point types to have digit countVoR02202017-07-201-1/+1
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Add assert to shift helperAlex Beregszaszi2017-07-031-0/+2
|
* More uses of shift helperAlex Beregszaszi2017-07-031-6/+10
|
* Change shiftNumberOnStack to bitsAlex Beregszaszi2017-07-031-9/+9
|
* Use shift helperAlex Beregszaszi2017-07-031-6/+6
|
* Add shift helper to CompilerUtilsAlex Beregszaszi2017-07-031-0/+10
|
* Abort early if there is nothing to encode or decode.chriseth2017-06-301-0/+3
|
* Reformat.chriseth2017-06-261-6/+9
|
* Use for loop for assembly memcopy.chriseth2017-06-261-23/+15
|
* Change invalid opcode to revert for input validation.chriseth2017-06-241-3/+12
|
* Fix ABI encoding of empty string literal.chriseth2017-06-221-1/+1
|
* Rename the SHA3 assembly instruction to KECCAK256Alex Beregszaszi2017-05-301-1/+1
|
* Remove error label / invalid jump label.chriseth2017-04-281-19/+0
|
* Change references to FunctionType::LocationAlex Beregszaszi2017-03-161-4/+4
|
* Warn early when exhausting stackAlex Beregszaszi2017-02-021-0/+1
|
* Only capture function type to address conversionAlex Beregszaszi2017-02-011-8/+10
|
* Support explicit conversion of external function type to addressAlex Beregszaszi2017-02-011-0/+12
|
* Uninitialized internal function should call INVALID.chriseth2017-01-261-1/+3
|
* Change translation of implicit throws (issue #1589).Valentin Wüstholz2017-01-261-3/+3
| | | | | | | This adds a new invalid instruction that is used for encoding implicit throws that are emitted by the compiler. This makes it possible to distinguish such runtime errors from user-provided, explicit throws.
* Move some util functions to low-level functions.chriseth2017-01-241-29/+38
|
* Renamed padToWordBoundaries -> padToWordschriseth2016-12-131-5/+5
|
* Split memcopy into three functions.chriseth2016-12-121-51/+63
|
* Implement identity call in inline assemblyAlex Beregszaszi2016-12-121-14/+21
|
* Implement CompilerUtils::memoryCopy using inline assemblyAlex Beregszaszi2016-12-121-1/+26
|
* Add usingIdentity option to CompilerUtils::memoryCopyAlex Beregszaszi2016-12-121-1/+8
|
* Merge pull request #1351 from ethereum/truncate_bitchriseth2016-12-081-1/+4
|\ | | | | Truncate a boolean from calldata into one bit
| * codegen: clean not only booleans but all types before storing them into memoryYoichi Hirai2016-12-011-3/+2
| |
| * codegen: clean any data from the inputYoichi Hirai2016-12-011-2/+2
| |
| * 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
|/
* codegen: cleanup values to fit in storage bytesYoichi Hirai2016-11-251-0/+4
|
* codegen: shorten the bit truncationYoichi Hirai2016-11-251-5/+2
|
* codegen: add an option to CovertType so that it can truncate sign bitsYoichi Hirai2016-11-251-1/+19
|
* Fix licensing headersVoR02202016-11-231-4/+4
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* 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-13/+18
|
* Stored combined creation and runtime tags.chriseth2016-11-161-0/+13
| | | | | | | Includes a change to Assembly to allow tags from sub-assemblies to be used. Sorry, this get a bit bigger than I thought.
* Change alignment.chriseth2016-11-161-23/+35
|
* External functions in storage.chriseth2016-11-161-11/+17
|
* Code generator for function types.chriseth2016-11-161-1/+33
|
* Unimplemented features moved to their own exception (#1361)Rhett Aultman2016-11-151-5/+5
| | | | | | | | | | | | | | | | | | Unimplemented features moved to their own exception InternalCompilerError is an exception that really should be reserved for actual internal errors of the compiler. Unimplemented features can now use either solUnimplemented( ) or, if it should be conditional, then solUnimplementedAssert( ). * Revert some unimplemented exceptions, add handlers The jsonCompiler and CommandLineInterface needed handlers for the new UnimplementedFeatureException, and some cases I had moved on to the new exception were better treated as real internal compiler errors. * Standardize on "Unimplemented feature" message
* Merge pull request #1372 from ethereum/invalid_enum_as_external_retchriseth2016-11-151-2/+2
|\ | | | | Invalid enum as external ret
| * 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
|
* More checks for missing mobile type.chriseth2016-10-241-0/+3
|
* Improve error message.chriseth2016-09-051-1/+1
|
* Guard encoding crashes with assertions.chriseth2016-09-021-0/+8
|
* Fix identity precompile gas calculationAlex Beregszaszi2016-08-061-2/+2
|
* Fixes for invalid cleanups for small types.chriseth2016-05-201-7/+10
|
* Remove unused tests and add asserts for not implemented parts in code ↵chriseth2016-05-111-3/+4
| | | | | | | | | | | | generation. quick fix on christian's rational change so that ubuntu will stop yelling be more specific with rational declaration for Windows sake rational in namespace correction for windows
* fixing modulus and Solidity Name and Type ResolutionVoR02202016-05-101-1/+1
| | | | | | minor fixes current attempts at binary fixup
* changed names for Rational Constants and categoriesVoR02202016-05-101-5/+5
|
* got exponents up and working with their inverse, changed a few of the ↵RJ Catalano2016-05-101-13/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | tests....something is working that likely shouldn't be slight changes to how to flip the rational negative around...still trying to figure it out tests added updated tests odd differences in trying soltest from solc binary, let me know if you can replicate test not working for odd reason fixed test problem with fixed literals...still need a way to log this error broken up the tests, added some, changed some things in types and began compiler work moar tests and prepping for rebuilding much of the types.cpp file further fixing infinite loop still happening but it's somewhere in the fixedPoint methodd fractional bits needed algo improved! Eliminated 2 errors Corrected problems with the previous commit. No infinite loops. Actually appear to have corrected an error
* initial work for fixed types...potentially needing a constant literal type ↵RJ Catalano2016-05-101-4/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for this notation Rational implemented...trying to figure out exponential fix for token bug, also quick fix for the wei and seconds fixed problem with var...probably a conversion problem for fixed in size capabilities adding fixed type tests Removing bitshift and regrouping fixed type tests together size capabilities functioning properly for fixed types got exponents up and working with their inverse, changed a few of the tests....something is working that likely shouldn't be slight changes to how to flip the rational negative around...still trying to figure it out tests added updated tests odd differences in trying soltest from solc binary, let me know if you can replicate test not working for odd reason fixed test problem with fixed literals...still need a way to log this error broken up the tests, added some, changed some things in types and began compiler work moar tests and prepping for rebuilding much of the types.cpp file further fixing initial work for fixed types...potentially needing a constant literal type for this
* reduce unnecessary solidity:: namespaceDimitry2016-04-041-74/+74
|
* rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-021-74/+74
|
* move libevmcore to solidityDimitry2016-04-021-1/+1
|
* Simplify and optimise stack rotation.chriseth2015-12-011-8/+21
|
* Make members context-sensitive.chriseth2015-11-261-2/+2
|
* Code generation for creating arrays.chriseth2015-11-261-9/+15
|
* Fixed string inside struct allocation bug.chriseth2015-11-241-1/+1
|
* Fix up for new API from EIP-1.1.Gav Wood2015-11-211-1/+0
|
* Minor API change - must provide SealEngine to Executive now.Gav Wood2015-11-191-2/+4
|
* Bugfix: Returning literal strings in tuples.chriseth2015-11-011-1/+1
|
* File reorganisation.chriseth2015-10-211-0/+802