Commit Graph

96 Commits

Author SHA1 Message Date
Alex Beregszaszi
af3a4b0642 Add simplification rule for SDIV(0,X) and SDIV(X,0) 2017-05-19 17:49:20 +01:00
Alex Beregszaszi
dc8eb3d846 Cleanup simplification rules 2017-05-19 17:49:20 +01:00
chriseth
b976d53e87 Add parentheses for readability. 2017-05-02 16:56:12 +02:00
chriseth
5c4f3f6d0b Fix number representation bug. 2017-05-02 12:22:11 +02:00
Alex Beregszaszi
0e91b8fb98 Do not use the member in checkRepresentation 2017-04-27 14:06:58 +01:00
chriseth
c1e14d0119 Use OptimizerException to report error 2017-04-27 14:06:29 +01:00
chriseth
54210ea89f Add recomputation check for number representation. 2017-04-27 14:06:28 +01:00
Yoichi Hirai
5176784b18 libevmasm: fix sloadGas in another file 2017-04-25 16:47:43 +02:00
Yoichi Hirai
362813f0d6 libevmasm: add a break 2017-04-25 16:47:43 +02:00
Yoichi Hirai
56e4b82696 libevmasm: reflect EIP 160 gas schedule change 2017-04-25 16:14:58 +02:00
Yoichi Hirai
4e24639e39 libevmasm: EIP150.c gas change 2017-04-25 16:14:58 +02:00
Yoichi Hirai
e54a3ead16 libevmasm: EIP150.a changes on SLOAD, CALL, CALLCODE, DELEGATECALL and SUICIDE 2017-04-25 16:14:58 +02:00
Yoichi Hirai
f2775f82d0 libevmadm: EIP150.a changes on EXTCODE, EXTCODESIZE and BALANCE 2017-04-25 16:14:58 +02:00
chriseth
8ebea783f4 Initialize local variables. 2017-04-12 16:30:27 +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
ddc4918f36 Add upper bound for computing constants. 2017-03-03 16:51:37 +01:00
chriseth
46d3c2dd3d Print source location before items. 2017-02-24 08:24:34 +01:00
Alex Beregszaszi
148f923351 Add REVERT to libevmasm 2017-02-10 22:40:12 +00:00
Alex Beregszaszi
693226b1ab Rename SUICIDE opcode to SELFDESTRUCT in libevmasm 2017-02-06 20:17:52 +00:00
Alex Beregszaszi
7ec3dd9bbc More verbose log of when using invalid instructions 2017-02-02 11:39:29 +00:00
chriseth
ae2b59d18a Fix optimizer with regards to INVALID instruction. 2017-01-26 16:39:07 +01:00
chriseth
c2b3d8bcd2 Change code for INVALID opcode to 0xfe. 2017-01-26 16:39:07 +01:00
Valentin Wüstholz
9bcbd93ac5 Change translation of implicit throws (issue #1589).
This adds a new invalid instruction that is used for encoding
implicit throws that are emitted by the compiler. This makes it
possible to distinguish such runtime errors from user-provided,
explicit throws.
2017-01-26 16:39:07 +01:00
chriseth
997f5d751a Create functional assembly output, if possible. 2017-01-24 01:09:55 +01:00
chriseth
4713dd625d Fix error tag usage in lll. 2017-01-23 15:46:03 +01:00
chriseth
7c18b785e3 Merge pull request #1584 from ethereum/tier
libevmasm: remove duplicate `Tier` from `Tier::xTier`s
2017-01-18 19:28:37 +01:00
chriseth
d3a391c136 Provide fallback for linking. 2017-01-18 17:41:36 +01:00
Yoichi Hirai
821997a1d3
libevmasm: remove duplicate Tier from Tier::xTiers
Synchronize with cpp-ethereum
2017-01-18 17:24:39 +01:00
Yoichi Hirai
20c62a132d
Make enum Tier into an enum class 2017-01-13 13:19:14 +01:00
chriseth
3cfa851f6f Minor changes from review. 2017-01-12 17:53:06 +01:00
chriseth
d34b561f68 Windows build fix. 2017-01-12 17:52:27 +01:00
chriseth
58509ca3aa Fix match groups. 2017-01-12 17:52:27 +01:00
chriseth
7127f2fdfd Fix debug output. 2017-01-12 17:52:27 +01:00
chriseth
da5e171f3b Optimize constant optimization. 2017-01-12 17:52:27 +01:00
chriseth
f1a4976ce6 Optimise simplification rules (sort into bins). 2017-01-12 17:52:26 +01:00
chriseth
652d8dab19 Optimize pattern matcher. 2017-01-12 17:52:26 +01:00
chriseth
afad40ac5a Optimise AssemblyItem::m_data. 2017-01-12 17:52:26 +01:00
chriseth
49ac2a1ee5 Rename programSize to bytecodeSize. 2017-01-03 14:13:49 +01:00
chriseth
a285ca44f2 Assembly output for Assembly object. 2017-01-03 14:13:49 +01:00
Yoichi Hirai
2d60990238
libevmasm: OpPop() optimization keeps the source location
fixes #1521
2016-12-30 13:52:38 +01:00
chriseth
1e35526eb6 Fix tests. 2016-12-01 16:03:59 +01:00
chriseth
91ecc4533d Add swarm hash to the end of the bytecode. 2016-12-01 16:03:59 +01:00
Yoichi Hirai
77bad18648
libevmasm: remove an unused variable total 2016-12-01 11:31:58 +01:00
Yoichi Hirai
df4b405f9c Add more optimization rules 2016-11-30 11:16:43 +00:00
Alex Beregszaszi
3fdef92911 Replace XOR with self with 0 2016-11-30 11:16:43 +00:00
Alex Beregszaszi
b8bba66220 Replace XOR/ISZERO with EQ 2016-11-30 11:16:43 +00:00
Alex Beregszaszi
25160bfc26 Add optimiser rule for SUB with 0 2016-11-30 11:16:43 +00:00
chriseth
f521624952 Integrate AddPop. 2016-11-25 16:10:57 +01:00
chriseth
612c1726d9 Templatize. 2016-11-25 16:10:02 +01:00
chriseth
f2872bfa99 Peephole optimizer for unreacheable code. 2016-11-25 16:10:02 +01:00