]> Cypherpunks.ru repositories - gostls13.git/blob - src/cmd/compile/internal/typecheck/builtin.go
cmd/compile,runtime: dedup writeBarrier needed
[gostls13.git] / src / cmd / compile / internal / typecheck / builtin.go
1 // Code generated by mkbuiltin.go. DO NOT EDIT.
2
3 package typecheck
4
5 import (
6         "cmd/compile/internal/types"
7         "cmd/internal/src"
8 )
9
10 // Not inlining this function removes a significant chunk of init code.
11 //
12 //go:noinline
13 func newSig(params, results []*types.Field) *types.Type {
14         return types.NewSignature(nil, params, results)
15 }
16
17 func params(tlist ...*types.Type) []*types.Field {
18         flist := make([]*types.Field, len(tlist))
19         for i, typ := range tlist {
20                 flist[i] = types.NewField(src.NoXPos, nil, typ)
21         }
22         return flist
23 }
24
25 var runtimeDecls = [...]struct {
26         name string
27         tag  int
28         typ  int
29 }{
30         {"newobject", funcTag, 4},
31         {"mallocgc", funcTag, 8},
32         {"panicdivide", funcTag, 9},
33         {"panicshift", funcTag, 9},
34         {"panicmakeslicelen", funcTag, 9},
35         {"panicmakeslicecap", funcTag, 9},
36         {"throwinit", funcTag, 9},
37         {"panicwrap", funcTag, 9},
38         {"gopanic", funcTag, 11},
39         {"gorecover", funcTag, 14},
40         {"goschedguarded", funcTag, 9},
41         {"goPanicIndex", funcTag, 16},
42         {"goPanicIndexU", funcTag, 18},
43         {"goPanicSliceAlen", funcTag, 16},
44         {"goPanicSliceAlenU", funcTag, 18},
45         {"goPanicSliceAcap", funcTag, 16},
46         {"goPanicSliceAcapU", funcTag, 18},
47         {"goPanicSliceB", funcTag, 16},
48         {"goPanicSliceBU", funcTag, 18},
49         {"goPanicSlice3Alen", funcTag, 16},
50         {"goPanicSlice3AlenU", funcTag, 18},
51         {"goPanicSlice3Acap", funcTag, 16},
52         {"goPanicSlice3AcapU", funcTag, 18},
53         {"goPanicSlice3B", funcTag, 16},
54         {"goPanicSlice3BU", funcTag, 18},
55         {"goPanicSlice3C", funcTag, 16},
56         {"goPanicSlice3CU", funcTag, 18},
57         {"goPanicSliceConvert", funcTag, 16},
58         {"printbool", funcTag, 19},
59         {"printfloat", funcTag, 21},
60         {"printint", funcTag, 23},
61         {"printhex", funcTag, 25},
62         {"printuint", funcTag, 25},
63         {"printcomplex", funcTag, 27},
64         {"printstring", funcTag, 29},
65         {"printpointer", funcTag, 30},
66         {"printuintptr", funcTag, 31},
67         {"printiface", funcTag, 30},
68         {"printeface", funcTag, 30},
69         {"printslice", funcTag, 30},
70         {"printnl", funcTag, 9},
71         {"printsp", funcTag, 9},
72         {"printlock", funcTag, 9},
73         {"printunlock", funcTag, 9},
74         {"concatstring2", funcTag, 34},
75         {"concatstring3", funcTag, 35},
76         {"concatstring4", funcTag, 36},
77         {"concatstring5", funcTag, 37},
78         {"concatstrings", funcTag, 39},
79         {"cmpstring", funcTag, 40},
80         {"intstring", funcTag, 43},
81         {"slicebytetostring", funcTag, 44},
82         {"slicebytetostringtmp", funcTag, 45},
83         {"slicerunetostring", funcTag, 48},
84         {"stringtoslicebyte", funcTag, 50},
85         {"stringtoslicerune", funcTag, 53},
86         {"slicecopy", funcTag, 54},
87         {"decoderune", funcTag, 55},
88         {"countrunes", funcTag, 56},
89         {"convT", funcTag, 57},
90         {"convTnoptr", funcTag, 57},
91         {"convT16", funcTag, 59},
92         {"convT32", funcTag, 61},
93         {"convT64", funcTag, 62},
94         {"convTstring", funcTag, 63},
95         {"convTslice", funcTag, 66},
96         {"assertE2I", funcTag, 67},
97         {"assertE2I2", funcTag, 67},
98         {"panicdottypeE", funcTag, 68},
99         {"panicdottypeI", funcTag, 68},
100         {"panicnildottype", funcTag, 69},
101         {"typeAssert", funcTag, 67},
102         {"interfaceSwitch", funcTag, 70},
103         {"ifaceeq", funcTag, 72},
104         {"efaceeq", funcTag, 72},
105         {"deferrangefunc", funcTag, 73},
106         {"fastrand", funcTag, 74},
107         {"makemap64", funcTag, 76},
108         {"makemap", funcTag, 77},
109         {"makemap_small", funcTag, 78},
110         {"mapaccess1", funcTag, 79},
111         {"mapaccess1_fast32", funcTag, 80},
112         {"mapaccess1_fast64", funcTag, 81},
113         {"mapaccess1_faststr", funcTag, 82},
114         {"mapaccess1_fat", funcTag, 83},
115         {"mapaccess2", funcTag, 84},
116         {"mapaccess2_fast32", funcTag, 85},
117         {"mapaccess2_fast64", funcTag, 86},
118         {"mapaccess2_faststr", funcTag, 87},
119         {"mapaccess2_fat", funcTag, 88},
120         {"mapassign", funcTag, 79},
121         {"mapassign_fast32", funcTag, 80},
122         {"mapassign_fast32ptr", funcTag, 89},
123         {"mapassign_fast64", funcTag, 81},
124         {"mapassign_fast64ptr", funcTag, 89},
125         {"mapassign_faststr", funcTag, 82},
126         {"mapiterinit", funcTag, 90},
127         {"mapdelete", funcTag, 90},
128         {"mapdelete_fast32", funcTag, 91},
129         {"mapdelete_fast64", funcTag, 92},
130         {"mapdelete_faststr", funcTag, 93},
131         {"mapiternext", funcTag, 94},
132         {"mapclear", funcTag, 95},
133         {"makechan64", funcTag, 97},
134         {"makechan", funcTag, 98},
135         {"chanrecv1", funcTag, 100},
136         {"chanrecv2", funcTag, 101},
137         {"chansend1", funcTag, 103},
138         {"closechan", funcTag, 30},
139         {"writeBarrier", varTag, 105},
140         {"typedmemmove", funcTag, 106},
141         {"typedmemclr", funcTag, 107},
142         {"typedslicecopy", funcTag, 108},
143         {"selectnbsend", funcTag, 109},
144         {"selectnbrecv", funcTag, 110},
145         {"selectsetpc", funcTag, 111},
146         {"selectgo", funcTag, 112},
147         {"block", funcTag, 9},
148         {"makeslice", funcTag, 113},
149         {"makeslice64", funcTag, 114},
150         {"makeslicecopy", funcTag, 115},
151         {"growslice", funcTag, 117},
152         {"unsafeslicecheckptr", funcTag, 118},
153         {"panicunsafeslicelen", funcTag, 9},
154         {"panicunsafeslicenilptr", funcTag, 9},
155         {"unsafestringcheckptr", funcTag, 119},
156         {"panicunsafestringlen", funcTag, 9},
157         {"panicunsafestringnilptr", funcTag, 9},
158         {"memmove", funcTag, 120},
159         {"memclrNoHeapPointers", funcTag, 121},
160         {"memclrHasPointers", funcTag, 121},
161         {"memequal", funcTag, 122},
162         {"memequal0", funcTag, 123},
163         {"memequal8", funcTag, 123},
164         {"memequal16", funcTag, 123},
165         {"memequal32", funcTag, 123},
166         {"memequal64", funcTag, 123},
167         {"memequal128", funcTag, 123},
168         {"f32equal", funcTag, 124},
169         {"f64equal", funcTag, 124},
170         {"c64equal", funcTag, 124},
171         {"c128equal", funcTag, 124},
172         {"strequal", funcTag, 124},
173         {"interequal", funcTag, 124},
174         {"nilinterequal", funcTag, 124},
175         {"memhash", funcTag, 125},
176         {"memhash0", funcTag, 126},
177         {"memhash8", funcTag, 126},
178         {"memhash16", funcTag, 126},
179         {"memhash32", funcTag, 126},
180         {"memhash64", funcTag, 126},
181         {"memhash128", funcTag, 126},
182         {"f32hash", funcTag, 127},
183         {"f64hash", funcTag, 127},
184         {"c64hash", funcTag, 127},
185         {"c128hash", funcTag, 127},
186         {"strhash", funcTag, 127},
187         {"interhash", funcTag, 127},
188         {"nilinterhash", funcTag, 127},
189         {"int64div", funcTag, 128},
190         {"uint64div", funcTag, 129},
191         {"int64mod", funcTag, 128},
192         {"uint64mod", funcTag, 129},
193         {"float64toint64", funcTag, 130},
194         {"float64touint64", funcTag, 131},
195         {"float64touint32", funcTag, 132},
196         {"int64tofloat64", funcTag, 133},
197         {"int64tofloat32", funcTag, 135},
198         {"uint64tofloat64", funcTag, 136},
199         {"uint64tofloat32", funcTag, 137},
200         {"uint32tofloat64", funcTag, 138},
201         {"complex128div", funcTag, 139},
202         {"getcallerpc", funcTag, 140},
203         {"getcallersp", funcTag, 140},
204         {"racefuncenter", funcTag, 31},
205         {"racefuncexit", funcTag, 9},
206         {"raceread", funcTag, 31},
207         {"racewrite", funcTag, 31},
208         {"racereadrange", funcTag, 141},
209         {"racewriterange", funcTag, 141},
210         {"msanread", funcTag, 141},
211         {"msanwrite", funcTag, 141},
212         {"msanmove", funcTag, 142},
213         {"asanread", funcTag, 141},
214         {"asanwrite", funcTag, 141},
215         {"checkptrAlignment", funcTag, 143},
216         {"checkptrArithmetic", funcTag, 145},
217         {"libfuzzerTraceCmp1", funcTag, 146},
218         {"libfuzzerTraceCmp2", funcTag, 147},
219         {"libfuzzerTraceCmp4", funcTag, 148},
220         {"libfuzzerTraceCmp8", funcTag, 149},
221         {"libfuzzerTraceConstCmp1", funcTag, 146},
222         {"libfuzzerTraceConstCmp2", funcTag, 147},
223         {"libfuzzerTraceConstCmp4", funcTag, 148},
224         {"libfuzzerTraceConstCmp8", funcTag, 149},
225         {"libfuzzerHookStrCmp", funcTag, 150},
226         {"libfuzzerHookEqualFold", funcTag, 150},
227         {"addCovMeta", funcTag, 152},
228         {"x86HasPOPCNT", varTag, 6},
229         {"x86HasSSE41", varTag, 6},
230         {"x86HasFMA", varTag, 6},
231         {"armHasVFPv4", varTag, 6},
232         {"arm64HasATOMICS", varTag, 6},
233         {"asanregisterglobals", funcTag, 121},
234 }
235
236 func runtimeTypes() []*types.Type {
237         var typs [153]*types.Type
238         typs[0] = types.ByteType
239         typs[1] = types.NewPtr(typs[0])
240         typs[2] = types.Types[types.TANY]
241         typs[3] = types.NewPtr(typs[2])
242         typs[4] = newSig(params(typs[1]), params(typs[3]))
243         typs[5] = types.Types[types.TUINTPTR]
244         typs[6] = types.Types[types.TBOOL]
245         typs[7] = types.Types[types.TUNSAFEPTR]
246         typs[8] = newSig(params(typs[5], typs[1], typs[6]), params(typs[7]))
247         typs[9] = newSig(nil, nil)
248         typs[10] = types.Types[types.TINTER]
249         typs[11] = newSig(params(typs[10]), nil)
250         typs[12] = types.Types[types.TINT32]
251         typs[13] = types.NewPtr(typs[12])
252         typs[14] = newSig(params(typs[13]), params(typs[10]))
253         typs[15] = types.Types[types.TINT]
254         typs[16] = newSig(params(typs[15], typs[15]), nil)
255         typs[17] = types.Types[types.TUINT]
256         typs[18] = newSig(params(typs[17], typs[15]), nil)
257         typs[19] = newSig(params(typs[6]), nil)
258         typs[20] = types.Types[types.TFLOAT64]
259         typs[21] = newSig(params(typs[20]), nil)
260         typs[22] = types.Types[types.TINT64]
261         typs[23] = newSig(params(typs[22]), nil)
262         typs[24] = types.Types[types.TUINT64]
263         typs[25] = newSig(params(typs[24]), nil)
264         typs[26] = types.Types[types.TCOMPLEX128]
265         typs[27] = newSig(params(typs[26]), nil)
266         typs[28] = types.Types[types.TSTRING]
267         typs[29] = newSig(params(typs[28]), nil)
268         typs[30] = newSig(params(typs[2]), nil)
269         typs[31] = newSig(params(typs[5]), nil)
270         typs[32] = types.NewArray(typs[0], 32)
271         typs[33] = types.NewPtr(typs[32])
272         typs[34] = newSig(params(typs[33], typs[28], typs[28]), params(typs[28]))
273         typs[35] = newSig(params(typs[33], typs[28], typs[28], typs[28]), params(typs[28]))
274         typs[36] = newSig(params(typs[33], typs[28], typs[28], typs[28], typs[28]), params(typs[28]))
275         typs[37] = newSig(params(typs[33], typs[28], typs[28], typs[28], typs[28], typs[28]), params(typs[28]))
276         typs[38] = types.NewSlice(typs[28])
277         typs[39] = newSig(params(typs[33], typs[38]), params(typs[28]))
278         typs[40] = newSig(params(typs[28], typs[28]), params(typs[15]))
279         typs[41] = types.NewArray(typs[0], 4)
280         typs[42] = types.NewPtr(typs[41])
281         typs[43] = newSig(params(typs[42], typs[22]), params(typs[28]))
282         typs[44] = newSig(params(typs[33], typs[1], typs[15]), params(typs[28]))
283         typs[45] = newSig(params(typs[1], typs[15]), params(typs[28]))
284         typs[46] = types.RuneType
285         typs[47] = types.NewSlice(typs[46])
286         typs[48] = newSig(params(typs[33], typs[47]), params(typs[28]))
287         typs[49] = types.NewSlice(typs[0])
288         typs[50] = newSig(params(typs[33], typs[28]), params(typs[49]))
289         typs[51] = types.NewArray(typs[46], 32)
290         typs[52] = types.NewPtr(typs[51])
291         typs[53] = newSig(params(typs[52], typs[28]), params(typs[47]))
292         typs[54] = newSig(params(typs[3], typs[15], typs[3], typs[15], typs[5]), params(typs[15]))
293         typs[55] = newSig(params(typs[28], typs[15]), params(typs[46], typs[15]))
294         typs[56] = newSig(params(typs[28]), params(typs[15]))
295         typs[57] = newSig(params(typs[1], typs[3]), params(typs[7]))
296         typs[58] = types.Types[types.TUINT16]
297         typs[59] = newSig(params(typs[58]), params(typs[7]))
298         typs[60] = types.Types[types.TUINT32]
299         typs[61] = newSig(params(typs[60]), params(typs[7]))
300         typs[62] = newSig(params(typs[24]), params(typs[7]))
301         typs[63] = newSig(params(typs[28]), params(typs[7]))
302         typs[64] = types.Types[types.TUINT8]
303         typs[65] = types.NewSlice(typs[64])
304         typs[66] = newSig(params(typs[65]), params(typs[7]))
305         typs[67] = newSig(params(typs[1], typs[1]), params(typs[1]))
306         typs[68] = newSig(params(typs[1], typs[1], typs[1]), nil)
307         typs[69] = newSig(params(typs[1]), nil)
308         typs[70] = newSig(params(typs[1], typs[1]), params(typs[15], typs[1]))
309         typs[71] = types.NewPtr(typs[5])
310         typs[72] = newSig(params(typs[71], typs[7], typs[7]), params(typs[6]))
311         typs[73] = newSig(nil, params(typs[10]))
312         typs[74] = newSig(nil, params(typs[60]))
313         typs[75] = types.NewMap(typs[2], typs[2])
314         typs[76] = newSig(params(typs[1], typs[22], typs[3]), params(typs[75]))
315         typs[77] = newSig(params(typs[1], typs[15], typs[3]), params(typs[75]))
316         typs[78] = newSig(nil, params(typs[75]))
317         typs[79] = newSig(params(typs[1], typs[75], typs[3]), params(typs[3]))
318         typs[80] = newSig(params(typs[1], typs[75], typs[60]), params(typs[3]))
319         typs[81] = newSig(params(typs[1], typs[75], typs[24]), params(typs[3]))
320         typs[82] = newSig(params(typs[1], typs[75], typs[28]), params(typs[3]))
321         typs[83] = newSig(params(typs[1], typs[75], typs[3], typs[1]), params(typs[3]))
322         typs[84] = newSig(params(typs[1], typs[75], typs[3]), params(typs[3], typs[6]))
323         typs[85] = newSig(params(typs[1], typs[75], typs[60]), params(typs[3], typs[6]))
324         typs[86] = newSig(params(typs[1], typs[75], typs[24]), params(typs[3], typs[6]))
325         typs[87] = newSig(params(typs[1], typs[75], typs[28]), params(typs[3], typs[6]))
326         typs[88] = newSig(params(typs[1], typs[75], typs[3], typs[1]), params(typs[3], typs[6]))
327         typs[89] = newSig(params(typs[1], typs[75], typs[7]), params(typs[3]))
328         typs[90] = newSig(params(typs[1], typs[75], typs[3]), nil)
329         typs[91] = newSig(params(typs[1], typs[75], typs[60]), nil)
330         typs[92] = newSig(params(typs[1], typs[75], typs[24]), nil)
331         typs[93] = newSig(params(typs[1], typs[75], typs[28]), nil)
332         typs[94] = newSig(params(typs[3]), nil)
333         typs[95] = newSig(params(typs[1], typs[75]), nil)
334         typs[96] = types.NewChan(typs[2], types.Cboth)
335         typs[97] = newSig(params(typs[1], typs[22]), params(typs[96]))
336         typs[98] = newSig(params(typs[1], typs[15]), params(typs[96]))
337         typs[99] = types.NewChan(typs[2], types.Crecv)
338         typs[100] = newSig(params(typs[99], typs[3]), nil)
339         typs[101] = newSig(params(typs[99], typs[3]), params(typs[6]))
340         typs[102] = types.NewChan(typs[2], types.Csend)
341         typs[103] = newSig(params(typs[102], typs[3]), nil)
342         typs[104] = types.NewArray(typs[0], 3)
343         typs[105] = types.NewStruct([]*types.Field{types.NewField(src.NoXPos, Lookup("enabled"), typs[6]), types.NewField(src.NoXPos, Lookup("pad"), typs[104]), types.NewField(src.NoXPos, Lookup("cgo"), typs[6]), types.NewField(src.NoXPos, Lookup("alignme"), typs[24])})
344         typs[106] = newSig(params(typs[1], typs[3], typs[3]), nil)
345         typs[107] = newSig(params(typs[1], typs[3]), nil)
346         typs[108] = newSig(params(typs[1], typs[3], typs[15], typs[3], typs[15]), params(typs[15]))
347         typs[109] = newSig(params(typs[102], typs[3]), params(typs[6]))
348         typs[110] = newSig(params(typs[3], typs[99]), params(typs[6], typs[6]))
349         typs[111] = newSig(params(typs[71]), nil)
350         typs[112] = newSig(params(typs[1], typs[1], typs[71], typs[15], typs[15], typs[6]), params(typs[15], typs[6]))
351         typs[113] = newSig(params(typs[1], typs[15], typs[15]), params(typs[7]))
352         typs[114] = newSig(params(typs[1], typs[22], typs[22]), params(typs[7]))
353         typs[115] = newSig(params(typs[1], typs[15], typs[15], typs[7]), params(typs[7]))
354         typs[116] = types.NewSlice(typs[2])
355         typs[117] = newSig(params(typs[3], typs[15], typs[15], typs[15], typs[1]), params(typs[116]))
356         typs[118] = newSig(params(typs[1], typs[7], typs[22]), nil)
357         typs[119] = newSig(params(typs[7], typs[22]), nil)
358         typs[120] = newSig(params(typs[3], typs[3], typs[5]), nil)
359         typs[121] = newSig(params(typs[7], typs[5]), nil)
360         typs[122] = newSig(params(typs[3], typs[3], typs[5]), params(typs[6]))
361         typs[123] = newSig(params(typs[3], typs[3]), params(typs[6]))
362         typs[124] = newSig(params(typs[7], typs[7]), params(typs[6]))
363         typs[125] = newSig(params(typs[3], typs[5], typs[5]), params(typs[5]))
364         typs[126] = newSig(params(typs[7], typs[5]), params(typs[5]))
365         typs[127] = newSig(params(typs[3], typs[5]), params(typs[5]))
366         typs[128] = newSig(params(typs[22], typs[22]), params(typs[22]))
367         typs[129] = newSig(params(typs[24], typs[24]), params(typs[24]))
368         typs[130] = newSig(params(typs[20]), params(typs[22]))
369         typs[131] = newSig(params(typs[20]), params(typs[24]))
370         typs[132] = newSig(params(typs[20]), params(typs[60]))
371         typs[133] = newSig(params(typs[22]), params(typs[20]))
372         typs[134] = types.Types[types.TFLOAT32]
373         typs[135] = newSig(params(typs[22]), params(typs[134]))
374         typs[136] = newSig(params(typs[24]), params(typs[20]))
375         typs[137] = newSig(params(typs[24]), params(typs[134]))
376         typs[138] = newSig(params(typs[60]), params(typs[20]))
377         typs[139] = newSig(params(typs[26], typs[26]), params(typs[26]))
378         typs[140] = newSig(nil, params(typs[5]))
379         typs[141] = newSig(params(typs[5], typs[5]), nil)
380         typs[142] = newSig(params(typs[5], typs[5], typs[5]), nil)
381         typs[143] = newSig(params(typs[7], typs[1], typs[5]), nil)
382         typs[144] = types.NewSlice(typs[7])
383         typs[145] = newSig(params(typs[7], typs[144]), nil)
384         typs[146] = newSig(params(typs[64], typs[64], typs[17]), nil)
385         typs[147] = newSig(params(typs[58], typs[58], typs[17]), nil)
386         typs[148] = newSig(params(typs[60], typs[60], typs[17]), nil)
387         typs[149] = newSig(params(typs[24], typs[24], typs[17]), nil)
388         typs[150] = newSig(params(typs[28], typs[28], typs[17]), nil)
389         typs[151] = types.NewArray(typs[0], 16)
390         typs[152] = newSig(params(typs[7], typs[60], typs[151], typs[28], typs[15], typs[64], typs[64]), params(typs[60]))
391         return typs[:]
392 }
393
394 var coverageDecls = [...]struct {
395         name string
396         tag  int
397         typ  int
398 }{
399         {"initHook", funcTag, 1},
400 }
401
402 func coverageTypes() []*types.Type {
403         var typs [2]*types.Type
404         typs[0] = types.Types[types.TBOOL]
405         typs[1] = newSig(params(typs[0]), nil)
406         return typs[:]
407 }