diff options
author | Gav Wood <i@gavwood.com> | 2015-02-21 04:59:21 +0800 |
---|---|---|
committer | Gav Wood <i@gavwood.com> | 2015-02-21 04:59:21 +0800 |
commit | f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5 (patch) | |
tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 | |
parent | d5a2cf6491466c29891a572302ce76f11ee2a764 (diff) | |
download | dexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.tar.gz dexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.tar.zst dexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.zip |
Add EVMJIT.
-rw-r--r-- | CMakeLists.txt | 22 | ||||
-rw-r--r-- | main.cpp | 124 |
2 files changed, 0 insertions, 146 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index 4fdbdb85..00000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ -cmake_policy(SET CMP0015 NEW) -set(CMAKE_AUTOMOC OFF) - -aux_source_directory(. SRC_LIST) - -include_directories(BEFORE ${JSONCPP_INCLUDE_DIRS}) -include_directories(BEFORE ..) -include_directories(${Boost_INCLUDE_DIRS}) - -set(EXECUTABLE lllc) - -file(GLOB HEADERS "*.h") -add_executable(${EXECUTABLE} ${SRC_LIST} ${HEADERS}) - -add_dependencies(${EXECUTABLE} BuildInfo.h) - -target_link_libraries(${EXECUTABLE} lll) -target_link_libraries(${EXECUTABLE} evmcore) -target_link_libraries(${EXECUTABLE} devcore) - -install( TARGETS ${EXECUTABLE} DESTINATION bin ) - diff --git a/main.cpp b/main.cpp deleted file mode 100644 index 1a44ee95..00000000 --- a/main.cpp +++ /dev/null @@ -1,124 +0,0 @@ -/* - This file is part of cpp-ethereum. - - cpp-ethereum is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - cpp-ethereum is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with cpp-ethereum. If not, see <http://www.gnu.org/licenses/>. -*/ -/** @file main.cpp - * @author Gav Wood <i@gavwood.com> - * @date 2014 - * Ethereum client. - */ - -#include <fstream> -#include <iostream> -#include <liblll/Compiler.h> -#include <libdevcore/CommonIO.h> -#include <libdevcore/CommonData.h> -#include <libevmcore/Instruction.h> -#include "BuildInfo.h" -using namespace std; -using namespace dev; -using namespace dev::eth; - -void help() -{ - cout - << "Usage lllc [OPTIONS] <file>" << endl - << "Options:" << endl - << " -b,--binary Parse, compile and assemble; output byte code in binary." << endl - << " -x,--hex Parse, compile and assemble; output byte code in hex." << endl - << " -a,--assembly Only parse and compile; show assembly." << endl - << " -t,--parse-tree Only parse; show parse tree." << endl - << " -h,--help Show this help message and exit." << endl - << " -V,--version Show the version and exit." << endl; - exit(0); -} - -void version() -{ - cout << "LLLC, the Lovely Little Language Compiler " << dev::Version << endl; - cout << " By Gav Wood, (c) 2014." << endl; - cout << "Build: " << DEV_QUOTED(ETH_BUILD_PLATFORM) << "/" << DEV_QUOTED(ETH_BUILD_TYPE) << endl; - exit(0); -} - -enum Mode { Binary, Hex, Assembly, ParseTree, Disassemble }; - -int main(int argc, char** argv) -{ - unsigned optimise = 1; - string infile; - Mode mode = Hex; - - for (int i = 1; i < argc; ++i) - { - string arg = argv[i]; - if (arg == "-h" || arg == "--help") - help(); - else if (arg == "-b" || arg == "--binary") - mode = Binary; - else if (arg == "-x" || arg == "--hex") - mode = Hex; - else if (arg == "-a" || arg == "--assembly") - mode = Assembly; - else if (arg == "-t" || arg == "--parse-tree") - mode = ParseTree; - else if ((arg == "-o" || arg == "--optimise") && argc > i + 1) - optimise = atoi(argv[++i]); - else if (arg == "-d" || arg == "--disassemble") - mode = Disassemble; - else if (arg == "-V" || arg == "--version") - version(); - else - infile = argv[i]; - } - - string src; - if (infile.empty()) - { - string s; - while (!cin.eof()) - { - getline(cin, s); - src.append(s); - } - } - else - src = asString(contents(infile)); - - vector<string> errors; - if (src.empty()) - errors.push_back("Empty file."); - else if (mode == Disassemble) - { - cout << disassemble(fromHex(src)) << endl; - } - else if (mode == Binary || mode == Hex) - { - auto bs = compileLLL(src, optimise ? true : false, &errors); - if (mode == Hex) - cout << toHex(bs) << endl; - else if (mode == Binary) - cout.write((char const*)bs.data(), bs.size()); - } - else if (mode == ParseTree) - cout << parseLLL(src) << endl; - else if (mode == Assembly) - cout << compileLLLToAsm(src, optimise ? true : false, &errors) << endl; - for (auto const& i: errors) - cerr << i << endl; - if ( errors.size() ) - return 1; - return 0; -} |