neo-go/pkg/vm
Roman Khimov 27a01c7759 vm: optimize stack traversal on exception handling
Before:
BenchmarkOpcodes/THROW/0/1-8       10000               506 ns/op
BenchmarkOpcodes/THROW/0/16-8      10000               524 ns/op
BenchmarkOpcodes/THROW/255/0-8     10000             49363 ns/op
BenchmarkOpcodes/THROW/1023/0-8                    10000           1628480 ns/op

After:
BenchmarkOpcodes/THROW/0/1-8       10000               575 ns/op
BenchmarkOpcodes/THROW/0/16-8      10000               516 ns/op
BenchmarkOpcodes/THROW/255/0-8     10000              8290 ns/op
BenchmarkOpcodes/THROW/1023/0-8                    10000             34605 ns/op
2020-10-15 16:20:34 +03:00
..
cli vm: make (*Context).IP() return instruction pointer 2020-08-21 08:44:32 +03:00
emit emit: accept multiple opcodes in Opcode() 2020-10-06 18:03:25 +03:00
opcode vm: support exceptions 2020-07-24 10:41:41 +03:00
stackitem stackitem: limit buffer/bytearray reads upon deserialization 2020-10-07 23:08:20 +03:00
testdata vm: limit maximum nesting of exception contexts 2020-08-24 15:37:39 +03:00
context.go core: introduce CheckReturnState constants 2020-10-13 19:14:44 +03:00
contract_checks.go core: replace interop names with named constants 2020-08-14 14:21:54 +03:00
contract_checks_test.go core: change verification scripts to new format 2020-04-20 11:55:24 +03:00
debug_test.go vm: fix debugger and add tests 2020-08-18 11:26:27 +03:00
exception.go stackitem: change Bool() to TryBool(), prepare for its failures 2020-08-21 20:55:20 +03:00
interop.go core: replace interop names with named constants 2020-08-14 14:21:54 +03:00
interop_iterators.go core: adjust System.Enumerator.Create interop 2020-07-23 07:51:24 +03:00
json_test.go vm: update neo-vm tests, simplify parsing 2020-08-22 23:35:29 +03:00
ref_counter.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
ref_counter_test.go vm: move StackItem to a separate package 2020-06-08 13:27:08 +03:00
slot.go vm: allow to initialize static slot in method 2020-07-27 13:00:35 +03:00
slot_test.go vm: allow to initialize static slot in method 2020-07-27 13:00:35 +03:00
stack.go vm: optimize reversing items on the stack 2020-10-15 16:19:59 +03:00
stack_test.go vm: allow to convert stack to a slice 2020-07-31 16:07:16 +03:00
state.go remove github.com/pkg/errors from dependencies 2020-08-07 12:21:52 +03:00
state_test.go core, vm: store VMState as byte instead of string 2020-07-29 10:14:08 +03:00
vm.go vm: optimize stack traversal on exception handling 2020-10-15 16:20:34 +03:00
vm_test.go vm: handle very big int creation properly 2020-10-07 11:50:42 +03:00