From a052357872217d5e99e7ee1a7a4b524b53addcdd Mon Sep 17 00:00:00 2001 From: obscuren Date: Mon, 1 Dec 2014 22:05:38 +0100 Subject: Fixed EXP gas --- vm/vm_debug.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'vm') diff --git a/vm/vm_debug.go b/vm/vm_debug.go index 4daa3ab5b..ea94987d1 100644 --- a/vm/vm_debug.go +++ b/vm/vm_debug.go @@ -172,12 +172,13 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) { case EXP: require(2) - expGas := ethutil.FirstBitSet(stack.data[stack.Len()-2]) - expGas.Div(expGas, u256(8)) - expGas.Sub(u256(32), expGas) - expGas.Add(expGas, u256(1)) - - gas.Set(expGas) + exp := new(big.Int).Set(stack.data[stack.Len()-2]) + nbytes := 0 + for exp.Cmp(ethutil.Big0) > 0 { + nbytes += 1 + exp.Rsh(exp, 8) + } + gas.Set(big.NewInt(int64(nbytes + 1))) // Gas only case STOP: gas.Set(ethutil.Big0) -- cgit v1.2.3