aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity/codegen
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2016-04-07 02:55:46 +0800
committerchriseth <c@ethdev.com>2016-04-07 02:56:00 +0800
commitf227050c203fd0da70fcefbbecc922fd16045aa6 (patch)
tree40ad7d2e00f051368349bdfc017a0d4b455d8313 /libsolidity/codegen
parent193b1c940ce3e21d52e2cbdd253c1d7cb820fa06 (diff)
downloaddexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar.gz
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar.bz2
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar.lz
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar.xz
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.tar.zst
dexon-solidity-f227050c203fd0da70fcefbbecc922fd16045aa6.zip
Make solidity independent from ethcore.
Diffstat (limited to 'libsolidity/codegen')
-rw-r--r--libsolidity/codegen/Compiler.cpp5
-rw-r--r--libsolidity/codegen/ExpressionCompiler.cpp11
2 files changed, 6 insertions, 10 deletions
diff --git a/libsolidity/codegen/Compiler.cpp b/libsolidity/codegen/Compiler.cpp
index 8b718fca..614c01ee 100644
--- a/libsolidity/codegen/Compiler.cpp
+++ b/libsolidity/codegen/Compiler.cpp
@@ -24,8 +24,8 @@
#include <algorithm>
#include <boost/range/adaptor/reversed.hpp>
#include <libevmasm/Instruction.h>
-#include <libethcore/ChainOperationParams.h>
#include <libevmasm/Assembly.h>
+#include <libevmasm/GasMeter.h>
#include <libsolidity/inlineasm/AsmCodeGen.h>
#include <libsolidity/ast/AST.h>
#include <libsolidity/codegen/ExpressionCompiler.h>
@@ -853,7 +853,6 @@ void Compiler::compileExpression(Expression const& _expression, TypePointer cons
eth::Assembly Compiler::cloneRuntime()
{
- eth::EVMSchedule schedule;
eth::Assembly a;
a << Instruction::CALLDATASIZE;
a << u256(0) << Instruction::DUP1 << Instruction::CALLDATACOPY;
@@ -863,7 +862,7 @@ eth::Assembly Compiler::cloneRuntime()
// this is the address which has to be substituted by the linker.
//@todo implement as special "marker" AssemblyItem.
a << u256("0xcafecafecafecafecafecafecafecafecafecafe");
- a << u256(schedule.callGas + 10) << Instruction::GAS << Instruction::SUB;
+ a << u256(eth::GasCosts::callGas + 10) << Instruction::GAS << Instruction::SUB;
a << Instruction::DELEGATECALL;
//Propagate error condition (if DELEGATECALL pushes 0 on stack).
a << Instruction::ISZERO;
diff --git a/libsolidity/codegen/ExpressionCompiler.cpp b/libsolidity/codegen/ExpressionCompiler.cpp
index ed36fb24..d1cbc8ed 100644
--- a/libsolidity/codegen/ExpressionCompiler.cpp
+++ b/libsolidity/codegen/ExpressionCompiler.cpp
@@ -25,16 +25,14 @@
#include <boost/range/adaptor/reversed.hpp>
#include <libdevcore/Common.h>
#include <libdevcore/SHA3.h>
-#include <libethcore/ChainOperationParams.h>
#include <libsolidity/ast/AST.h>
#include <libsolidity/codegen/ExpressionCompiler.h>
#include <libsolidity/codegen/CompilerContext.h>
#include <libsolidity/codegen/CompilerUtils.h>
#include <libsolidity/codegen/LValue.h>
+#include <libevmasm/GasMeter.h>
using namespace std;
-// TODO: FIXME: HOMESTEAD: XXX: @chriseth Params deprecated - use EVMSchedule instead.
-
namespace dev
{
namespace solidity
@@ -1454,14 +1452,13 @@ void ExpressionCompiler::appendExternalFunctionCall(
m_context << dupInstruction(m_context.baseToCurrentStackOffset(gasStackPos));
else
{
- eth::EVMSchedule schedule;
// send all gas except the amount needed to execute "SUB" and "CALL"
// @todo this retains too much gas for now, needs to be fine-tuned.
- u256 gasNeededByCaller = schedule.callGas + 10;
+ u256 gasNeededByCaller = eth::GasCosts::callGas + 10;
if (_functionType.valueSet())
- gasNeededByCaller += schedule.callValueTransferGas;
+ gasNeededByCaller += eth::GasCosts::callValueTransferGas;
if (!isCallCode && !isDelegateCall)
- gasNeededByCaller += schedule.callNewAccountGas; // we never know
+ gasNeededByCaller += eth::GasCosts::callNewAccountGas; // we never know
m_context <<
gasNeededByCaller <<
Instruction::GAS <<