Alex Beregszaszi
e82917d4e6
Add LLL error when assembly instruction causes stack underflow
2018-11-13 13:47:29 +01:00
Alex Beregszaszi
c320a650f9
LLL: terminate sequences with a STOP
2018-11-13 13:47:29 +01:00
Christian Parpart
ab0de38f16
Eliminate byte
-typedef and use uint8_t
in all their places instead.
...
This change is made to (easily) be forward compatible with future C++
standards, in order to allow compiling the code with newer standards at
some point in the future.
* Removed the `using byte = uint8_t;` line from Common.h
* Mechanically change all uses of `byte` to `uint8_t`.
Tested with GCC 7.3 in C++11/14/17 modes :-)
2018-11-07 12:17:57 +01:00
Augusto F. Hack
6c3b48ddfc
Added guards for unknown pragmas
...
Removed push/pop if there was no change to the warnings *in the same
file* for a given compiler. This assumes the imported boost headers use
a warning stack themselves.
The pragmas don't seem to be required anymore, but were not removed to
mantain compatibility with older versions of the boost library.
Compiled with
- clang version 6.0.1 (tags/RELEASE_601/final)
- gcc (GCC) 8.1.1 20180531
against:
- libboost 1.67.0-5
2018-08-05 19:21:33 -03:00
Alex Beregszaszi
7c509137cf
Replace dev::eth namespace with dev::lll in LLL
2018-07-28 12:00:36 +01:00
Alex Beregszaszi
15517b571d
lll: disallow useless PUSHn in assembly
2017-10-13 02:04:36 +01:00
Alex Beregszaszi
ab206b8113
LLL: do not crash if import callback is null
2017-10-03 10:22:30 +01:00
Alex Beregszaszi
26f3ea8cf7
LLL: change (include) to use a callback
2017-10-02 21:19:36 +01:00
Alex Beregszaszi
cbd4465a7f
lll: do not expose push/dup/swap/jumpdest as functions
2017-10-02 16:21:21 +01:00
Alex Beregszaszi
6cbb726fb8
Merge pull request #2622 from benjaminion/lll-switch
...
LLL: Implement a "switch" expression
2017-10-02 13:38:21 +01:00
benjaminion
326c7887a4
LLL: Implement a switch expression.
2017-10-02 12:01:15 +01:00
Alex Beregszaszi
cddfec27ee
lll: better error reporting in some cases
2017-10-02 11:48:26 +01:00
Alex Beregszaszi
d70974ea7c
Merge pull request #2573 from benjaminion/lll-error-report-symbol
...
LLL: Improve error reporting in certain cases.
2017-07-20 11:02:31 +01:00
Alex Beregszaszi
fa2781d6da
LLL: remove useless code
2017-07-18 21:12:43 +01:00
benjaminion
4c0953385e
LLL: Improve error reporting in certain cases.
2017-07-15 22:17:20 +01:00
benjaminion
3bc935d932
LLL: rewrite alloc to avoid issues with edge cases.
2017-07-11 21:22:38 +01:00
Alex Beregszaszi
dbbdcc66e6
LLL: fix redefinitions on some compilers
2017-06-24 12:59:30 +01:00
Alex Beregszaszi
af57c083f2
LLL: fix the set keyword (create symbol if not present)
2017-06-23 02:52:44 +01:00
Alex Beregszaszi
1ffe286a81
LLL: report correct name if a symbol was not found
2017-06-22 23:00:22 +01:00
Alex Beregszaszi
581aace501
LLL: do not allow empty variable names
2017-06-22 23:00:22 +01:00
chriseth
0868a50eb1
Merge pull request #2440 from ethereum/lll-include
...
LLL: better error reporting in (include)
2017-06-22 17:18:34 +02:00
Alex Beregszaszi
a14a1254ca
LLL: report errors if (include) failed
2017-06-22 10:56:58 +01:00
Alex Beregszaszi
bc95da354d
Replace obsolete assembly code in LLL
2017-06-21 21:23:39 +01:00
Alex Beregszaszi
c08c4b8b6f
Move subroutine helpers from CompilerContext to Assembly
2017-06-14 21:21:26 +01:00
Alex Beregszaszi
6a260a9ff1
Remove single use Assembly::popTo
2017-06-14 21:21:26 +01:00
benjaminion
c603369a51
Change opcode generated by (panic) to INVALID
...
EIP-141 ethereum/EIPs#141 has preserved 0xfe as an invalid opcode for aborting EVM execution. The EVM assembler supports this via the INVALID opcode.
The LLL "panic" expression used to generate a jump to an invalid location in order to abort EVM execution. This change brings "panic" into line with EIP-141 by generating the INVALID opcode instead.
2017-06-13 17:01:38 +01:00
Alex Beregszaszi
902f69640b
Replace cpp-ethereum with solidity in the license headers
2017-02-02 10:06:28 +00:00
Alex Beregszaszi
b1add657b7
LLL: throw exceptions on invalid symbols
2016-11-30 16:17:50 +00:00
Alex Beregszaszi
4a67a2862c
Merge pull request #1329 from ethereum/lll-lit-changes
...
LLL: improvements (and fixes) to the lit keyword
2016-11-26 15:22:14 +00:00
Alex Beregszaszi
eee10f1af2
LLL: simplify the LIT parsing code
2016-11-26 14:41:15 +00:00
chriseth
e51f852504
Converted sub assembly to smart pointer.
2016-11-16 14:37:18 +01:00
chriseth
e543bd34c0
Stored combined creation and runtime tags.
...
Includes a change to Assembly to allow tags from sub-assemblies to be
used.
Sorry, this get a bit bigger than I thought.
2016-11-16 14:37:18 +01:00
Alex Beregszaszi
200cbc08dd
LLL: add bytecodesize keyword to push resulting bytecode size
2016-11-01 22:19:06 +00:00
Alex Beregszaszi
ac3c8a553a
LLL: properly support dashes (-) as part of variable names
2016-11-01 10:45:13 +00:00
Alex Beregszaszi
b24eed1c3e
LLL: remove unneeded includes
2016-10-31 23:19:32 +00:00
Alex Beregszaszi
9b65a79cb3
LLL: report back unsupported keywords
2016-10-31 23:19:32 +00:00
Alex Beregszaszi
75b1ae8910
LLL: only support variable length bigendian numbers in LIT
2016-10-31 23:17:55 +00:00
Alex Beregszaszi
6d97a56af1
LLL: support multiple strings in LIT
2016-10-31 23:17:48 +00:00
chriseth
e85390cc60
Merge pull request #1302 from ethereum/lll-panic
...
LLL: introduce panic keyword
2016-10-28 11:44:46 +02:00
Alex Beregszaszi
274c76fc5e
LLL: introduce panic keyword
2016-10-27 13:45:33 +01:00
Daniel Ellison
7ac53f5305
Added support for until
, the inverse of while
.
2016-10-26 09:24:01 -04:00
Alex Beregszaszi
6cb9c36977
LLL: reorder arithmetic/binary instruction list for readability
2016-10-26 01:16:29 +01:00
Alex Beregszaszi
ee3cfd8f52
LLL: use NOT for ~
2016-10-26 01:12:15 +01:00
Alex Beregszaszi
5a981b59c3
LLL: replace (1 0 sub) with literal value
2016-10-26 01:10:55 +01:00
Alex Beregszaszi
7c7a6de87b
LLL: fix the commented out debugging code
2016-10-15 12:58:57 +01:00
chriseth
6f54b13d7a
Remove log.h from solidity.
2016-04-12 01:03:46 +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
Dimitry
e95dd9203a
move liblll
2016-03-21 14:58:34 +03:00