aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGav Wood <i@gavwood.com>2015-02-21 04:59:21 +0800
committerGav Wood <i@gavwood.com>2015-02-21 04:59:21 +0800
commitf7a09848f73d23c3732bf9a7ca72d95e6d50ccb5 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904
parentd5a2cf6491466c29891a572302ce76f11ee2a764 (diff)
downloaddexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.tar.gz
dexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.tar.zst
dexon-solidity-f7a09848f73d23c3732bf9a7ca72d95e6d50ccb5.zip
Add EVMJIT.
-rw-r--r--CMakeLists.txt22
-rw-r--r--main.cpp124
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;
-}