vm: remove stack isolation opcodes

They are not present in NEO3 and will be creating additional difficulties
during future flow-control opcodes implementation.
This commit is contained in:
Evgenii Stratonikov 2020-04-23 11:40:06 +03:00
parent ab9d334182
commit fba185cd99
5 changed files with 89 additions and 326 deletions

View file

@ -38,6 +38,7 @@ func _() {
_ = x[PUSH14-30]
_ = x[PUSH15-31]
_ = x[PUSH16-32]
_ = x[OLDPUSH1-81]
_ = x[NOP-97]
_ = x[JMP-98]
_ = x[JMPIF-99]
@ -120,16 +121,11 @@ func _() {
_ = x[HASKEY-203]
_ = x[KEYS-204]
_ = x[VALUES-205]
_ = x[CALLI-224]
_ = x[CALLE-225]
_ = x[CALLED-226]
_ = x[CALLET-227]
_ = x[CALLEDT-228]
_ = x[THROW-240]
_ = x[THROWIFNOT-241]
}
const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMPIFJMPIFNOTCALLRETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKXDROPISNULLXSWAPXTUCKDEPTHDROPDUPNIPOVERPICKROLLROTSWAPTUCKCATSUBSTRLEFTRIGHTSIZEINVERTANDORXOREQUALINCDECSIGNNEGATEABSNOTNZADDSUBMULDIVMODSHLSHRBOOLANDBOOLORNUMEQUALNUMNOTEQUALLTGTLTEGTEMINMAXWITHINSHA1SHA256HASH160HASH256CHECKSIGVERIFYCHECKMULTISIGARRAYSIZEPACKUNPACKPICKITEMSETITEMNEWARRAYNEWSTRUCTNEWMAPAPPENDREVERSEREMOVEHASKEYKEYSVALUESCALLICALLECALLEDCALLETCALLEDTTHROWTHROWIFNOT"
const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16OLDPUSH1NOPJMPJMPIFJMPIFNOTCALLRETAPPCALLSYSCALLTAILCALLDUPFROMALTSTACKTOALTSTACKFROMALTSTACKXDROPISNULLXSWAPXTUCKDEPTHDROPDUPNIPOVERPICKROLLROTSWAPTUCKCATSUBSTRLEFTRIGHTSIZEINVERTANDORXOREQUALINCDECSIGNNEGATEABSNOTNZADDSUBMULDIVMODSHLSHRBOOLANDBOOLORNUMEQUALNUMNOTEQUALLTGTLTEGTEMINMAXWITHINSHA1SHA256HASH160HASH256CHECKSIGVERIFYCHECKMULTISIGARRAYSIZEPACKUNPACKPICKITEMSETITEMNEWARRAYNEWSTRUCTNEWMAPAPPENDREVERSEREMOVEHASKEYKEYSVALUESTHROWTHROWIFNOT"
var _Opcode_map = map[Opcode]string{
0: _Opcode_name[0:8],
@ -160,95 +156,91 @@ var _Opcode_map = map[Opcode]string{
30: _Opcode_name[170:176],
31: _Opcode_name[176:182],
32: _Opcode_name[182:188],
97: _Opcode_name[188:191],
98: _Opcode_name[191:194],
99: _Opcode_name[194:199],
100: _Opcode_name[199:207],
101: _Opcode_name[207:211],
102: _Opcode_name[211:214],
103: _Opcode_name[214:221],
104: _Opcode_name[221:228],
105: _Opcode_name[228:236],
106: _Opcode_name[236:251],
107: _Opcode_name[251:261],
108: _Opcode_name[261:273],
109: _Opcode_name[273:278],
112: _Opcode_name[278:284],
114: _Opcode_name[284:289],
115: _Opcode_name[289:294],
116: _Opcode_name[294:299],
117: _Opcode_name[299:303],
118: _Opcode_name[303:306],
119: _Opcode_name[306:309],
120: _Opcode_name[309:313],
121: _Opcode_name[313:317],
122: _Opcode_name[317:321],
123: _Opcode_name[321:324],
124: _Opcode_name[324:328],
125: _Opcode_name[328:332],
126: _Opcode_name[332:335],
127: _Opcode_name[335:341],
128: _Opcode_name[341:345],
129: _Opcode_name[345:350],
130: _Opcode_name[350:354],
131: _Opcode_name[354:360],
132: _Opcode_name[360:363],
133: _Opcode_name[363:365],
134: _Opcode_name[365:368],
135: _Opcode_name[368:373],
139: _Opcode_name[373:376],
140: _Opcode_name[376:379],
141: _Opcode_name[379:383],
143: _Opcode_name[383:389],
144: _Opcode_name[389:392],
145: _Opcode_name[392:395],
146: _Opcode_name[395:397],
147: _Opcode_name[397:400],
148: _Opcode_name[400:403],
149: _Opcode_name[403:406],
150: _Opcode_name[406:409],
151: _Opcode_name[409:412],
152: _Opcode_name[412:415],
153: _Opcode_name[415:418],
154: _Opcode_name[418:425],
155: _Opcode_name[425:431],
156: _Opcode_name[431:439],
158: _Opcode_name[439:450],
159: _Opcode_name[450:452],
160: _Opcode_name[452:454],
161: _Opcode_name[454:457],
162: _Opcode_name[457:460],
163: _Opcode_name[460:463],
164: _Opcode_name[463:466],
165: _Opcode_name[466:472],
167: _Opcode_name[472:476],
168: _Opcode_name[476:482],
169: _Opcode_name[482:489],
170: _Opcode_name[489:496],
172: _Opcode_name[496:504],
173: _Opcode_name[504:510],
174: _Opcode_name[510:523],
192: _Opcode_name[523:532],
193: _Opcode_name[532:536],
194: _Opcode_name[536:542],
195: _Opcode_name[542:550],
196: _Opcode_name[550:557],
197: _Opcode_name[557:565],
198: _Opcode_name[565:574],
199: _Opcode_name[574:580],
200: _Opcode_name[580:586],
201: _Opcode_name[586:593],
202: _Opcode_name[593:599],
203: _Opcode_name[599:605],
204: _Opcode_name[605:609],
205: _Opcode_name[609:615],
224: _Opcode_name[615:620],
225: _Opcode_name[620:625],
226: _Opcode_name[625:631],
227: _Opcode_name[631:637],
228: _Opcode_name[637:644],
240: _Opcode_name[644:649],
241: _Opcode_name[649:659],
81: _Opcode_name[188:196],
97: _Opcode_name[196:199],
98: _Opcode_name[199:202],
99: _Opcode_name[202:207],
100: _Opcode_name[207:215],
101: _Opcode_name[215:219],
102: _Opcode_name[219:222],
103: _Opcode_name[222:229],
104: _Opcode_name[229:236],
105: _Opcode_name[236:244],
106: _Opcode_name[244:259],
107: _Opcode_name[259:269],
108: _Opcode_name[269:281],
109: _Opcode_name[281:286],
112: _Opcode_name[286:292],
114: _Opcode_name[292:297],
115: _Opcode_name[297:302],
116: _Opcode_name[302:307],
117: _Opcode_name[307:311],
118: _Opcode_name[311:314],
119: _Opcode_name[314:317],
120: _Opcode_name[317:321],
121: _Opcode_name[321:325],
122: _Opcode_name[325:329],
123: _Opcode_name[329:332],
124: _Opcode_name[332:336],
125: _Opcode_name[336:340],
126: _Opcode_name[340:343],
127: _Opcode_name[343:349],
128: _Opcode_name[349:353],
129: _Opcode_name[353:358],
130: _Opcode_name[358:362],
131: _Opcode_name[362:368],
132: _Opcode_name[368:371],
133: _Opcode_name[371:373],
134: _Opcode_name[373:376],
135: _Opcode_name[376:381],
139: _Opcode_name[381:384],
140: _Opcode_name[384:387],
141: _Opcode_name[387:391],
143: _Opcode_name[391:397],
144: _Opcode_name[397:400],
145: _Opcode_name[400:403],
146: _Opcode_name[403:405],
147: _Opcode_name[405:408],
148: _Opcode_name[408:411],
149: _Opcode_name[411:414],
150: _Opcode_name[414:417],
151: _Opcode_name[417:420],
152: _Opcode_name[420:423],
153: _Opcode_name[423:426],
154: _Opcode_name[426:433],
155: _Opcode_name[433:439],
156: _Opcode_name[439:447],
158: _Opcode_name[447:458],
159: _Opcode_name[458:460],
160: _Opcode_name[460:462],
161: _Opcode_name[462:465],
162: _Opcode_name[465:468],
163: _Opcode_name[468:471],
164: _Opcode_name[471:474],
165: _Opcode_name[474:480],
167: _Opcode_name[480:484],
168: _Opcode_name[484:490],
169: _Opcode_name[490:497],
170: _Opcode_name[497:504],
172: _Opcode_name[504:512],
173: _Opcode_name[512:518],
174: _Opcode_name[518:531],
192: _Opcode_name[531:540],
193: _Opcode_name[540:544],
194: _Opcode_name[544:550],
195: _Opcode_name[550:558],
196: _Opcode_name[558:565],
197: _Opcode_name[565:573],
198: _Opcode_name[573:582],
199: _Opcode_name[582:588],
200: _Opcode_name[588:594],
201: _Opcode_name[594:601],
202: _Opcode_name[601:607],
203: _Opcode_name[607:613],
204: _Opcode_name[613:617],
205: _Opcode_name[617:623],
240: _Opcode_name[623:628],
241: _Opcode_name[628:638],
}
func (i Opcode) String() string {