github.com/powerman/golang-tools@v0.1.11-0.20220410185822-5ad214d8d803/go/analysis/passes/asmdecl/testdata/src/a/asm1.s (about) 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 amd64 6 7 // Commented-out code should be ignored. 8 // 9 // TEXT ·unknown(SB),0,$0 10 // RET 11 12 TEXT ·arg1(SB),0,$0-2 13 MOVB x+0(FP), AX 14 // MOVB x+0(FP), AX // commented out instructions used to panic 15 MOVB y+1(FP), BX 16 MOVW x+0(FP), AX // want `\[amd64\] arg1: invalid MOVW of x\+0\(FP\); int8 is 1-byte value` 17 MOVW y+1(FP), AX // want `invalid MOVW of y\+1\(FP\); uint8 is 1-byte value` 18 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int8 is 1-byte value` 19 MOVL y+1(FP), AX // want `invalid MOVL of y\+1\(FP\); uint8 is 1-byte value` 20 MOVQ x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int8 is 1-byte value` 21 MOVQ y+1(FP), AX // want `invalid MOVQ of y\+1\(FP\); uint8 is 1-byte value` 22 MOVB x+1(FP), AX // want `invalid offset x\+1\(FP\); expected x\+0\(FP\)` 23 MOVB y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+1\(FP\)` 24 TESTB x+0(FP), AX 25 TESTB y+1(FP), BX 26 TESTW x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int8 is 1-byte value` 27 TESTW y+1(FP), AX // want `invalid TESTW of y\+1\(FP\); uint8 is 1-byte value` 28 TESTL x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int8 is 1-byte value` 29 TESTL y+1(FP), AX // want `invalid TESTL of y\+1\(FP\); uint8 is 1-byte value` 30 TESTQ x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int8 is 1-byte value` 31 TESTQ y+1(FP), AX // want `invalid TESTQ of y\+1\(FP\); uint8 is 1-byte value` 32 TESTB x+1(FP), AX // want `invalid offset x\+1\(FP\); expected x\+0\(FP\)` 33 TESTB y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+1\(FP\)` 34 MOVB 8(SP), AX // want `8\(SP\) should be x\+0\(FP\)` 35 MOVB 9(SP), AX // want `9\(SP\) should be y\+1\(FP\)` 36 MOVB 10(SP), AX // want `use of 10\(SP\) points beyond argument frame` 37 RET 38 39 TEXT ·arg2(SB),0,$0-4 40 MOVB x+0(FP), AX // want `arg2: invalid MOVB of x\+0\(FP\); int16 is 2-byte value` 41 MOVB y+2(FP), AX // want `invalid MOVB of y\+2\(FP\); uint16 is 2-byte value` 42 MOVW x+0(FP), AX 43 MOVW y+2(FP), BX 44 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int16 is 2-byte value` 45 MOVL y+2(FP), AX // want `invalid MOVL of y\+2\(FP\); uint16 is 2-byte value` 46 MOVQ x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int16 is 2-byte value` 47 MOVQ y+2(FP), AX // want `invalid MOVQ of y\+2\(FP\); uint16 is 2-byte value` 48 MOVW x+2(FP), AX // want `invalid offset x\+2\(FP\); expected x\+0\(FP\)` 49 MOVW y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+2\(FP\)` 50 TESTB x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int16 is 2-byte value` 51 TESTB y+2(FP), AX // want `invalid TESTB of y\+2\(FP\); uint16 is 2-byte value` 52 TESTW x+0(FP), AX 53 TESTW y+2(FP), BX 54 TESTL x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int16 is 2-byte value` 55 TESTL y+2(FP), AX // want `invalid TESTL of y\+2\(FP\); uint16 is 2-byte value` 56 TESTQ x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int16 is 2-byte value` 57 TESTQ y+2(FP), AX // want `invalid TESTQ of y\+2\(FP\); uint16 is 2-byte value` 58 TESTW x+2(FP), AX // want `invalid offset x\+2\(FP\); expected x\+0\(FP\)` 59 TESTW y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+2\(FP\)` 60 RET 61 62 TEXT ·arg4(SB),0,$0-2 // want `arg4: wrong argument size 2; expected \$\.\.\.-8` 63 MOVB x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int32 is 4-byte value` 64 MOVB y+4(FP), BX // want `invalid MOVB of y\+4\(FP\); uint32 is 4-byte value` 65 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int32 is 4-byte value` 66 MOVW y+4(FP), AX // want `invalid MOVW of y\+4\(FP\); uint32 is 4-byte value` 67 MOVL x+0(FP), AX 68 MOVL y+4(FP), AX 69 MOVQ x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); int32 is 4-byte value` 70 MOVQ y+4(FP), AX // want `invalid MOVQ of y\+4\(FP\); uint32 is 4-byte value` 71 MOVL x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)` 72 MOVL y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)` 73 TESTB x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int32 is 4-byte value` 74 TESTB y+4(FP), BX // want `invalid TESTB of y\+4\(FP\); uint32 is 4-byte value` 75 TESTW x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int32 is 4-byte value` 76 TESTW y+4(FP), AX // want `invalid TESTW of y\+4\(FP\); uint32 is 4-byte value` 77 TESTL x+0(FP), AX 78 TESTL y+4(FP), AX 79 TESTQ x+0(FP), AX // want `invalid TESTQ of x\+0\(FP\); int32 is 4-byte value` 80 TESTQ y+4(FP), AX // want `invalid TESTQ of y\+4\(FP\); uint32 is 4-byte value` 81 TESTL x+4(FP), AX // want `invalid offset x\+4\(FP\); expected x\+0\(FP\)` 82 TESTL y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+4\(FP\)` 83 RET 84 85 TEXT ·arg8(SB),7,$0-2 // want `wrong argument size 2; expected \$\.\.\.-16` 86 MOVB x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int64 is 8-byte value` 87 MOVB y+8(FP), BX // want `invalid MOVB of y\+8\(FP\); uint64 is 8-byte value` 88 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int64 is 8-byte value` 89 MOVW y+8(FP), AX // want `invalid MOVW of y\+8\(FP\); uint64 is 8-byte value` 90 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int64 is 8-byte value` 91 MOVL y+8(FP), AX // want `invalid MOVL of y\+8\(FP\); uint64 is 8-byte value` 92 MOVQ x+0(FP), AX 93 MOVQ y+8(FP), AX 94 MOVQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 95 MOVQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 96 TESTB x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int64 is 8-byte value` 97 TESTB y+8(FP), BX // want `invalid TESTB of y\+8\(FP\); uint64 is 8-byte value` 98 TESTW x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int64 is 8-byte value` 99 TESTW y+8(FP), AX // want `invalid TESTW of y\+8\(FP\); uint64 is 8-byte value` 100 TESTL x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int64 is 8-byte value` 101 TESTL y+8(FP), AX // want `invalid TESTL of y\+8\(FP\); uint64 is 8-byte value` 102 TESTQ x+0(FP), AX 103 TESTQ y+8(FP), AX 104 TESTQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 105 TESTQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 106 RET 107 108 TEXT ·argint(SB),0,$0-2 // want `wrong argument size 2; expected \$\.\.\.-16` 109 MOVB x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); int is 8-byte value` 110 MOVB y+8(FP), BX // want `invalid MOVB of y\+8\(FP\); uint is 8-byte value` 111 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); int is 8-byte value` 112 MOVW y+8(FP), AX // want `invalid MOVW of y\+8\(FP\); uint is 8-byte value` 113 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); int is 8-byte value` 114 MOVL y+8(FP), AX // want `invalid MOVL of y\+8\(FP\); uint is 8-byte value` 115 MOVQ x+0(FP), AX 116 MOVQ y+8(FP), AX 117 MOVQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 118 MOVQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 119 TESTB x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); int is 8-byte value` 120 TESTB y+8(FP), BX // want `invalid TESTB of y\+8\(FP\); uint is 8-byte value` 121 TESTW x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); int is 8-byte value` 122 TESTW y+8(FP), AX // want `invalid TESTW of y\+8\(FP\); uint is 8-byte value` 123 TESTL x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); int is 8-byte value` 124 TESTL y+8(FP), AX // want `invalid TESTL of y\+8\(FP\); uint is 8-byte value` 125 TESTQ x+0(FP), AX 126 TESTQ y+8(FP), AX 127 TESTQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 128 TESTQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 129 RET 130 131 TEXT ·argptr(SB),7,$0-2 // want `wrong argument size 2; expected \$\.\.\.-40` 132 MOVB x+0(FP), AX // want `invalid MOVB of x\+0\(FP\); \*byte is 8-byte value` 133 MOVB y+8(FP), BX // want `invalid MOVB of y\+8\(FP\); \*byte is 8-byte value` 134 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); \*byte is 8-byte value` 135 MOVW y+8(FP), AX // want `invalid MOVW of y\+8\(FP\); \*byte is 8-byte value` 136 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); \*byte is 8-byte value` 137 MOVL y+8(FP), AX // want `invalid MOVL of y\+8\(FP\); \*byte is 8-byte value` 138 MOVQ x+0(FP), AX 139 MOVQ y+8(FP), AX 140 MOVQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 141 MOVQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 142 TESTB x+0(FP), AX // want `invalid TESTB of x\+0\(FP\); \*byte is 8-byte value` 143 TESTB y+8(FP), BX // want `invalid TESTB of y\+8\(FP\); \*byte is 8-byte value` 144 TESTW x+0(FP), AX // want `invalid TESTW of x\+0\(FP\); \*byte is 8-byte value` 145 TESTW y+8(FP), AX // want `invalid TESTW of y\+8\(FP\); \*byte is 8-byte value` 146 TESTL x+0(FP), AX // want `invalid TESTL of x\+0\(FP\); \*byte is 8-byte value` 147 TESTL y+8(FP), AX // want `invalid TESTL of y\+8\(FP\); \*byte is 8-byte value` 148 TESTQ x+0(FP), AX 149 TESTQ y+8(FP), AX 150 TESTQ x+8(FP), AX // want `invalid offset x\+8\(FP\); expected x\+0\(FP\)` 151 TESTQ y+2(FP), AX // want `invalid offset y\+2\(FP\); expected y\+8\(FP\)` 152 MOVL c+16(FP), AX // want `invalid MOVL of c\+16\(FP\); chan int is 8-byte value` 153 MOVL m+24(FP), AX // want `invalid MOVL of m\+24\(FP\); map\[int\]int is 8-byte value` 154 MOVL f+32(FP), AX // want `invalid MOVL of f\+32\(FP\); func\(\) is 8-byte value` 155 RET 156 157 TEXT ·argstring(SB),0,$32 // want `wrong argument size 0; expected \$\.\.\.-32` 158 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); string base is 8-byte value` 159 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); string base is 8-byte value` 160 LEAQ x+0(FP), AX // ok 161 MOVQ x+0(FP), AX 162 MOVW x_base+0(FP), AX // want `invalid MOVW of x_base\+0\(FP\); string base is 8-byte value` 163 MOVL x_base+0(FP), AX // want `invalid MOVL of x_base\+0\(FP\); string base is 8-byte value` 164 MOVQ x_base+0(FP), AX 165 MOVW x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 166 MOVL x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 167 MOVQ x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 168 MOVW x_len+8(FP), AX // want `invalid MOVW of x_len\+8\(FP\); string len is 8-byte value` 169 MOVL x_len+8(FP), AX // want `invalid MOVL of x_len\+8\(FP\); string len is 8-byte value` 170 MOVQ x_len+8(FP), AX 171 MOVQ y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+16\(FP\)` 172 MOVQ y_len+8(FP), AX // want `invalid offset y_len\+8\(FP\); expected y_len\+24\(FP\)` 173 RET 174 175 TEXT ·argslice(SB),0,$48 // want `wrong argument size 0; expected \$\.\.\.-48` 176 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); slice base is 8-byte value` 177 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); slice base is 8-byte value` 178 MOVQ x+0(FP), AX 179 MOVW x_base+0(FP), AX // want `invalid MOVW of x_base\+0\(FP\); slice base is 8-byte value` 180 MOVL x_base+0(FP), AX // want `invalid MOVL of x_base\+0\(FP\); slice base is 8-byte value` 181 MOVQ x_base+0(FP), AX 182 MOVW x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 183 MOVL x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 184 MOVQ x_len+0(FP), AX // want `invalid offset x_len\+0\(FP\); expected x_len\+8\(FP\)` 185 MOVW x_len+8(FP), AX // want `invalid MOVW of x_len\+8\(FP\); slice len is 8-byte value` 186 MOVL x_len+8(FP), AX // want `invalid MOVL of x_len\+8\(FP\); slice len is 8-byte value` 187 MOVQ x_len+8(FP), AX 188 MOVW x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+16\(FP\)` 189 MOVL x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+16\(FP\)` 190 MOVQ x_cap+0(FP), AX // want `invalid offset x_cap\+0\(FP\); expected x_cap\+16\(FP\)` 191 MOVW x_cap+16(FP), AX // want `invalid MOVW of x_cap\+16\(FP\); slice cap is 8-byte value` 192 MOVL x_cap+16(FP), AX // want `invalid MOVL of x_cap\+16\(FP\); slice cap is 8-byte value` 193 MOVQ x_cap+16(FP), AX 194 MOVQ y+0(FP), AX // want `invalid offset y\+0\(FP\); expected y\+24\(FP\)` 195 MOVQ y_len+8(FP), AX // want `invalid offset y_len\+8\(FP\); expected y_len\+32\(FP\)` 196 MOVQ y_cap+16(FP), AX // want `invalid offset y_cap\+16\(FP\); expected y_cap\+40\(FP\)` 197 RET 198 199 TEXT ·argiface(SB),0,$0-32 200 MOVW x+0(FP), AX // want `invalid MOVW of x\+0\(FP\); interface type is 8-byte value` 201 MOVL x+0(FP), AX // want `invalid MOVL of x\+0\(FP\); interface type is 8-byte value` 202 MOVQ x+0(FP), AX 203 MOVW x_type+0(FP), AX // want `invalid MOVW of x_type\+0\(FP\); interface type is 8-byte value` 204 MOVL x_type+0(FP), AX // want `invalid MOVL of x_type\+0\(FP\); interface type is 8-byte value` 205 MOVQ x_type+0(FP), AX 206 MOVQ x_itable+0(FP), AX // want `unknown variable x_itable; offset 0 is x_type\+0\(FP\)` 207 MOVQ x_itable+1(FP), AX // want `unknown variable x_itable; offset 1 is x_type\+0\(FP\)` 208 MOVW x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+8\(FP\)` 209 MOVL x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+8\(FP\)` 210 MOVQ x_data+0(FP), AX // want `invalid offset x_data\+0\(FP\); expected x_data\+8\(FP\)` 211 MOVW x_data+8(FP), AX // want `invalid MOVW of x_data\+8\(FP\); interface data is 8-byte value` 212 MOVL x_data+8(FP), AX // want `invalid MOVL of x_data\+8\(FP\); interface data is 8-byte value` 213 MOVQ x_data+8(FP), AX 214 MOVW y+16(FP), AX // want `invalid MOVW of y\+16\(FP\); interface itable is 8-byte value` 215 MOVL y+16(FP), AX // want `invalid MOVL of y\+16\(FP\); interface itable is 8-byte value` 216 MOVQ y+16(FP), AX 217 MOVW y_itable+16(FP), AX // want `invalid MOVW of y_itable\+16\(FP\); interface itable is 8-byte value` 218 MOVL y_itable+16(FP), AX // want `invalid MOVL of y_itable\+16\(FP\); interface itable is 8-byte value` 219 MOVQ y_itable+16(FP), AX 220 MOVQ y_type+16(FP), AX // want `unknown variable y_type; offset 16 is y_itable\+16\(FP\)` 221 MOVW y_data+16(FP), AX // want `invalid offset y_data\+16\(FP\); expected y_data\+24\(FP\)` 222 MOVL y_data+16(FP), AX // want `invalid offset y_data\+16\(FP\); expected y_data\+24\(FP\)` 223 MOVQ y_data+16(FP), AX // want `invalid offset y_data\+16\(FP\); expected y_data\+24\(FP\)` 224 MOVW y_data+24(FP), AX // want `invalid MOVW of y_data\+24\(FP\); interface data is 8-byte value` 225 MOVL y_data+24(FP), AX // want `invalid MOVL of y_data\+24\(FP\); interface data is 8-byte value` 226 MOVQ y_data+24(FP), AX 227 RET 228 229 TEXT ·argcomplex(SB),0,$24 // want `wrong argument size 0; expected \$\.\.\.-24` 230 MOVSS x+0(FP), X0 // want `invalid MOVSS of x\+0\(FP\); complex64 is 8-byte value containing x_real\+0\(FP\) and x_imag\+4\(FP\)` 231 MOVSS x_real+0(FP), X0 232 MOVSD x_real+0(FP), X0 // want `invalid MOVSD of x_real\+0\(FP\); real\(complex64\) is 4-byte value` 233 MOVSS x_real+4(FP), X0 // want `invalid offset x_real\+4\(FP\); expected x_real\+0\(FP\)` 234 MOVSS x_imag+4(FP), X0 235 MOVSD x_imag+4(FP), X0 // want `invalid MOVSD of x_imag\+4\(FP\); imag\(complex64\) is 4-byte value` 236 MOVSS x_imag+8(FP), X0 // want `invalid offset x_imag\+8\(FP\); expected x_imag\+4\(FP\)` 237 MOVSD y+8(FP), X0 // want `invalid MOVSD of y\+8\(FP\); complex128 is 16-byte value containing y_real\+8\(FP\) and y_imag\+16\(FP\)` 238 MOVSS y_real+8(FP), X0 // want `invalid MOVSS of y_real\+8\(FP\); real\(complex128\) is 8-byte value` 239 MOVSD y_real+8(FP), X0 240 MOVSS y_real+16(FP), X0 // want `invalid offset y_real\+16\(FP\); expected y_real\+8\(FP\)` 241 MOVSS y_imag+16(FP), X0 // want `invalid MOVSS of y_imag\+16\(FP\); imag\(complex128\) is 8-byte value` 242 MOVSD y_imag+16(FP), X0 243 MOVSS y_imag+24(FP), X0 // want `invalid offset y_imag\+24\(FP\); expected y_imag\+16\(FP\)` 244 // Loading both parts of a complex is ok: see issue 35264. 245 MOVSD x+0(FP), X0 246 MOVO y+8(FP), X0 247 MOVOU y+8(FP), X0 248 // These are not ok. 249 MOVO x+0(FP), X0 // want `invalid MOVO of x\+0\(FP\); complex64 is 8-byte value containing x_real\+0\(FP\) and x_imag\+4\(FP\)` 250 MOVOU x+0(FP), X0 // want `invalid MOVOU of x\+0\(FP\); complex64 is 8-byte value containing x_real\+0\(FP\) and x_imag\+4\(FP\)` 251 RET 252 253 TEXT ·argstruct(SB),0,$64 // want `wrong argument size 0; expected \$\.\.\.-24` 254 MOVQ x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); a.S is 24-byte value` 255 MOVQ x_i+0(FP), AX // want `invalid MOVQ of x_i\+0\(FP\); int32 is 4-byte value` 256 MOVQ x_b+0(FP), AX // want `invalid offset x_b\+0\(FP\); expected x_b\+4\(FP\)` 257 MOVQ x_s+8(FP), AX 258 MOVQ x_s_base+8(FP), AX 259 MOVQ x_s+16(FP), AX // want `invalid offset x_s\+16\(FP\); expected x_s\+8\(FP\), x_s_base\+8\(FP\), or x_s_len\+16\(FP\)` 260 MOVQ x_s_len+16(FP), AX 261 RET 262 263 TEXT ·argarray(SB),0,$64 // want `wrong argument size 0; expected \$\.\.\.-48` 264 MOVQ x+0(FP), AX // want `invalid MOVQ of x\+0\(FP\); \[2\]a.S is 48-byte value` 265 MOVQ x_0_i+0(FP), AX // want `invalid MOVQ of x_0_i\+0\(FP\); int32 is 4-byte value` 266 MOVQ x_0_b+0(FP), AX // want `invalid offset x_0_b\+0\(FP\); expected x_0_b\+4\(FP\)` 267 MOVQ x_0_s+8(FP), AX 268 MOVQ x_0_s_base+8(FP), AX 269 MOVQ x_0_s+16(FP), AX // want `invalid offset x_0_s\+16\(FP\); expected x_0_s\+8\(FP\), x_0_s_base\+8\(FP\), or x_0_s_len\+16\(FP\)` 270 MOVQ x_0_s_len+16(FP), AX 271 MOVB foo+25(FP), AX // want `unknown variable foo; offset 25 is x_1_i\+24\(FP\)` 272 MOVQ x_1_s+32(FP), AX 273 MOVQ x_1_s_base+32(FP), AX 274 MOVQ x_1_s+40(FP), AX // want `invalid offset x_1_s\+40\(FP\); expected x_1_s\+32\(FP\), x_1_s_base\+32\(FP\), or x_1_s_len\+40\(FP\)` 275 MOVQ x_1_s_len+40(FP), AX 276 RET 277 278 TEXT ·returnint(SB),0,$0-8 279 MOVB AX, ret+0(FP) // want `invalid MOVB of ret\+0\(FP\); int is 8-byte value` 280 MOVW AX, ret+0(FP) // want `invalid MOVW of ret\+0\(FP\); int is 8-byte value` 281 MOVL AX, ret+0(FP) // want `invalid MOVL of ret\+0\(FP\); int is 8-byte value` 282 MOVQ AX, ret+0(FP) 283 MOVQ AX, ret+1(FP) // want `invalid offset ret\+1\(FP\); expected ret\+0\(FP\)` 284 MOVQ AX, r+0(FP) // want `unknown variable r; offset 0 is ret\+0\(FP\)` 285 RET 286 287 TEXT ·returnbyte(SB),0,$0-9 288 MOVQ x+0(FP), AX 289 MOVB AX, ret+8(FP) 290 MOVW AX, ret+8(FP) // want `invalid MOVW of ret\+8\(FP\); byte is 1-byte value` 291 MOVL AX, ret+8(FP) // want `invalid MOVL of ret\+8\(FP\); byte is 1-byte value` 292 MOVQ AX, ret+8(FP) // want `invalid MOVQ of ret\+8\(FP\); byte is 1-byte value` 293 MOVB AX, ret+7(FP) // want `invalid offset ret\+7\(FP\); expected ret\+8\(FP\)` 294 RET 295 296 TEXT ·returnnamed(SB),0,$0-41 297 MOVB x+0(FP), AX 298 MOVQ AX, r1+8(FP) 299 MOVW AX, r2+16(FP) 300 MOVQ AX, r3+24(FP) 301 MOVQ AX, r3_base+24(FP) 302 MOVQ AX, r3_len+32(FP) 303 MOVB AX, r4+40(FP) 304 MOVL AX, r1+8(FP) // want `invalid MOVL of r1\+8\(FP\); int is 8-byte value` 305 RET 306 307 TEXT ·returnintmissing(SB),0,$0-8 308 RET // want `RET without writing to 8-byte ret\+0\(FP\)` 309 310 311 // issue 15271 312 TEXT ·f15271(SB), NOSPLIT, $0-4 313 // Stick 123 into the low 32 bits of X0. 314 MOVQ $123, AX 315 PINSRD $0, AX, X0 316 317 // Return them. 318 PEXTRD $0, X0, x+0(FP) 319 RET 320 321 // issue 17584 322 TEXT ·f17584(SB), NOSPLIT, $12 323 MOVSS x+0(FP), X0 324 MOVSS y_real+4(FP), X0 325 MOVSS y_imag+8(FP), X0 326 RET 327 328 // issue 29318 329 TEXT ·f29318(SB), NOSPLIT, $32 330 MOVQ x_0_1+8(FP), AX 331 MOVQ x_1_1+24(FP), CX 332 RET 333 334 // ABI selector 335 TEXT ·pickStableABI<ABI0>(SB), NOSPLIT, $32 336 MOVQ x+0(FP), AX 337 RET 338 339 // ABI selector 340 TEXT ·pickInternalABI<ABIInternal>(SB), NOSPLIT, $32 341 MOVQ x+0(FP), AX 342 RET 343 344 // ABI selector 345 TEXT ·pickFutureABI<ABISomethingNotyetInvented>(SB), NOSPLIT, $32 346 MOVQ x+0(FP), AX 347 RET 348 349 // writing to result in ABIInternal function 350 TEXT ·returnABIInternal<ABIInternal>(SB), NOSPLIT, $32 351 MOVQ $123, AX 352 RET 353 TEXT ·returnmissingABIInternal<ABIInternal>(SB), NOSPLIT, $32 354 MOVQ $123, CX 355 RET // want `RET without writing to result register` 356 357 // return jump 358 TEXT ·retjmp(SB), NOSPLIT, $0-8 359 RET retjmp1(SB) // It's okay to not write results if there's a tail call.