186 Commits
Author SHA1 Message Date
chriseth fd1662d1c4 Warn about using loose inline assembly features as experimental 0.5.0 feature. 2018-03-06 17:45:34 +01:00
Alex Beregszaszi 5a54cd5c70 Only warn for shift instructions if not using constantinople 2018-03-01 17:19:35 +01:00
chriseth dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
Alex Beregszaszi afa4a48e37 Remove ROL/ROR as they are not part of EIP145 anymore 2018-02-27 13:42:41 +01:00
Alex Beregszaszi 468d0f6199 Warn on using shift instructions 2018-02-27 13:42:31 +01:00
Alex Beregszaszi 42856e0f53 Add assertion for boolean literals in Julia-mode 2018-02-22 01:02:23 +01:00
Alex Beregszaszi ae02bb5aad Raise error on oversized number literals in assembly 2018-02-22 01:02:19 +01:00
chriseth e2bf5de8a2 Expect end of string at end of top-level block for assembly parser. 2018-02-21 00:41:39 +01:00
Alex Beregszaszi 8b20a7cd53 Disallow non-functional instructions in parseExpression early 2018-01-10 14:16:46 +01:00
Alex Beregszaszi 42f8875770 Show restricted instruction warning before argument mismatch issue 2018-01-08 00:39:22 +00:00
chriseth 124190336b Split inline assembly into loose and strict flavours. 2018-01-06 01:23:38 +00:00
Alex Beregszaszi fcbdaa32b9 Simplify parseElementaryOperation in regards to special instructions 2018-01-06 00:39:06 +00:00
Alex Beregszaszi a91393f4d7 Support some restricted tokens (return, byte, address) as identifiers in Julia 2018-01-05 15:53:49 +00:00
chriseth 54b6739962 Separate expression and statement. 2017-12-13 12:28:15 +01:00
Alex Beregszaszi 793537e089 Suggest the "if" statement too instead of jumps 2017-12-05 19:27:12 +00:00
Alex Beregszaszi bc875f6b9c Warn for assembly labels too 2017-12-05 19:27:12 +00:00
Alex Beregszaszi 745eefa36f Split Instruction and FunctionalInstruction in Julia 2017-12-05 14:52:11 +00:00
chriseth 240c79e614 Merge pull request #3265 from ethereum/rename_args_to_params
Rename arguments to parameters.
2017-12-04 06:49:44 -05:00
chriseth 43bb915454 Rename arguments to paramaters and returns to returnVariables. 2017-12-01 16:18:01 +01:00
Alex Beregszaszi 9f756e3797 Include missing forward declarations in AsmDataForward 2017-11-29 21:43:44 +00:00
chriseth 6dbc34e16e If statement for Iulia / inline assembly. 2017-11-22 16:25:24 +01:00
Alex Beregszaszi 8a32d7c3d7 Add helpers for isPush/isDup/isSwap 2017-10-02 10:34:54 +01:00
Alex Beregszaszi 3b813ed295 Support multiple assignment in inline assembly 2017-09-20 11:16:23 +02:00
chriseth 73771f5bb2 Named assembly labels. 2017-09-15 20:44:49 +01:00
chriseth 692e4c57e8 Check recursion depth in assembly parser. 2017-08-22 12:44:22 +02:00
Alex Beregszaszi 9897c56b2c Mark a lot of functions static (where possible) 2017-08-22 10:51:46 +01:00
Alex Beregszaszi 2a5772cff7 Mark appropriate constructors explicit 2017-08-22 10:51:46 +01:00
Alex Beregszaszi e2cfc9ee92 Mark a lot of functions const (where possible) 2017-08-22 10:51:46 +01:00
chriseth 2c5985de06 Be more strict about number literals in assembly. 2017-08-21 13:31:28 +02:00
Alex Beregszaszi b5da5f6e42 Merge pull request #2504 from ethereum/inlineasm-decl-empty
Support variable declarations without an assignment in assembly
2017-07-13 16:58:24 +02:00
Alex Beregszaszi 8d90e6fc4e Rename expectedItems to numVariables 2017-07-13 15:18:40 +02:00
Alex Beregszaszi cee93d946d Support parsing let statements without a value 2017-07-13 15:18:18 +02:00
chriseth 09e821619e Refactor exceptions and provide comment function. 2017-07-13 11:34:03 +02:00
Alex Beregszaszi 7798a27112 Add Julia mode as an option to EVMCodeTransform 2017-07-03 10:13:36 +01:00
Alex Beregszaszi d4fecc7b11 Warn on JUMP/JUMPI in inline assembly 2017-06-30 20:47:14 +01:00
Alex Beregszaszi 5cf2332d6d Support appendAssemblySize() in AbstractAssembly 2017-06-23 00:09:35 +01:00
Alex Beregszaszi d5f8ce90c7 Merge interface/Exceptions and interface/Utils 2017-06-22 11:25:07 +01:00
chriseth 868b5ad3aa Split block code generation into main and finalize. 2017-06-16 10:56:21 +01:00
chriseth 78b49db779 Helper to count the number of variables in a scope. 2017-06-16 10:56:21 +01:00
chriseth 8e5c4bf21d Add include file to forward-declare inline assembly structs. 2017-06-16 10:56:21 +01:00
chriseth 49b1112117 For loops analysis. 2017-06-16 10:56:21 +01:00
Alex Beregszaszi 47925bc14e Parse for statement in assembly parser / printer 2017-06-16 10:56:21 +01:00
Alex Beregszaszi 42b61171d9 Merge pull request #2192 from winsvega/develop
add STATICCALL instruction
2017-06-14 21:03:32 +01:00
chriseth fd5bf16101 Merge pull request #2384 from ethereum/parseFunctionalInstructions
Enforce function arguments when parsing functional instructions.
2017-06-14 18:35:16 +02:00
Dimitry c20cdd0a05 add new opcode instructions to the parser
STATICCALL        0xfa  6 inputs  (gas address mem1 mem2 mem3 mem4)
2017-06-14 18:18:12 +02:00
Alex Beregszaszi a921bd0ae4 Display user friendly instruction name 2017-06-14 16:00:39 +02:00
Alex Beregszaszi 494b9dbfaa Issue warning for using CREATE2 in inline assembly 2017-06-14 16:00:39 +02:00
chriseth 1b1f35762e Enforce function arguments when parsing functional instructions. 2017-06-14 14:51:47 +02:00
chriseth 43cfab70d0 Merge pull request #2389 from ethereum/moveLabelIDs
Move LabelIDs to generation phase.
2017-06-14 14:12:33 +02:00
chriseth 154002cda0 Move "active variable" to analysis phase. 2017-06-14 00:10:33 +02:00