vm: reorder Array/Map opcodes

Also SIZE can be used for both Arrays/Maps and ByteArrays.
This commit is contained in:
Evgenii Stratonikov 2020-04-24 12:24:08 +03:00
parent f940d6e5ad
commit 03761421f8
9 changed files with 119 additions and 129 deletions

View file

@ -85,7 +85,6 @@ func _() {
_ = x[SUBSTR-127]
_ = x[LEFT-128]
_ = x[RIGHT-129]
_ = x[SIZE-130]
_ = x[INVERT-131]
_ = x[AND-132]
_ = x[OR-133]
@ -123,25 +122,25 @@ func _() {
_ = x[CHECKSIG-172]
_ = x[VERIFY-173]
_ = x[CHECKMULTISIG-174]
_ = x[ARRAYSIZE-192]
_ = x[PACK-193]
_ = x[UNPACK-194]
_ = x[PICKITEM-195]
_ = x[SETITEM-196]
_ = x[NEWARRAY-197]
_ = x[PACK-192]
_ = x[UNPACK-193]
_ = x[NEWARRAY-195]
_ = x[NEWSTRUCT-198]
_ = x[NEWMAP-199]
_ = x[APPEND-200]
_ = x[REVERSE-201]
_ = x[REMOVE-202]
_ = x[NEWMAP-200]
_ = x[SIZE-202]
_ = x[HASKEY-203]
_ = x[KEYS-204]
_ = x[VALUES-205]
_ = x[PICKITEM-206]
_ = x[APPEND-207]
_ = x[SETITEM-208]
_ = x[REVERSEITEMS-209]
_ = x[REMOVE-210]
_ = x[THROW-240]
_ = x[THROWIFNOT-241]
}
const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMP_LJMPIFJMPIF_LJMPIFNOTJMPIFNOT_LJMPEQJMPEQ_LJMPNEJMPNE_LJMPGTJMPGT_LJMPGEJMPGE_LJMPLTJMPLT_LJMPLEJMPLE_LCALLCALL_LOLDPUSH1RETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKXDROPISNULLXSWAPXTUCKDEPTHDROPDUPNIPOVERPICKROLLROTSWAPTUCKCATSUBSTRLEFTRIGHTSIZEINVERTANDORXOREQUALINCDECSIGNNEGATEABSNOTNZADDSUBMULDIVMODSHLSHRBOOLANDBOOLORNUMEQUALNUMNOTEQUALLTGTLTEGTEMINMAXWITHINSHA1SHA256HASH160HASH256CHECKSIGVERIFYCHECKMULTISIGARRAYSIZEPACKUNPACKPICKITEMSETITEMNEWARRAYNEWSTRUCTNEWMAPAPPENDREVERSEREMOVEHASKEYKEYSVALUESTHROWTHROWIFNOT"
const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMP_LJMPIFJMPIF_LJMPIFNOTJMPIFNOT_LJMPEQJMPEQ_LJMPNEJMPNE_LJMPGTJMPGT_LJMPGEJMPGE_LJMPLTJMPLT_LJMPLEJMPLE_LCALLCALL_LOLDPUSH1RETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKXDROPISNULLXSWAPXTUCKDEPTHDROPDUPNIPOVERPICKROLLROTSWAPTUCKCATSUBSTRLEFTRIGHTINVERTANDORXOREQUALINCDECSIGNNEGATEABSNOTNZADDSUBMULDIVMODSHLSHRBOOLANDBOOLORNUMEQUALNUMNOTEQUALLTGTLTEGTEMINMAXWITHINSHA1SHA256HASH160HASH256CHECKSIGVERIFYCHECKMULTISIGPACKUNPACKNEWARRAYNEWSTRUCTNEWMAPSIZEHASKEYKEYSVALUESPICKITEMAPPENDSETITEMREVERSEITEMSREMOVETHROWTHROWIFNOT"
var _Opcode_map = map[Opcode]string{
0: _Opcode_name[0:8],
@ -219,60 +218,59 @@ var _Opcode_map = map[Opcode]string{
127: _Opcode_name[443:449],
128: _Opcode_name[449:453],
129: _Opcode_name[453:458],
130: _Opcode_name[458:462],
131: _Opcode_name[462:468],
132: _Opcode_name[468:471],
133: _Opcode_name[471:473],
134: _Opcode_name[473:476],
135: _Opcode_name[476:481],
139: _Opcode_name[481:484],
140: _Opcode_name[484:487],
141: _Opcode_name[487:491],
143: _Opcode_name[491:497],
144: _Opcode_name[497:500],
145: _Opcode_name[500:503],
146: _Opcode_name[503:505],
147: _Opcode_name[505:508],
148: _Opcode_name[508:511],
149: _Opcode_name[511:514],
150: _Opcode_name[514:517],
151: _Opcode_name[517:520],
152: _Opcode_name[520:523],
153: _Opcode_name[523:526],
154: _Opcode_name[526:533],
155: _Opcode_name[533:539],
156: _Opcode_name[539:547],
158: _Opcode_name[547:558],
159: _Opcode_name[558:560],
160: _Opcode_name[560:562],
161: _Opcode_name[562:565],
162: _Opcode_name[565:568],
163: _Opcode_name[568:571],
164: _Opcode_name[571:574],
165: _Opcode_name[574:580],
167: _Opcode_name[580:584],
168: _Opcode_name[584:590],
169: _Opcode_name[590:597],
170: _Opcode_name[597:604],
172: _Opcode_name[604:612],
173: _Opcode_name[612:618],
174: _Opcode_name[618:631],
192: _Opcode_name[631:640],
193: _Opcode_name[640:644],
194: _Opcode_name[644:650],
195: _Opcode_name[650:658],
196: _Opcode_name[658:665],
197: _Opcode_name[665:673],
198: _Opcode_name[673:682],
199: _Opcode_name[682:688],
200: _Opcode_name[688:694],
201: _Opcode_name[694:701],
202: _Opcode_name[701:707],
203: _Opcode_name[707:713],
204: _Opcode_name[713:717],
205: _Opcode_name[717:723],
240: _Opcode_name[723:728],
241: _Opcode_name[728:738],
131: _Opcode_name[458:464],
132: _Opcode_name[464:467],
133: _Opcode_name[467:469],
134: _Opcode_name[469:472],
135: _Opcode_name[472:477],
139: _Opcode_name[477:480],
140: _Opcode_name[480:483],
141: _Opcode_name[483:487],
143: _Opcode_name[487:493],
144: _Opcode_name[493:496],
145: _Opcode_name[496:499],
146: _Opcode_name[499:501],
147: _Opcode_name[501:504],
148: _Opcode_name[504:507],
149: _Opcode_name[507:510],
150: _Opcode_name[510:513],
151: _Opcode_name[513:516],
152: _Opcode_name[516:519],
153: _Opcode_name[519:522],
154: _Opcode_name[522:529],
155: _Opcode_name[529:535],
156: _Opcode_name[535:543],
158: _Opcode_name[543:554],
159: _Opcode_name[554:556],
160: _Opcode_name[556:558],
161: _Opcode_name[558:561],
162: _Opcode_name[561:564],
163: _Opcode_name[564:567],
164: _Opcode_name[567:570],
165: _Opcode_name[570:576],
167: _Opcode_name[576:580],
168: _Opcode_name[580:586],
169: _Opcode_name[586:593],
170: _Opcode_name[593:600],
172: _Opcode_name[600:608],
173: _Opcode_name[608:614],
174: _Opcode_name[614:627],
192: _Opcode_name[627:631],
193: _Opcode_name[631:637],
195: _Opcode_name[637:645],
198: _Opcode_name[645:654],
200: _Opcode_name[654:660],
202: _Opcode_name[660:664],
203: _Opcode_name[664:670],
204: _Opcode_name[670:674],
205: _Opcode_name[674:680],
206: _Opcode_name[680:688],
207: _Opcode_name[688:694],
208: _Opcode_name[694:701],
209: _Opcode_name[701:713],
210: _Opcode_name[713:719],
240: _Opcode_name[719:724],
241: _Opcode_name[724:734],
}
func (i Opcode) String() string {