Alex Beregszaszi
|
dda497ca02
|
Move constructor to AsmAnalyzer header
|
2017-05-26 20:39:10 +01:00 |
|
chriseth
|
261731f7ee
|
Adapt EVM codegen to new namespace.
|
2017-05-26 15:08:27 +02:00 |
|
chriseth
|
71b923cc36
|
Move EVM codegen to libjulia.
|
2017-05-26 15:03:30 +02:00 |
|
chriseth
|
68e1e464be
|
Merge pull request #2316 from ethereum/inlineasm-cleanup
Better error message for elementary operations
|
2017-05-26 11:29:51 +02:00 |
|
Alex Beregszaszi
|
e410cec19a
|
Better error message for elementary operations
|
2017-05-26 09:41:53 +01:00 |
|
Alex Beregszaszi
|
05fcf1989c
|
Better error messages for invalid switch cases
|
2017-05-26 03:20:34 +01:00 |
|
Alex Beregszaszi
|
c64bd33784
|
Disallow instructions as a switch expression
|
2017-05-26 03:20:34 +01:00 |
|
Alex Beregszaszi
|
d745dd6542
|
Visit case bodies in scope filler
|
2017-05-26 03:20:34 +01:00 |
|
Alex Beregszaszi
|
ba8a79c600
|
Do not stop on first switch error
|
2017-05-26 03:20:31 +01:00 |
|
Alex Beregszaszi
|
e48e84ca2b
|
Check token within parseCase
|
2017-05-26 03:20:15 +01:00 |
|
Alex Beregszaszi
|
db3d9e0416
|
Switch cases are not followed by colon
|
2017-05-26 03:20:15 +01:00 |
|
Alex Beregszaszi
|
66eab1caf6
|
Change switch case string to Literal
|
2017-05-26 03:20:10 +01:00 |
|
Alex Beregszaszi
|
b5080860d5
|
Implement switch statement in the assembly parser/printer
|
2017-05-26 03:16:09 +01:00 |
|
Alex Beregszaszi
|
338202ea96
|
Uniform error messages
|
2017-05-24 13:35:52 +01:00 |
|
Alex Beregszaszi
|
56fe3a6ab9
|
Better error messages during parsing functional instructions
|
2017-05-24 13:35:52 +01:00 |
|
Alex Beregszaszi
|
74d41ad25f
|
Fix scope assert in AsmAnalyzer
|
2017-05-24 11:58:49 +01:00 |
|
Alex Beregszaszi
|
b77b11781d
|
Rename parseFunctionalInstruction to parseCall
|
2017-05-24 01:48:54 +01:00 |
|
Alex Beregszaszi
|
4f738ff1c0
|
Reorder AsmData for readability
|
2017-05-24 01:48:54 +01:00 |
|
Alex Beregszaszi
|
187fa50751
|
Rename FunctionalAssignment to Assignment
|
2017-05-24 01:48:53 +01:00 |
|
Alex Beregszaszi
|
f15d6ea45f
|
Rename Assignment to StackAssignment
|
2017-05-24 01:07:07 +01:00 |
|
Alex Beregszaszi
|
3451a30e5c
|
Display actual error message and not assertion in analysis
|
2017-05-22 18:45:34 +01:00 |
|
Alex Beregszaszi
|
cb4966046d
|
Enable a single right hand item on let
|
2017-05-22 18:45:34 +01:00 |
|
Alex Beregszaszi
|
15b4d4def2
|
Support multiple variables in a variable declaration in inline assembly
|
2017-05-22 18:45:34 +01:00 |
|
chriseth
|
7f5601fd4b
|
Add const
|
2017-05-19 20:15:28 +02:00 |
|
chriseth
|
69413ae32a
|
Review changes.
|
2017-05-19 20:12:12 +02:00 |
|
chriseth
|
e2b21e1c96
|
Refactor to abstract assembly to JULIA.
|
2017-05-19 19:20:28 +02:00 |
|
Alex Beregszaszi
|
ebcb27e5c1
|
Accept bool as a type in Julia mode
|
2017-05-19 09:44:16 +01:00 |
|
Alex Beregszaszi
|
edd0afa3c3
|
Support true/false literals in inline assembly
|
2017-05-19 09:44:16 +01:00 |
|
Alex Beregszaszi
|
8688b63fa6
|
Use boost range adaptors in AsmPrinter
|
2017-05-05 22:31:22 +01:00 |
|
Alex Beregszaszi
|
d6396ee85f
|
Parse types in Julia mode
|
2017-05-05 22:31:22 +01:00 |
|
Alex Beregszaszi
|
07176e82de
|
Assert that invalid AST elements are not printed in Julia mode
|
2017-05-05 14:21:25 +01:00 |
|
Alex Beregszaszi
|
c423e140ee
|
Add flag for JULIA printing
|
2017-05-05 14:21:25 +01:00 |
|
Alex Beregszaszi
|
804971973d
|
Show better error message for Julia mode
|
2017-05-05 14:21:25 +01:00 |
|
Alex Beregszaszi
|
f1f209db40
|
Do not allow literal pushes in Julia
|
2017-05-05 14:21:25 +01:00 |
|
Alex Beregszaszi
|
d61f9c4d4e
|
Disable labels in Julia
|
2017-05-05 14:21:25 +01:00 |
|
chriseth
|
28f10f4783
|
Remove error label / invalid jump label.
|
2017-04-28 13:14:52 +02:00 |
|
chriseth
|
f9bccab7b7
|
Merge pull request #2193 from ethereum/julia-assign-stack
Disallow assign from stack in Julia (=: var)
|
2017-04-27 22:00:33 +02:00 |
|
Alex Beregszaszi
|
20206a04dd
|
Disallow assign from stack in Julia (=: var)
|
2017-04-27 19:20:53 +01:00 |
|
Alex Beregszaszi
|
8020144d06
|
Do not validate identifiers against EVM instructions in JULIA
|
2017-04-27 18:16:42 +01:00 |
|
Alex Beregszaszi
|
01b60a4f8d
|
Add flag for JULIA parsing
|
2017-04-27 18:16:42 +01:00 |
|
Alex Beregszaszi
|
8b79517d47
|
Do not validate identifiers against EVM instructions in JULIA
|
2017-04-27 14:12:48 +01:00 |
|
Alex Beregszaszi
|
b48bc81d40
|
Add flag for JULIA parsing
|
2017-04-27 14:12:43 +01:00 |
|
Alex Beregszaszi
|
35f1cf92db
|
Remove parentheses from around function return parameters
|
2017-04-27 10:08:02 +01:00 |
|
chriseth
|
d7b3ce24a4
|
Check stack height during code generation.
|
2017-04-26 17:12:04 +02:00 |
|
chriseth
|
f3ec2ba39e
|
Refactor to combined scope and stack height info.
|
2017-04-26 17:12:04 +02:00 |
|
chriseth
|
68218387cf
|
Store stack height in analysis phase.
|
2017-04-26 12:34:24 +02:00 |
|
chriseth
|
1d712c7d64
|
Fix storage access tests.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
3df7b06464
|
Pass internal resolver to assembly analyzer.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
0ebaf220b5
|
Fix refactoring error.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
5f4b68e211
|
Another stack check.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
dfb7d5ebd9
|
Move analysis out of code generator.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
dfaab73efe
|
Only allow access to local variables and only if they have a stack size of one.
|
2017-04-25 16:49:04 +02:00 |
|
chriseth
|
f19e6a09a7
|
Check again that instruction argument count is correct.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
b622c2e9d3
|
Only run stack filler on AST elements that are or contain declarations.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
83bf34c571
|
Review comments and cleanup.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
4755757c00
|
Remove some errors checks from code generation (was moved to analysis already).
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
580921b329
|
Perform stack height checks in assembly analysis phase.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
c4a0826f40
|
Add some missing error locations.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
c6fa78c73e
|
Use actual type checking phase of assembler.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
e0849f2f3b
|
Split external identifier access into resolving and code generation.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
5d6747eb32
|
Refactor assembly analysis into scope filling and checking.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
72fdf755c9
|
Register functions.
|
2017-04-25 16:49:03 +02:00 |
|
chriseth
|
4d715e9055
|
Implement missing assembly output functions and do not use PushString for assembly.
|
2017-04-11 19:54:44 +02:00 |
|
chriseth
|
f8ce32f2a6
|
Fix error message.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
369005fc03
|
Remove stack annotations again.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
13fd569f76
|
First reset stack height, then register variables.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
41236cd08c
|
Slightly cleaner label ids.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
e963405a19
|
Partially add functions.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
647473cf01
|
Generic visitor.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
caa3761dc9
|
Refactor variable access.
|
2017-03-03 15:41:02 +01:00 |
|
chriseth
|
25dcfa3480
|
Refactor CodeGen to recurse on blocks.
|
2017-03-03 15:41:01 +01:00 |
|
chriseth
|
7f2def8971
|
Analysis refactoring.
|
2017-03-03 15:41:01 +01:00 |
|
chriseth
|
98e343b3fc
|
Parsing of labels with stack info.
|
2017-03-03 15:41:01 +01:00 |
|
chriseth
|
a5ce81100e
|
Assembly printer for functions.
|
2017-02-16 10:18:12 +01:00 |
|
chriseth
|
49a919b3e0
|
Parsing function calls.
|
2017-02-16 10:15:22 +01:00 |
|
chriseth
|
5d584aded8
|
Parsing function definitions.
|
2017-02-16 10:15:22 +01:00 |
|
chriseth
|
24197a2b3f
|
Assembly printing fixes.
|
2017-02-14 15:41:25 +01:00 |
|
chriseth
|
ca71b7624d
|
Review changes.
|
2017-02-14 15:41:25 +01:00 |
|
chriseth
|
80f7243786
|
Assembly printer.
|
2017-02-14 15:41:25 +01:00 |
|
Alex Beregszaszi
|
693226b1ab
|
Rename SUICIDE opcode to SELFDESTRUCT in libevmasm
|
2017-02-06 20:17:52 +00:00 |
|
chriseth
|
873f2dddd6
|
Update error message.
|
2017-01-26 13:52:02 +01:00 |
|
chriseth
|
525758a130
|
Disallow assignment to non-identifiers.
|
2017-01-26 13:40:40 +01:00 |
|
chriseth
|
f62e269115
|
Disallow instructions in assignment.
|
2017-01-25 17:29:06 +01:00 |
|
chriseth
|
a5696e1f0a
|
Renamed function.
|
2017-01-25 17:26:11 +01:00 |
|
chriseth
|
27ba665694
|
Moved test.
|
2017-01-25 17:24:43 +01:00 |
|
Alex Beregszaszi
|
900c56d996
|
Do not allow shadowing inline assembly instructions with variables
|
2017-01-25 11:28:09 +00:00 |
|
VoR0220
|
3f9f725737
|
Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
|
2016-11-23 12:22:33 +01:00 |
|
Alex Beregszaszi
|
ae8403ed08
|
Rename ErrorTag to invalidJumpLabel in inline assembly
|
2016-11-15 10:30:33 +00:00 |
|
Alex Beregszaszi
|
91367234d9
|
Support ErrorTag as a jump label in inline assembly
|
2016-11-15 10:30:12 +00:00 |
|
Alex Beregszaszi
|
dad33f80dd
|
Fix inline assembly stack warnings when using variables
|
2016-11-15 02:53:19 +00:00 |
|
Alex Beregszaszi
|
c3330faf21
|
Issue warnings if stack is not balanced after inline assembly block
|
2016-10-20 13:25:28 +01:00 |
|
Alex Beregszaszi
|
d0791fb365
|
Fix assignment after tags in inline assembly
|
2016-10-11 12:28:49 +01:00 |
|
Alex Beregszaszi
|
ae0477744c
|
Support address in inline assembly
|
2016-10-06 22:05:01 +01:00 |
|
Alex Beregszaszi
|
6afdee5958
|
Support both suicide/selfdestruct in inline assembly
|
2016-10-06 12:44:33 +01:00 |
|
chriseth
|
77f4424589
|
Provide inline assembly to the code generator. (#840)
* Directly usable inline assembly.
* Add missing header.
|
2016-08-16 16:27:20 +02:00 |
|
chriseth
|
67ca3bb4b9
|
Allow access to functions in inline assembly.
|
2016-05-12 12:30:48 +02:00 |
|
chriseth
|
8704dd0f7f
|
Windows fix.
|
2016-04-21 16:13:39 +02:00 |
|
chriseth
|
ed9da5171b
|
Source location for inline assembly.
|
2016-04-19 18:35:21 +02:00 |
|
chriseth
|
193b1c940c
|
Merge pull request #475 from chriseth/byteasm
Allow "byte" in inline assembly.
|
2016-04-06 16:40:20 +02:00 |
|
chriseth
|
26a91109a7
|
Allow "byte" in inline assembly.
|
2016-04-06 12:31:31 +02:00 |
|
Dimitry
|
d43d4347bf
|
return instructionInfo style
|
2016-04-04 15:27:09 +04:00 |
|
Dimitry
|
858c41260d
|
rename namespace for instruction.h/cpp in libevmasm
|
2016-04-02 15:56:43 +03:00 |
|
Dimitry
|
ccbd3ff63f
|
move libevmcore to solidity
|
2016-04-01 23:11:01 +03:00 |
|
chriseth
|
f049430723
|
Code generation (missing external access and source locations).
|
2016-03-30 02:37:00 +02:00 |
|
chriseth
|
949b00ed59
|
Parsing for inline assembly.
|
2016-03-30 02:37:00 +02:00 |
|