aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/inlineasm
Commit message (Expand)AuthorAgeFilesLines
* Assert that mandatory fields in the AST are present in AsmAnalysisAlex Beregszaszi2018-05-101-0/+10
* Have more uniform parser errorsAlex Beregszaszi2018-05-041-4/+4
* 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 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
|\
| * 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 new opcode instructions to the parserDimitry2017-06-151-17/+11
* | Merge pull request #2384 from ethereum/parseFunctionalInstructionschriseth2017-06-151-0/+13
|\ \ | |/ |/|
| * 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 "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.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
|\
| * Alias sha3 to keccak256 in inline assemblyAlex Beregszaszi2017-05-301-0/+2
* | Refactor error reportingRhett Aultman2017-05-3010-144/+108
|/
* Merge pull request #2319 from ethereum/virtualBlockschriseth2017-05-295-21/+28
|\
| * 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
|\
| * 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 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)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 ass...chriseth2017-04-121-1/+1
* 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
* 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
* 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.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