neoneo-go/pkg/vm/opcode/opcode_string.go
Evgenii Stratonikov 0cb6dc47e4 vm: implement slot-related opcodes
1. Slot is a new mechanism for storing variables during execution
which is more convenient than alt.stack. This commit implements
support for slot opcodes in both vm and compiler.
2. Remove old alt.stack opcodes.
3. Do not process globals at the start of every function, but instead
load them single time at main.
2020-05-12 16:23:08 +03:00

380 lines
9.7 KiB
Go

// Code generated by "stringer -type Opcode"; DO NOT EDIT.
package opcode
import "strconv"
func _() {
// An "invalid array index" compiler error signifies that the constant values have changed.
// Re-run the stringer command to generate them again.
var x [1]struct{}
_ = x[PUSHINT8-0]
_ = x[PUSHINT16-1]
_ = x[PUSHINT32-2]
_ = x[PUSHINT64-3]
_ = x[PUSHINT128-4]
_ = x[PUSHINT256-5]
_ = x[PUSHA-10]
_ = x[PUSHNULL-11]
_ = x[PUSHDATA1-12]
_ = x[PUSHDATA2-13]
_ = x[PUSHDATA4-14]
_ = x[PUSHM1-15]
_ = x[PUSH0-16]
_ = x[PUSHF-16]
_ = x[PUSH1-17]
_ = x[PUSHT-17]
_ = x[PUSH2-18]
_ = x[PUSH3-19]
_ = x[PUSH4-20]
_ = x[PUSH5-21]
_ = x[PUSH6-22]
_ = x[PUSH7-23]
_ = x[PUSH8-24]
_ = x[PUSH9-25]
_ = x[PUSH10-26]
_ = x[PUSH11-27]
_ = x[PUSH12-28]
_ = x[PUSH13-29]
_ = x[PUSH14-30]
_ = x[PUSH15-31]
_ = x[PUSH16-32]
_ = x[NOP-33]
_ = x[JMP-34]
_ = x[JMPL-35]
_ = x[JMPIF-36]
_ = x[JMPIFL-37]
_ = x[JMPIFNOT-38]
_ = x[JMPIFNOTL-39]
_ = x[JMPEQ-40]
_ = x[JMPEQL-41]
_ = x[JMPNE-42]
_ = x[JMPNEL-43]
_ = x[JMPGT-44]
_ = x[JMPGTL-45]
_ = x[JMPGE-46]
_ = x[JMPGEL-47]
_ = x[JMPLT-48]
_ = x[JMPLTL-49]
_ = x[JMPLE-50]
_ = x[JMPLEL-51]
_ = x[CALL-52]
_ = x[CALLL-53]
_ = x[CALLA-54]
_ = x[ABORT-55]
_ = x[ASSERT-56]
_ = x[THROW-58]
_ = x[RET-64]
_ = x[SYSCALL-65]
_ = x[DEPTH-67]
_ = x[DROP-69]
_ = x[NIP-70]
_ = x[XDROP-72]
_ = x[CLEAR-73]
_ = x[DUP-74]
_ = x[OVER-75]
_ = x[PICK-77]
_ = x[TUCK-78]
_ = x[SWAP-80]
_ = x[OLDPUSH1-81]
_ = x[ROT-81]
_ = x[ROLL-82]
_ = x[REVERSE3-83]
_ = x[REVERSE4-84]
_ = x[REVERSEN-85]
_ = x[INITSSLOT-86]
_ = x[INITSLOT-87]
_ = x[LDSFLD0-88]
_ = x[LDSFLD1-89]
_ = x[LDSFLD2-90]
_ = x[LDSFLD3-91]
_ = x[LDSFLD4-92]
_ = x[LDSFLD5-93]
_ = x[LDSFLD6-94]
_ = x[LDSFLD-95]
_ = x[STSFLD0-96]
_ = x[STSFLD1-97]
_ = x[STSFLD2-98]
_ = x[STSFLD3-99]
_ = x[STSFLD4-100]
_ = x[STSFLD5-101]
_ = x[STSFLD6-102]
_ = x[STSFLD-103]
_ = x[LDLOC0-104]
_ = x[LDLOC1-105]
_ = x[LDLOC2-106]
_ = x[LDLOC3-107]
_ = x[LDLOC4-108]
_ = x[LDLOC5-109]
_ = x[LDLOC6-110]
_ = x[LDLOC-111]
_ = x[STLOC0-112]
_ = x[STLOC1-113]
_ = x[STLOC2-114]
_ = x[STLOC3-115]
_ = x[STLOC4-116]
_ = x[STLOC5-117]
_ = x[STLOC6-118]
_ = x[STLOC-119]
_ = x[LDARG0-120]
_ = x[LDARG1-121]
_ = x[LDARG2-122]
_ = x[LDARG3-123]
_ = x[LDARG4-124]
_ = x[LDARG5-125]
_ = x[LDARG6-126]
_ = x[LDARG-127]
_ = x[STARG0-128]
_ = x[STARG1-129]
_ = x[STARG2-130]
_ = x[STARG3-131]
_ = x[STARG4-132]
_ = x[STARG5-133]
_ = x[STARG6-134]
_ = x[STARG-135]
_ = x[CAT-139]
_ = x[SUBSTR-140]
_ = x[LEFT-141]
_ = x[RIGHT-142]
_ = x[INVERT-144]
_ = x[AND-145]
_ = x[OR-146]
_ = x[XOR-147]
_ = x[EQUAL-151]
_ = x[NOTEQUAL-152]
_ = x[SIGN-153]
_ = x[ABS-154]
_ = x[NEGATE-155]
_ = x[INC-156]
_ = x[DEC-157]
_ = x[ADD-158]
_ = x[SUB-159]
_ = x[MUL-160]
_ = x[DIV-161]
_ = x[MOD-162]
_ = x[SHL-168]
_ = x[SHR-169]
_ = x[NOT-170]
_ = x[BOOLAND-171]
_ = x[BOOLOR-172]
_ = x[NZ-177]
_ = x[NUMEQUAL-179]
_ = x[NUMNOTEQUAL-180]
_ = x[LT-181]
_ = x[LTE-182]
_ = x[GT-183]
_ = x[GTE-184]
_ = x[MIN-185]
_ = x[MAX-186]
_ = x[WITHIN-187]
_ = x[PACK-192]
_ = x[UNPACK-193]
_ = x[NEWARRAY0-194]
_ = x[NEWARRAY-195]
_ = x[NEWARRAYT-196]
_ = x[NEWSTRUCT0-197]
_ = x[NEWSTRUCT-198]
_ = 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[CLEARITEMS-211]
_ = x[ISNULL-216]
_ = x[ISTYPE-217]
_ = x[CONVERT-219]
}
const _Opcode_name = "PUSHINT8PUSHINT16PUSHINT32PUSHINT64PUSHINT128PUSHINT256PUSHAPUSHNULLPUSHDATA1PUSHDATA2PUSHDATA4PUSHM1PUSH0PUSH1PUSH2PUSH3PUSH4PUSH5PUSH6PUSH7PUSH8PUSH9PUSH10PUSH11PUSH12PUSH13PUSH14PUSH15PUSH16NOPJMPJMPLJMPIFJMPIFLJMPIFNOTJMPIFNOTLJMPEQJMPEQLJMPNEJMPNELJMPGTJMPGTLJMPGEJMPGELJMPLTJMPLTLJMPLEJMPLELCALLCALLLCALLAABORTASSERTTHROWRETSYSCALLDEPTHDROPNIPXDROPCLEARDUPOVERPICKTUCKSWAPOLDPUSH1ROLLREVERSE3REVERSE4REVERSENINITSSLOTINITSLOTLDSFLD0LDSFLD1LDSFLD2LDSFLD3LDSFLD4LDSFLD5LDSFLD6LDSFLDSTSFLD0STSFLD1STSFLD2STSFLD3STSFLD4STSFLD5STSFLD6STSFLDLDLOC0LDLOC1LDLOC2LDLOC3LDLOC4LDLOC5LDLOC6LDLOCSTLOC0STLOC1STLOC2STLOC3STLOC4STLOC5STLOC6STLOCLDARG0LDARG1LDARG2LDARG3LDARG4LDARG5LDARG6LDARGSTARG0STARG1STARG2STARG3STARG4STARG5STARG6STARGCATSUBSTRLEFTRIGHTINVERTANDORXOREQUALNOTEQUALSIGNABSNEGATEINCDECADDSUBMULDIVMODSHLSHRNOTBOOLANDBOOLORNZNUMEQUALNUMNOTEQUALLTLTEGTGTEMINMAXWITHINPACKUNPACKNEWARRAY0NEWARRAYNEWARRAYTNEWSTRUCT0NEWSTRUCTNEWMAPSIZEHASKEYKEYSVALUESPICKITEMAPPENDSETITEMREVERSEITEMSREMOVECLEARITEMSISNULLISTYPECONVERT"
var _Opcode_map = map[Opcode]string{
0: _Opcode_name[0:8],
1: _Opcode_name[8:17],
2: _Opcode_name[17:26],
3: _Opcode_name[26:35],
4: _Opcode_name[35:45],
5: _Opcode_name[45:55],
10: _Opcode_name[55:60],
11: _Opcode_name[60:68],
12: _Opcode_name[68:77],
13: _Opcode_name[77:86],
14: _Opcode_name[86:95],
15: _Opcode_name[95:101],
16: _Opcode_name[101:106],
17: _Opcode_name[106:111],
18: _Opcode_name[111:116],
19: _Opcode_name[116:121],
20: _Opcode_name[121:126],
21: _Opcode_name[126:131],
22: _Opcode_name[131:136],
23: _Opcode_name[136:141],
24: _Opcode_name[141:146],
25: _Opcode_name[146:151],
26: _Opcode_name[151:157],
27: _Opcode_name[157:163],
28: _Opcode_name[163:169],
29: _Opcode_name[169:175],
30: _Opcode_name[175:181],
31: _Opcode_name[181:187],
32: _Opcode_name[187:193],
33: _Opcode_name[193:196],
34: _Opcode_name[196:199],
35: _Opcode_name[199:203],
36: _Opcode_name[203:208],
37: _Opcode_name[208:214],
38: _Opcode_name[214:222],
39: _Opcode_name[222:231],
40: _Opcode_name[231:236],
41: _Opcode_name[236:242],
42: _Opcode_name[242:247],
43: _Opcode_name[247:253],
44: _Opcode_name[253:258],
45: _Opcode_name[258:264],
46: _Opcode_name[264:269],
47: _Opcode_name[269:275],
48: _Opcode_name[275:280],
49: _Opcode_name[280:286],
50: _Opcode_name[286:291],
51: _Opcode_name[291:297],
52: _Opcode_name[297:301],
53: _Opcode_name[301:306],
54: _Opcode_name[306:311],
55: _Opcode_name[311:316],
56: _Opcode_name[316:322],
58: _Opcode_name[322:327],
64: _Opcode_name[327:330],
65: _Opcode_name[330:337],
67: _Opcode_name[337:342],
69: _Opcode_name[342:346],
70: _Opcode_name[346:349],
72: _Opcode_name[349:354],
73: _Opcode_name[354:359],
74: _Opcode_name[359:362],
75: _Opcode_name[362:366],
77: _Opcode_name[366:370],
78: _Opcode_name[370:374],
80: _Opcode_name[374:378],
81: _Opcode_name[378:386],
82: _Opcode_name[386:390],
83: _Opcode_name[390:398],
84: _Opcode_name[398:406],
85: _Opcode_name[406:414],
86: _Opcode_name[414:423],
87: _Opcode_name[423:431],
88: _Opcode_name[431:438],
89: _Opcode_name[438:445],
90: _Opcode_name[445:452],
91: _Opcode_name[452:459],
92: _Opcode_name[459:466],
93: _Opcode_name[466:473],
94: _Opcode_name[473:480],
95: _Opcode_name[480:486],
96: _Opcode_name[486:493],
97: _Opcode_name[493:500],
98: _Opcode_name[500:507],
99: _Opcode_name[507:514],
100: _Opcode_name[514:521],
101: _Opcode_name[521:528],
102: _Opcode_name[528:535],
103: _Opcode_name[535:541],
104: _Opcode_name[541:547],
105: _Opcode_name[547:553],
106: _Opcode_name[553:559],
107: _Opcode_name[559:565],
108: _Opcode_name[565:571],
109: _Opcode_name[571:577],
110: _Opcode_name[577:583],
111: _Opcode_name[583:588],
112: _Opcode_name[588:594],
113: _Opcode_name[594:600],
114: _Opcode_name[600:606],
115: _Opcode_name[606:612],
116: _Opcode_name[612:618],
117: _Opcode_name[618:624],
118: _Opcode_name[624:630],
119: _Opcode_name[630:635],
120: _Opcode_name[635:641],
121: _Opcode_name[641:647],
122: _Opcode_name[647:653],
123: _Opcode_name[653:659],
124: _Opcode_name[659:665],
125: _Opcode_name[665:671],
126: _Opcode_name[671:677],
127: _Opcode_name[677:682],
128: _Opcode_name[682:688],
129: _Opcode_name[688:694],
130: _Opcode_name[694:700],
131: _Opcode_name[700:706],
132: _Opcode_name[706:712],
133: _Opcode_name[712:718],
134: _Opcode_name[718:724],
135: _Opcode_name[724:729],
139: _Opcode_name[729:732],
140: _Opcode_name[732:738],
141: _Opcode_name[738:742],
142: _Opcode_name[742:747],
144: _Opcode_name[747:753],
145: _Opcode_name[753:756],
146: _Opcode_name[756:758],
147: _Opcode_name[758:761],
151: _Opcode_name[761:766],
152: _Opcode_name[766:774],
153: _Opcode_name[774:778],
154: _Opcode_name[778:781],
155: _Opcode_name[781:787],
156: _Opcode_name[787:790],
157: _Opcode_name[790:793],
158: _Opcode_name[793:796],
159: _Opcode_name[796:799],
160: _Opcode_name[799:802],
161: _Opcode_name[802:805],
162: _Opcode_name[805:808],
168: _Opcode_name[808:811],
169: _Opcode_name[811:814],
170: _Opcode_name[814:817],
171: _Opcode_name[817:824],
172: _Opcode_name[824:830],
177: _Opcode_name[830:832],
179: _Opcode_name[832:840],
180: _Opcode_name[840:851],
181: _Opcode_name[851:853],
182: _Opcode_name[853:856],
183: _Opcode_name[856:858],
184: _Opcode_name[858:861],
185: _Opcode_name[861:864],
186: _Opcode_name[864:867],
187: _Opcode_name[867:873],
192: _Opcode_name[873:877],
193: _Opcode_name[877:883],
194: _Opcode_name[883:892],
195: _Opcode_name[892:900],
196: _Opcode_name[900:909],
197: _Opcode_name[909:919],
198: _Opcode_name[919:928],
200: _Opcode_name[928:934],
202: _Opcode_name[934:938],
203: _Opcode_name[938:944],
204: _Opcode_name[944:948],
205: _Opcode_name[948:954],
206: _Opcode_name[954:962],
207: _Opcode_name[962:968],
208: _Opcode_name[968:975],
209: _Opcode_name[975:987],
210: _Opcode_name[987:993],
211: _Opcode_name[993:1003],
216: _Opcode_name[1003:1009],
217: _Opcode_name[1009:1015],
219: _Opcode_name[1015:1022],
}
func (i Opcode) String() string {
if str, ok := _Opcode_map[i]; ok {
return str
}
return "Opcode(" + strconv.FormatInt(int64(i), 10) + ")"
}