Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

EVM opcodes translation #245

Closed
nevgeny opened this issue Sep 27, 2018 · 0 comments
Closed

EVM opcodes translation #245

nevgeny opened this issue Sep 27, 2018 · 0 comments

Comments

@nevgeny
Copy link
Contributor

nevgeny commented Sep 27, 2018

Some ideas about EVM ops translation.

  • JUMP,JUMPI. EVM uses runtime setting of direction for jump and so we can't define where exactly in code direction will be defined.
    But EVM has a rule about jump. We can jump only to JUMPDEST.
    Solution. We can found all jumpdests and their addresses. After that, for each jumpdest we need to translate in the label.
    And then we need to trace the addresses of jumpdests and their labels. And now before jump or jumpi we can get from map required label.
    To avoid collisions in map we use negative value of the address.(In EVM all values are unsigned)
  • Storage. Storage in EVM is map uint256 -> uint256.
    Solution. Now there's no problem about it. We can use sput and sget ops, or not?
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 15, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 15, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 15, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 15, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 17, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 23, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 24, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 24, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Oct 24, 2018
nevgeny added a commit to nevgeny/pravda that referenced this issue Nov 7, 2018
@vovapolu vovapolu closed this as completed Nov 7, 2018
vovapolu added a commit that referenced this issue Dec 7, 2018
vovapolu added a commit that referenced this issue Dec 7, 2018
vovapolu added a commit that referenced this issue Dec 10, 2018
Close #245: Initial code for EVM translator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants