From ee3cfd8f528c9c950ab416b22d34ddfee978f999 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Wed, 26 Oct 2016 01:12:15 +0100 Subject: LLL: use NOT for ~ --- liblll/CodeFragment.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) (limited to 'liblll') diff --git a/liblll/CodeFragment.cpp b/liblll/CodeFragment.cpp index 02351c3f..ce3024f6 100644 --- a/liblll/CodeFragment.cpp +++ b/liblll/CodeFragment.cpp @@ -332,7 +332,7 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s) std::map const c_arith = { { "+", Instruction::ADD }, { "-", Instruction::SUB }, { "*", Instruction::MUL }, { "/", Instruction::DIV }, { "%", Instruction::MOD }, { "&", Instruction::AND }, { "|", Instruction::OR }, { "^", Instruction::XOR } }; std::map> const c_binary = { { "<", { Instruction::LT, false } }, { "<=", { Instruction::GT, true } }, { ">", { Instruction::GT, false } }, { ">=", { Instruction::LT, true } }, { "S<", { Instruction::SLT, false } }, { "S<=", { Instruction::SGT, true } }, { "S>", { Instruction::SGT, false } }, { "S>=", { Instruction::SLT, true } }, { "=", { Instruction::EQ, false } }, { "!=", { Instruction::EQ, true } } }; - std::map const c_unary = { { "!", Instruction::ISZERO } }; + std::map const c_unary = { { "!", Instruction::ISZERO }, { "~", Instruction::NOT } }; vector code; CompilerState ns = _s; @@ -541,15 +541,6 @@ void CodeFragment::constructOperation(sp::utree const& _t, CompilerState& _s) // At end now. m_asm.append(end); } - else if (us == "~") - { - requireSize(1); - requireDeposit(0, 1); - - m_asm.append(code[0].m_asm, 1); - m_asm.append(bigint(u256(0) - 1); - m_asm.append(Instruction::SUB); - } else if (us == "SEQ") { unsigned ii = 0; -- cgit