From f0fe03117ad2f1d3770bb566c4d2f21fbe36c91e Mon Sep 17 00:00:00 2001 From: Evgeniy Stratonikov Date: Mon, 18 Jan 2021 16:19:09 +0300 Subject: [PATCH] compiler: optimize struct copy a bit POPITEM is cheaper than PUSH + PICKITEM. --- pkg/compiler/codegen.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/compiler/codegen.go b/pkg/compiler/codegen.go index d62474aef..138513962 100644 --- a/pkg/compiler/codegen.go +++ b/pkg/compiler/codegen.go @@ -852,7 +852,7 @@ func (c *codegen) Visit(node ast.Node) ast.Visitor { // This way even non-pointer struct fields will be copied. emit.Opcodes(c.prog.BinWriter, opcode.NEWARRAY0, opcode.DUP, opcode.ROT, opcode.APPEND, - opcode.PUSH0, opcode.PICKITEM) + opcode.POPITEM) } } // Do not swap for builtin functions.