GoPLS Viewer

Home|gopls/go/analysis/passes/asmdecl/testdata/src/a/asm2.s
1// Copyright 2013 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// +build 386
6
7TEXT ·arg1(SB),0,$0-2
8    MOVB    x+0(FP), AX
9    MOVB    y+1(FP), BX
10    MOVW    x+0(FP), AX // want `\[386\] arg1: invalid MOVW of x\+0\(FP\); int8 is 1-byte value`
11    MOVW    y+1(FP), AX // want `invalid MOVW of y\+1\(FP\); uint8 is 1-byte value`
12    MOVL    x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int8 is 1-byte value`
13    MOVL    y+1(FP), AX // want `invalid MOVL of y\+1\(FP\); uint8 is 1-byte value`
14    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int8 is 1-byte value`
15    MOVQ    y+1(FP), AX // want `invalid MOVQ of y\+1\(FP\); uint8 is 1-byte value`
16    MOVB    x+1(FP), AX // want `invalid offset x\+1\(FP\); expected x\+0\(FP\)`
17    MOVB    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+1\(FP\)`
18    TESTB    x+0(FP), AX
19    TESTB    y+1(FP), BX
20    TESTW    x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int8 is 1-byte value`
21    TESTW    y+1(FP), AX // want `invalid TESTW of y\+1\(FP\); uint8 is 1-byte value`
22    TESTL    x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int8 is 1-byte value`
23    TESTL    y+1(FP), AX // want `invalid TESTL of y\+1\(FP\); uint8 is 1-byte value`
24    TESTQ    x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int8 is 1-byte value`
25    TESTQ    y+1(FP), AX // want `invalid TESTQ of y\+1\(FP\); uint8 is 1-byte value`
26    TESTB    x+1(FP), AX // want `invalid offset x\+1\(FP\); expected x\+0\(FP\)`
27    TESTB    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+1\(FP\)`
28    MOVB    4(SP), AX // want `4\(SP\) should be x\+0\(FP\)`
29    MOVB    5(SP), AX // want `5\(SP\) should be y\+1\(FP\)`
30    MOVB    6(SP), AX // want `use of 6\(SP\) points beyond argument frame`
31    RET
32
33TEXT ·arg2(SB),0,$0-4
34    MOVB    x+0(FP), AX // want `arg2: invalid MOVB of x\+0\(FP\); int16 is 2-byte value`
35    MOVB    y+2(FP), AX // want `invalid MOVB of y\+2\(FP\); uint16 is 2-byte value`
36    MOVW    x+0(FP), AX
37    MOVW    y+2(FP), BX
38    MOVL    x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int16 is 2-byte value`
39    MOVL    y+2(FP), AX // want `invalid MOVL of y\+2\(FP\); uint16 is 2-byte value`
40    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int16 is 2-byte value`
41    MOVQ    y+2(FP), AX // want `invalid MOVQ of y\+2\(FP\); uint16 is 2-byte value`
42    MOVW    x+2(FP), AX // want `invalid offset x\+2\(FP\); expected x\+0\(FP\)`
43    MOVW    y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+2\(FP\)`
44    TESTB    x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int16 is 2-byte value`
45    TESTB    y+2(FP), AX // want `invalid TESTB of y\+2\(FP\); uint16 is 2-byte value`
46    TESTW    x+0(FP), AX
47    TESTW    y+2(FP), BX
48    TESTL    x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int16 is 2-byte value`
49    TESTL    y+2(FP), AX // want `invalid TESTL of y\+2\(FP\); uint16 is 2-byte value`
50    TESTQ    x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int16 is 2-byte value`
51    TESTQ    y+2(FP), AX // want `invalid TESTQ of y\+2\(FP\); uint16 is 2-byte value`
52    TESTW    x+2(FP), AX // want `invalid offset x\+2\(FP\); expected x\+0\(FP\)`
53    TESTW    y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+2\(FP\)`
54    RET
55
56TEXT ·arg4(SB),0,$0-2 // want `arg4: wrong argument size 2; expected \$\.\.\.-8`
57    MOVB    x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int32 is 4-byte value`
58    MOVB    y+4(FP), BX // want `invalid MOVB of y\+4\(FP\); uint32 is 4-byte value`
59    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int32 is 4-byte value`
60    MOVW    y+4(FP), AX // want `invalid MOVW of y\+4\(FP\); uint32 is 4-byte value`
61    MOVL    x+0(FP), AX
62    MOVL    y+4(FP), AX
63    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int32 is 4-byte value`
64    MOVQ    y+4(FP), AX // want `invalid MOVQ of y\+4\(FP\); uint32 is 4-byte value`
65    MOVL    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
66    MOVL    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
67    TESTB    x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int32 is 4-byte value`
68    TESTB    y+4(FP), BX // want `invalid TESTB of y\+4\(FP\); uint32 is 4-byte value`
69    TESTW    x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int32 is 4-byte value`
70    TESTW    y+4(FP), AX // want `invalid TESTW of y\+4\(FP\); uint32 is 4-byte value`
71    TESTL    x+0(FP), AX
72    TESTL    y+4(FP), AX
73    TESTQ    x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int32 is 4-byte value`
74    TESTQ    y+4(FP), AX // want `invalid TESTQ of y\+4\(FP\); uint32 is 4-byte value`
75    TESTL    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
76    TESTL    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
77    RET
78
79TEXT ·arg8(SB),7,$0-2 // want `wrong argument size 2; expected \$\.\.\.-16`
80    MOVB    x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int64 is 8-byte value`
81    MOVB    y+8(FP), BX // want `invalid MOVB of y\+8\(FP\); uint64 is 8-byte value`
82    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int64 is 8-byte value`
83    MOVW    y+8(FP), AX // want `invalid MOVW of y\+8\(FP\); uint64 is 8-byte value`
84    MOVL    x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int64 is 8-byte value containing x_lo\+0\(FP\) and x_hi\+4\(FP\)`
85    MOVL    x_lo+0(FP), AX
86    MOVL    x_hi+4(FP), AX
87    MOVL    y+8(FP), AX // want `invalid MOVL of y\+8\(FP\); uint64 is 8-byte value containing y_lo\+8\(FP\) and y_hi\+12\(FP\)`
88    MOVL    y_lo+8(FP), AX
89    MOVL    y_hi+12(FP), AX
90    MOVQ    x+0(FP), AX
91    MOVQ    y+8(FP), AX
92    MOVQ    x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)`
93    MOVQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)`
94    TESTB    x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int64 is 8-byte value`
95    TESTB    y+8(FP), BX // want `invalid TESTB of y\+8\(FP\); uint64 is 8-byte value`
96    TESTW    x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int64 is 8-byte value`
97    TESTW    y+8(FP), AX // want `invalid TESTW of y\+8\(FP\); uint64 is 8-byte value`
98    TESTL    x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int64 is 8-byte value containing x_lo\+0\(FP\) and x_hi\+4\(FP\)`
99    TESTL    y+8(FP), AX // want `invalid TESTL of y\+8\(FP\); uint64 is 8-byte value containing y_lo\+8\(FP\) and y_hi\+12\(FP\)`
100    TESTQ    x+0(FP), AX
101    TESTQ    y+8(FP), AX
102    TESTQ    x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)`
103    TESTQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)`
104    RET
105
106TEXT ·argint(SB),0,$0-2 // want `wrong argument size 2; expected \$\.\.\.-8`
107    MOVB    x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int is 4-byte value`
108    MOVB    y+4(FP), BX // want `invalid MOVB of y\+4\(FP\); uint is 4-byte value`
109    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int is 4-byte value`
110    MOVW    y+4(FP), AX // want `invalid MOVW of y\+4\(FP\); uint is 4-byte value`
111    MOVL    x+0(FP), AX
112    MOVL    y+4(FP), AX
113    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int is 4-byte value`
114    MOVQ    y+4(FP), AX // want `invalid MOVQ of y\+4\(FP\); uint is 4-byte value`
115    MOVQ    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
116    MOVQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
117    TESTB    x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int is 4-byte value`
118    TESTB    y+4(FP), BX // want `invalid TESTB of y\+4\(FP\); uint is 4-byte value`
119    TESTW    x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int is 4-byte value`
120    TESTW    y+4(FP), AX // want `invalid TESTW of y\+4\(FP\); uint is 4-byte value`
121    TESTL    x+0(FP), AX
122    TESTL    y+4(FP), AX
123    TESTQ    x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int is 4-byte value`
124    TESTQ    y+4(FP), AX // want `invalid TESTQ of y\+4\(FP\); uint is 4-byte value`
125    TESTQ    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
126    TESTQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
127    RET
128
129TEXT ·argptr(SB),7,$0-2 // want `wrong argument size 2; expected \$\.\.\.-20`
130    MOVB    x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); \*byte is 4-byte value`
131    MOVB    y+4(FP), BX // want `invalid MOVB of y\+4\(FP\); \*byte is 4-byte value`
132    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); \*byte is 4-byte value`
133    MOVW    y+4(FP), AX // want `invalid MOVW of y\+4\(FP\); \*byte is 4-byte value`
134    MOVL    x+0(FP), AX
135    MOVL    y+4(FP), AX
136    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); \*byte is 4-byte value`
137    MOVQ    y+4(FP), AX // want `invalid MOVQ of y\+4\(FP\); \*byte is 4-byte value`
138    MOVQ    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
139    MOVQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
140    TESTB    x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); \*byte is 4-byte value`
141    TESTB    y+4(FP), BX // want `invalid TESTB of y\+4\(FP\); \*byte is 4-byte value`
142    TESTW    x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); \*byte is 4-byte value`
143    TESTW    y+4(FP), AX // want `invalid TESTW of y\+4\(FP\); \*byte is 4-byte value`
144    TESTL    x+0(FP), AX
145    TESTL    y+4(FP), AX
146    TESTQ    x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); \*byte is 4-byte value`
147    TESTQ    y+4(FP), AX // want `invalid TESTQ of y\+4\(FP\); \*byte is 4-byte value`
148    TESTQ    x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)`
149    TESTQ    y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)`
150    MOVW    c+8(FP), AX // want `invalid MOVW of c\+8\(FP\); chan int is 4-byte value`
151    MOVW    m+12(FP), AX // want `invalid MOVW of m\+12\(FP\); map\[int\]int is 4-byte value`
152    MOVW    f+16(FP), AX // want `invalid MOVW of f\+16\(FP\); func\(\) is 4-byte value`
153    RET
154
155TEXT ·argstring(SB),0,$16 // want `wrong argument size 0; expected \$\.\.\.-16`
156    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); string base is 4-byte value`
157    MOVL    x+0(FP), AX
158    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); string base is 4-byte value`
159    MOVW    x_base+0(FP), AX // want `invalid MOVW of x_base\+0\(FP\); string base is 4-byte value`
160    MOVL    x_base+0(FP), AX
161    MOVQ    x_base+0(FP), AX // want `invalid MOVQ of x_base\+0\(FP\); string base is 4-byte value`
162    MOVW    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
163    MOVL    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
164    MOVQ    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
165    MOVW    x_len+4(FP), AX // want `invalid MOVW of x_len\+4\(FP\); string len is 4-byte value`
166    MOVL    x_len+4(FP), AX
167    MOVQ    x_len+4(FP), AX // want `invalid MOVQ of x_len\+4\(FP\); string len is 4-byte value`
168    MOVQ    y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+8\(FP\)`
169    MOVQ    y_len+4(FP), AX // want `invalid offset y_len\+4\(FP\); expected y_len\+12\(FP\)`
170    RET
171
172TEXT ·argslice(SB),0,$24 // want `wrong argument size 0; expected \$\.\.\.-24`
173    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); slice base is 4-byte value`
174    MOVL    x+0(FP), AX
175    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); slice base is 4-byte value`
176    MOVW    x_base+0(FP), AX // want `invalid MOVW of x_base\+0\(FP\); slice base is 4-byte value`
177    MOVL    x_base+0(FP), AX
178    MOVQ    x_base+0(FP), AX // want `invalid MOVQ of x_base\+0\(FP\); slice base is 4-byte value`
179    MOVW    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
180    MOVL    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
181    MOVQ    x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+4\(FP\)`
182    MOVW    x_len+4(FP), AX // want `invalid MOVW of x_len\+4\(FP\); slice len is 4-byte value`
183    MOVL    x_len+4(FP), AX
184    MOVQ    x_len+4(FP), AX // want `invalid MOVQ of x_len\+4\(FP\); slice len is 4-byte value`
185    MOVW    x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+8\(FP\)`
186    MOVL    x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+8\(FP\)`
187    MOVQ    x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+8\(FP\)`
188    MOVW    x_cap+8(FP), AX // want `invalid MOVW of x_cap\+8\(FP\); slice cap is 4-byte value`
189    MOVL    x_cap+8(FP), AX
190    MOVQ    x_cap+8(FP), AX // want `invalid MOVQ of x_cap\+8\(FP\); slice cap is 4-byte value`
191    MOVQ    y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+12\(FP\)`
192    MOVQ    y_len+4(FP), AX // want `invalid offset y_len\+4\(FP\); expected y_len\+16\(FP\)`
193    MOVQ    y_cap+8(FP), AX // want `invalid offset y_cap\+8\(FP\); expected y_cap\+20\(FP\)`
194    RET
195
196TEXT ·argiface(SB),0,$0-16
197    MOVW    x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); interface type is 4-byte value`
198    MOVL    x+0(FP), AX
199    MOVQ    x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); interface type is 4-byte value`
200    MOVW    x_type+0(FP), AX // want `invalid MOVW of x_type\+0\(FP\); interface type is 4-byte value`
201    MOVL    x_type+0(FP), AX
202    MOVQ    x_type+0(FP), AX // want `invalid MOVQ of x_type\+0\(FP\); interface type is 4-byte value`
203    MOVQ    x_itable+0(FP), AX // want `unknown variable x_itable; offset 0 is x_type\+0\(FP\)`
204    MOVQ    x_itable+1(FP), AX // want `unknown variable x_itable; offset 1 is x_type\+0\(FP\)`
205    MOVW    x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+4\(FP\)`
206    MOVL    x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+4\(FP\)`
207    MOVQ    x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+4\(FP\)`
208    MOVW    x_data+4(FP), AX // want `invalid MOVW of x_data\+4\(FP\); interface data is 4-byte value`
209    MOVL    x_data+4(FP), AX
210    MOVQ    x_data+4(FP), AX // want `invalid MOVQ of x_data\+4\(FP\); interface data is 4-byte value`
211    MOVW    y+8(FP), AX // want `invalid MOVW of y\+8\(FP\); interface itable is 4-byte value`
212    MOVL    y+8(FP), AX
213    MOVQ    y+8(FP), AX // want `invalid MOVQ of y\+8\(FP\); interface itable is 4-byte value`
214    MOVW    y_itable+8(FP), AX // want `invalid MOVW of y_itable\+8\(FP\); interface itable is 4-byte value`
215    MOVL    y_itable+8(FP), AX
216    MOVQ    y_itable+8(FP), AX // want `invalid MOVQ of y_itable\+8\(FP\); interface itable is 4-byte value`
217    MOVQ    y_type+8(FP), AX // want `unknown variable y_type; offset 8 is y_itable\+8\(FP\)`
218    MOVW    y_data+8(FP), AX // want `invalid offset y_data\+8\(FP\); expected y_data\+12\(FP\)`
219    MOVL    y_data+8(FP), AX // want `invalid offset y_data\+8\(FP\); expected y_data\+12\(FP\)`
220    MOVQ    y_data+8(FP), AX // want `invalid offset y_data\+8\(FP\); expected y_data\+12\(FP\)`
221    MOVW    y_data+12(FP), AX // want `invalid MOVW of y_data\+12\(FP\); interface data is 4-byte value`
222    MOVL    y_data+12(FP), AX
223    MOVQ    y_data+12(FP), AX // want `invalid MOVQ of y_data\+12\(FP\); interface data is 4-byte value`
224    RET
225
226TEXT ·returnint(SB),0,$0-4
227    MOVB    AX, ret+0(FP) // want `invalid MOVB of ret\+0\(FP\); int is 4-byte value`
228    MOVW    AX, ret+0(FP) // want `invalid MOVW of ret\+0\(FP\); int is 4-byte value`
229    MOVL    AX, ret+0(FP)
230    MOVQ    AX, ret+0(FP) // want `invalid MOVQ of ret\+0\(FP\); int is 4-byte value`
231    MOVQ    AX, ret+1(FP) // want `invalid offset ret\+1\(FP\); expected ret\+0\(FP\)`
232    MOVQ    AX, r+0(FP) // want `unknown variable r; offset 0 is ret\+0\(FP\)`
233    RET
234
235TEXT ·returnbyte(SB),0,$0-5
236    MOVL    x+0(FP), AX
237    MOVB    AX, ret+4(FP)
238    MOVW    AX, ret+4(FP) // want `invalid MOVW of ret\+4\(FP\); byte is 1-byte value`
239    MOVL    AX, ret+4(FP) // want `invalid MOVL of ret\+4\(FP\); byte is 1-byte value`
240    MOVQ    AX, ret+4(FP) // want `invalid MOVQ of ret\+4\(FP\); byte is 1-byte value`
241    MOVB    AX, ret+3(FP) // want `invalid offset ret\+3\(FP\); expected ret\+4\(FP\)`
242    RET
243
244TEXT ·returnnamed(SB),0,$0-21
245    MOVB    x+0(FP), AX
246    MOVL    AX, r1+4(FP)
247    MOVW    AX, r2+8(FP)
248    MOVL    AX, r3+12(FP)
249    MOVL    AX, r3_base+12(FP)
250    MOVL    AX, r3_len+16(FP)
251    MOVB    AX, r4+20(FP)
252    MOVQ    AX, r1+4(FP) // want `invalid MOVQ of r1\+4\(FP\); int is 4-byte value`
253    RET
254
255TEXT ·returnintmissing(SB),0,$0-4
256    RET // want `RET without writing to 4-byte ret\+0\(FP\)`
257
MembersX
Members
X