Add AND and LE definitions

This commit is contained in:
Tobias Eidelpes 2021-06-03 10:07:37 +02:00
parent e69b2ed042
commit c16d22bc33

View File

@ -119,8 +119,10 @@ let step te cs =
else
match (getOpcode code pc, stack) with
| (ADD, a::b::stack') -> Next (Exec(((gas-1, pc+1, mem, (a+b):: stack'), (actor, input, code), gs) :: ps))
| (AND, a::b::stack') -> magic ()
| (LE, a::b::stack') -> magic ()
| (AND, a::b::stack') -> let c = (if a > 0 && b > 0 then 1 else 0) in
Next (Exec(((gas-1, pc+1, mem, c::stack'), (actor, input, code), gs) :: ps))
| (LE, a::b::stack') -> let c = (if a <= b then 1 else 0) in
Next (Exec(((gas-1, pc+1, mem, c::stack'), (actor, input, code), gs) :: ps))
| (PUSH x, stack') -> Next (Exec(((gas-1, pc+1, mem, x::stack'), (actor, input, code), gs)::ps))
| (POP, x::stack') -> magic ()
| (MSTORE, p::v::stack') -> Next (Exec(((gas-1, pc+1, update mem p v, stack'), (actor, input, code), gs)::ps))