aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm
Commit message (Collapse)AuthorAgeFilesLines
* Warn about using loose inline assembly features as experimental 0.5.0 feature.chriseth2018-03-072-8/+54
|
* Only warn for shift instructions if not using constantinopleAlex Beregszaszi2018-03-021-9/+9
|
* Provide EVM version to assembly analysis.chriseth2018-03-022-10/+27
|
* Remove ROL/ROR as they are not part of EIP145 anymoreAlex Beregszaszi2018-02-271-3/+1
|
* Warn on using shift instructionsAlex Beregszaszi2018-02-271-0/+16
|
* Add assertion for boolean literals in Julia-modeAlex Beregszaszi2018-02-221-0/+5
|
* Raise error on oversized number literals in assemblyAlex Beregszaszi2018-02-221-0/+8
|
* Expect end of string at end of top-level block for assembly parser.chriseth2018-02-212-3/+7
|
* Disallow non-functional instructions in parseExpression earlyAlex Beregszaszi2018-01-101-2/+5
|
* Show restricted instruction warning before argument mismatch issueAlex Beregszaszi2018-01-081-11/+11
|
* Split inline assembly into loose and strict flavours.chriseth2018-01-065-26/+43
|
* Simplify parseElementaryOperation in regards to special instructionsAlex Beregszaszi2018-01-062-11/+18
|
* Support some restricted tokens (return, byte, address) as identifiers in JuliaAlex Beregszaszi2018-01-051-1/+7
|
* Separate expression and statement.chriseth2017-12-1310-50/+100
|
* Suggest the "if" statement too instead of jumpsAlex Beregszaszi2017-12-061-1/+1
|
* Warn for assembly labels tooAlex Beregszaszi2017-12-061-2/+3
|
* Split Instruction and FunctionalInstruction in JuliaAlex Beregszaszi2017-12-054-8/+10
|
* Merge pull request #3265 from ethereum/rename_args_to_paramschriseth2017-12-045-11/+11
|\ | | | | Rename arguments to parameters.
| * Rename arguments to paramaters and returns to returnVariables.chriseth2017-12-015-11/+11
| |
* | Include missing forward declarations in AsmDataForwardAlex Beregszaszi2017-11-301-0/+3
|/
* If statement for Iulia / inline assembly.chriseth2017-11-229-2/+44
|
* Add helpers for isPush/isDup/isSwapAlex Beregszaszi2017-10-021-3/+3
|
* Support multiple assignment in inline assemblyAlex Beregszaszi2017-09-204-6/+56
|
* Named assembly labels.chriseth2017-09-162-3/+16
|
* Check recursion depth in assembly parser.chriseth2017-08-221-0/+11
|
* Mark a lot of functions static (where possible)Alex Beregszaszi2017-08-221-1/+1
|
* Mark appropriate constructors explicitAlex Beregszaszi2017-08-221-1/+1
|
* Mark a lot of functions const (where possible)Alex Beregszaszi2017-08-225-5/+5
|
* Be more strict about number literals in assembly.chriseth2017-08-212-0/+23
|
* Merge pull request #2504 from ethereum/inlineasm-decl-emptyAlex Beregszaszi2017-07-133-12/+26
|\ | | | | Support variable declarations without an assignment in assembly
| * Rename expectedItems to numVariablesAlex Beregszaszi2017-07-131-3/+3
| |
| * Support parsing let statements without a valueAlex Beregszaszi2017-07-133-11/+25
| |
* | Refactor exceptions and provide comment function.chriseth2017-07-131-0/+2
|/
* Add Julia mode as an option to EVMCodeTransformAlex Beregszaszi2017-07-031-2/+1
|
* Warn on JUMP/JUMPI in inline assemblyAlex Beregszaszi2017-07-012-4/+11
|
* Support appendAssemblySize() in AbstractAssemblyAlex Beregszaszi2017-06-231-0/+5
|
* Merge interface/Exceptions and interface/UtilsAlex Beregszaszi2017-06-223-3/+2
|
* Split block code generation into main and finalize.chriseth2017-06-161-1/+1
|
* Helper to count the number of variables in a scope.chriseth2017-06-163-3/+12
|
* Add include file to forward-declare inline assembly structs.chriseth2017-06-166-77/+64
|
* For loops analysis.chriseth2017-06-162-4/+41
|
* Parse for statement in assembly parser / printerAlex Beregszaszi2017-06-1610-3/+52
|
* Merge pull request #2192 from winsvega/developAlex Beregszaszi2017-06-151-17/+11
|\ | | | | add STATICCALL instruction
| * add new opcode instructions to the parserDimitry2017-06-151-17/+11
| | | | | | | | STATICCALL 0xfa 6 inputs (gas address mem1 mem2 mem3 mem4)
* | Merge pull request #2384 from ethereum/parseFunctionalInstructionschriseth2017-06-151-0/+13
|\ \ | |/ |/| Enforce function arguments when parsing functional instructions.
| * Enforce function arguments when parsing functional instructions.chriseth2017-06-141-0/+13
| |
* | Display user friendly instruction nameAlex Beregszaszi2017-06-141-5/+12
| |
* | Issue warning for using CREATE2 in inline assemblyAlex Beregszaszi2017-06-141-2/+3
|/
* Merge pull request #2389 from ethereum/moveLabelIDschriseth2017-06-144-25/+12
|\ | | | | Move LabelIDs to generation phase.
| * Move "active variable" to analysis phase.chriseth2017-06-143-16/+10
| |
| * Remove struct constructor.chriseth2017-06-142-2/+1
| |
| * Move stack height to generation phase.chriseth2017-06-141-2/+0
| |
| * Move LabelIDs to generation phase.chriseth2017-06-141-5/+1
| |
* | Warn if returndatasize/returndatacopy is usedAlex Beregszaszi2017-06-132-1/+20
|/
* Merge pull request #2362 from ethereum/lowercase_instructionsAlex Beregszaszi2017-06-092-11/+30
|\ | | | | Use lowercase when reporting instruction error.
| * Use lowercase when reporting instruction error.chriseth2017-06-092-11/+30
| |
* | Simplify CodeGenerator by remove seldom used caseAlex Beregszaszi2017-06-092-17/+0
| |
* | Remove obsolete AsmStackAlex Beregszaszi2017-06-092-175/+0
|/
* Comments and consistent variable names.chriseth2017-06-091-4/+4
|
* Fix: Copy resolver.chriseth2017-06-081-1/+1
|
* Visitor bugfix.chriseth2017-06-082-6/+18
|
* Remove error reporter from code generation phase.chriseth2017-06-083-13/+7
|
* Some more comments.chriseth2017-06-081-2/+0
|
* Correct stack height adjustment after returnsub.chriseth2017-06-081-1/+1
|
* Introduce machine-dependent stack adjustment.chriseth2017-06-081-4/+2
|
* Initial EVM1.5 assembly implementation.chriseth2017-06-085-11/+69
|
* Add comma.chriseth2017-06-011-1/+1
|
* Improved error message.chriseth2017-06-011-1/+1
|
* Refactor to use expectExpression in analyzer.chriseth2017-06-012-38/+29
|
* Merge pull request #2317 from ethereum/keccak256chriseth2017-05-311-0/+2
|\ | | | | Use keccak256 in tests and replace the SHA3 instruction in assembly
| * Alias sha3 to keccak256 in inline assemblyAlex Beregszaszi2017-05-301-0/+2
| |
* | Refactor error reportingRhett Aultman2017-05-3010-144/+108
|/ | | | | | | | | This commit introduces ErrorReporter, a utility class which consolidates all of the error logging functionality into a common set of functions. It also replaces all direct interactions with an ErrorList with calls to an ErrorReporter. This commit resolves issue #2209
* Merge pull request #2319 from ethereum/virtualBlockschriseth2017-05-295-21/+28
|\ | | | | Introduce virtual blocks for function arguments.
| * Introduce virtual blocks for function arguments.chriseth2017-05-295-21/+28
| |
* | Introduce LabelID typedef.chriseth2017-05-292-3/+4
|/
* Merge pull request #2311 from ethereum/julia-typeschriseth2017-05-293-12/+35
|\ | | | | Validate types for Julia (part 1)
| * Move builtin type list to the topAlex Beregszaszi2017-05-271-1/+7
| |
| * Change error message for invalid typeAlex Beregszaszi2017-05-271-1/+1
| |
| * Introduce Julia mode in AsmAnalyzerAlex Beregszaszi2017-05-273-6/+11
| |
| * Validate that only basic types are used in JuliaAlex Beregszaszi2017-05-272-0/+21
| |
| * Move constructor to AsmAnalyzer headerAlex Beregszaszi2017-05-272-11/+2
| |
* | Use the new ParserBase API in AsmParserAlex Beregszaszi2017-05-271-33/+33
|/
* Adapt EVM codegen to new namespace.chriseth2017-05-266-45/+18
|
* Move EVM codegen to libjulia.chriseth2017-05-261-238/+0
|
* Merge pull request #2316 from ethereum/inlineasm-cleanupchriseth2017-05-261-5/+2
|\ | | | | Better error message for elementary operations
| * Better error message for elementary operationsAlex Beregszaszi2017-05-261-5/+2
| |
* | Better error messages for invalid switch casesAlex Beregszaszi2017-05-261-0/+4
| |
* | Disallow instructions as a switch expressionAlex Beregszaszi2017-05-261-0/+2
| |
* | Visit case bodies in scope fillerAlex Beregszaszi2017-05-262-1/+10
| |
* | Do not stop on first switch errorAlex Beregszaszi2017-05-261-5/+7
| |
* | Check token within parseCaseAlex Beregszaszi2017-05-262-7/+9
| |
* | Switch cases are not followed by colonAlex Beregszaszi2017-05-262-3/+2
| |
* | Change switch case string to LiteralAlex Beregszaszi2017-05-264-15/+26
| |
* | Implement switch statement in the assembly parser/printerAlex Beregszaszi2017-05-2610-2/+95
|/
* Uniform error messagesAlex Beregszaszi2017-05-241-3/+4
|
* Better error messages during parsing functional instructionsAlex Beregszaszi2017-05-241-0/+9
|
* Fix scope assert in AsmAnalyzerAlex Beregszaszi2017-05-241-0/+1
|
* Rename parseFunctionalInstruction to parseCallAlex Beregszaszi2017-05-242-4/+4
|
* Reorder AsmData for readabilityAlex Beregszaszi2017-05-241-7/+14
|
* Rename FunctionalAssignment to AssignmentAlex Beregszaszi2017-05-249-22/+21
|
* Rename Assignment to StackAssignmentAlex Beregszaszi2017-05-249-15/+15
|
* Display actual error message and not assertion in analysisAlex Beregszaszi2017-05-231-1/+9
|
* Enable a single right hand item on letAlex Beregszaszi2017-05-235-37/+7
|
* Support multiple variables in a variable declaration in inline assemblyAlex Beregszaszi2017-05-236-15/+71
|
* Add constchriseth2017-05-201-1/+1
|
* Review changes.chriseth2017-05-201-6/+6
|
* Refactor to abstract assembly to JULIA.chriseth2017-05-203-52/+99
|
* Accept bool as a type in Julia modeAlex Beregszaszi2017-05-191-1/+9
|
* Support true/false literals in inline assemblyAlex Beregszaszi2017-05-195-5/+42
|
* Use boost range adaptors in AsmPrinterAlex Beregszaszi2017-05-061-4/+12
|
* Parse types in Julia modeAlex Beregszaszi2017-05-0611-36/+98
|
* Assert that invalid AST elements are not printed in Julia modeAlex Beregszaszi2017-05-051-1/+5
|
* Add flag for JULIA printingAlex Beregszaszi2017-05-051-0/+5
|
* Show better error message for Julia modeAlex Beregszaszi2017-05-051-3/+11
|
* Do not allow literal pushes in JuliaAlex Beregszaszi2017-05-051-0/+2
|
* Disable labels in JuliaAlex Beregszaszi2017-05-051-0/+3
|
* Remove error label / invalid jump label.chriseth2017-04-283-7/+0
|
* Merge pull request #2193 from ethereum/julia-assign-stackchriseth2017-04-281-0/+2
|\ | | | | Disallow assign from stack in Julia (=: var)
| * Disallow assign from stack in Julia (=: var)Alex Beregszaszi2017-04-281-1/+3
| |
| * Do not validate identifiers against EVM instructions in JULIAAlex Beregszaszi2017-04-281-4/+6
| |
| * Add flag for JULIA parsingAlex Beregszaszi2017-04-281-1/+4
| |
* | Do not validate identifiers against EVM instructions in JULIAAlex Beregszaszi2017-04-271-4/+6
| |
* | Add flag for JULIA parsingAlex Beregszaszi2017-04-271-1/+4
|/
* Remove parentheses from around function return parametersAlex Beregszaszi2017-04-272-4/+2
|
* Check stack height during code generation.chriseth2017-04-261-6/+34
|
* Refactor to combined scope and stack height info.chriseth2017-04-267-52/+130
|
* Store stack height in analysis phase.chriseth2017-04-262-5/+35
|
* Fix storage access tests.chriseth2017-04-251-10/+16
|
* Pass internal resolver to assembly analyzer.chriseth2017-04-251-1/+2
|
* Fix refactoring error.chriseth2017-04-251-2/+2
|
* Another stack check.chriseth2017-04-251-0/+2
|
* Move analysis out of code generator.chriseth2017-04-254-23/+46
|
* Only allow access to local variables and only if they have a stack size of one.chriseth2017-04-251-1/+1
|
* Check again that instruction argument count is correct.chriseth2017-04-251-0/+1
|
* Only run stack filler on AST elements that are or contain declarations.chriseth2017-04-252-32/+4
|
* Review comments and cleanup.chriseth2017-04-252-6/+6
|
* Remove some errors checks from code generation (was moved to analysis already).chriseth2017-04-251-50/+10
|
* Perform stack height checks in assembly analysis phase.chriseth2017-04-253-37/+148
|
* Add some missing error locations.chriseth2017-04-251-2/+3
|
* Use actual type checking phase of assembler.chriseth2017-04-256-30/+38
|
* Split external identifier access into resolving and code generation.chriseth2017-04-254-29/+55
|
* Refactor assembly analysis into scope filling and checking.chriseth2017-04-258-236/+615
|
* Register functions.chriseth2017-04-253-33/+90
|
* Implement missing assembly output functions and do not use PushString for ↵chriseth2017-04-121-1/+1
| | | | assembly.
* Fix error message.chriseth2017-03-031-1/+1
|
* Remove stack annotations again.chriseth2017-03-036-95/+4
|
* First reset stack height, then register variables.chriseth2017-03-031-9/+10
|
* Slightly cleaner label ids.chriseth2017-03-033-17/+20
|
* Partially add functions.chriseth2017-03-033-10/+69
|
* Generic visitor.chriseth2017-03-031-37/+28
|
* Refactor variable access.chriseth2017-03-031-40/+30
|
* Refactor CodeGen to recurse on blocks.chriseth2017-03-033-72/+93
|
* Analysis refactoring.chriseth2017-03-035-115/+456
|
* Parsing of labels with stack info.chriseth2017-03-034-3/+40
|
* Assembly printer for functions.chriseth2017-02-162-0/+20
|
* Parsing function calls.chriseth2017-02-164-37/+64
|
* Parsing function definitions.chriseth2017-02-164-6/+55
|
* Assembly printing fixes.chriseth2017-02-141-5/+5
|
* Review changes.chriseth2017-02-143-4/+4
|
* Assembly printer.chriseth2017-02-144-4/+204
|
* Rename SUICIDE opcode to SELFDESTRUCT in libevmasmAlex Beregszaszi2017-02-071-2/+2
|
* Update error message.chriseth2017-01-261-1/+1
|
* Disallow assignment to non-identifiers.chriseth2017-01-261-0/+2
|
* Disallow instructions in assignment.chriseth2017-01-261-6/+5
|
* Renamed function.chriseth2017-01-262-5/+5
|
* Moved test.chriseth2017-01-261-1/+1
|
* Do not allow shadowing inline assembly instructions with variablesAlex Beregszaszi2017-01-252-1/+11
|
* Fix licensing headersVoR02202016-11-237-28/+28
| | | | Signed-off-by: VoR0220 <rj@erisindustries.com>
* Rename ErrorTag to invalidJumpLabel in inline assemblyAlex Beregszaszi2016-11-151-1/+1
|
* Support ErrorTag as a jump label in inline assemblyAlex Beregszaszi2016-11-151-1/+5
|
* Fix inline assembly stack warnings when using variablesAlex Beregszaszi2016-11-151-7/+9
|
* Issue warnings if stack is not balanced after inline assembly blockAlex Beregszaszi2016-10-201-2/+24
|
* Fix assignment after tags in inline assemblyAlex Beregszaszi2016-10-111-1/+3
|
* Support address in inline assemblyAlex Beregszaszi2016-10-071-0/+3
|
* Support both suicide/selfdestruct in inline assemblyAlex Beregszaszi2016-10-061-2/+5
|
* Provide inline assembly to the code generator. (#840)chriseth2016-08-162-1/+29
| | | | | | * Directly usable inline assembly. * Add missing header.
* Allow access to functions in inline assembly.chriseth2016-05-122-5/+17
|
* Windows fix.chriseth2016-04-211-1/+1
|
* Source location for inline assembly.chriseth2016-04-207-69/+149
|
* Merge pull request #475 from chriseth/byteasmchriseth2016-04-061-0/+4
|\ | | | | Allow "byte" in inline assembly.
| * Allow "byte" in inline assembly.chriseth2016-04-061-0/+4
| |
* | return instructionInfo styleDimitry2016-04-041-2/+2
| |
* | rename namespace for instruction.h/cpp in libevmasmDimitry2016-04-023-18/+18
| |
* | move libevmcore to solidityDimitry2016-04-022-2/+2
|/
* Code generation (missing external access and source locations).chriseth2016-03-307-71/+512
|
* Parsing for inline assembly.chriseth2016-03-303-0/+337