github.com/goplus/gossa@v0.3.25/binop_shift.go (about) 1 package gossa 2 3 import ( 4 "reflect" 5 6 "github.com/goplus/gossa/internal/xtype" 7 "golang.org/x/tools/go/ssa" 8 ) 9 10 func makeBinOpSHL(pfn *function, instr *ssa.BinOp) func(fr *frame) { 11 ir := pfn.regIndex(instr) 12 ix, kx, vx := pfn.regIndex3(instr.X) 13 iy, ky, vy := pfn.regIndex3(instr.Y) 14 xtyp := pfn.Interp.preToType(instr.X.Type()) 15 ytyp := pfn.Interp.preToType(instr.Y.Type()) 16 xkind := xtyp.Kind() 17 ykind := ytyp.Kind() 18 if kx == kindConst && ky == kindConst { 19 t := xtype.TypeOfType(xtyp) 20 switch xkind { 21 case reflect.Int: 22 x := xtype.Int(vx) 23 switch ykind { 24 case reflect.Int: 25 v := xtype.Make(t, x<<xtype.Int(vy)) 26 return func(fr *frame) { fr.setReg(ir, v) } 27 case reflect.Int8: 28 v := xtype.Make(t, x<<xtype.Int8(vy)) 29 return func(fr *frame) { fr.setReg(ir, v) } 30 case reflect.Int16: 31 v := xtype.Make(t, x<<xtype.Int16(vy)) 32 return func(fr *frame) { fr.setReg(ir, v) } 33 case reflect.Int32: 34 v := xtype.Make(t, x<<xtype.Int32(vy)) 35 return func(fr *frame) { fr.setReg(ir, v) } 36 case reflect.Int64: 37 v := xtype.Make(t, x<<xtype.Int64(vy)) 38 return func(fr *frame) { fr.setReg(ir, v) } 39 case reflect.Uint: 40 v := xtype.Make(t, x<<xtype.Uint(vy)) 41 return func(fr *frame) { fr.setReg(ir, v) } 42 case reflect.Uint8: 43 v := xtype.Make(t, x<<xtype.Uint8(vy)) 44 return func(fr *frame) { fr.setReg(ir, v) } 45 case reflect.Uint16: 46 v := xtype.Make(t, x<<xtype.Uint16(vy)) 47 return func(fr *frame) { fr.setReg(ir, v) } 48 case reflect.Uint32: 49 v := xtype.Make(t, x<<xtype.Uint32(vy)) 50 return func(fr *frame) { fr.setReg(ir, v) } 51 case reflect.Uint64: 52 v := xtype.Make(t, x<<xtype.Uint64(vy)) 53 return func(fr *frame) { fr.setReg(ir, v) } 54 case reflect.Uintptr: 55 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 56 return func(fr *frame) { fr.setReg(ir, v) } 57 } 58 case reflect.Int8: 59 x := xtype.Int8(vx) 60 switch ykind { 61 case reflect.Int: 62 v := xtype.Make(t, x<<xtype.Int(vy)) 63 return func(fr *frame) { fr.setReg(ir, v) } 64 case reflect.Int8: 65 v := xtype.Make(t, x<<xtype.Int8(vy)) 66 return func(fr *frame) { fr.setReg(ir, v) } 67 case reflect.Int16: 68 v := xtype.Make(t, x<<xtype.Int16(vy)) 69 return func(fr *frame) { fr.setReg(ir, v) } 70 case reflect.Int32: 71 v := xtype.Make(t, x<<xtype.Int32(vy)) 72 return func(fr *frame) { fr.setReg(ir, v) } 73 case reflect.Int64: 74 v := xtype.Make(t, x<<xtype.Int64(vy)) 75 return func(fr *frame) { fr.setReg(ir, v) } 76 case reflect.Uint: 77 v := xtype.Make(t, x<<xtype.Uint(vy)) 78 return func(fr *frame) { fr.setReg(ir, v) } 79 case reflect.Uint8: 80 v := xtype.Make(t, x<<xtype.Uint8(vy)) 81 return func(fr *frame) { fr.setReg(ir, v) } 82 case reflect.Uint16: 83 v := xtype.Make(t, x<<xtype.Uint16(vy)) 84 return func(fr *frame) { fr.setReg(ir, v) } 85 case reflect.Uint32: 86 v := xtype.Make(t, x<<xtype.Uint32(vy)) 87 return func(fr *frame) { fr.setReg(ir, v) } 88 case reflect.Uint64: 89 v := xtype.Make(t, x<<xtype.Uint64(vy)) 90 return func(fr *frame) { fr.setReg(ir, v) } 91 case reflect.Uintptr: 92 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 93 return func(fr *frame) { fr.setReg(ir, v) } 94 } 95 case reflect.Int16: 96 x := xtype.Int16(vx) 97 switch ykind { 98 case reflect.Int: 99 v := xtype.Make(t, x<<xtype.Int(vy)) 100 return func(fr *frame) { fr.setReg(ir, v) } 101 case reflect.Int8: 102 v := xtype.Make(t, x<<xtype.Int8(vy)) 103 return func(fr *frame) { fr.setReg(ir, v) } 104 case reflect.Int16: 105 v := xtype.Make(t, x<<xtype.Int16(vy)) 106 return func(fr *frame) { fr.setReg(ir, v) } 107 case reflect.Int32: 108 v := xtype.Make(t, x<<xtype.Int32(vy)) 109 return func(fr *frame) { fr.setReg(ir, v) } 110 case reflect.Int64: 111 v := xtype.Make(t, x<<xtype.Int64(vy)) 112 return func(fr *frame) { fr.setReg(ir, v) } 113 case reflect.Uint: 114 v := xtype.Make(t, x<<xtype.Uint(vy)) 115 return func(fr *frame) { fr.setReg(ir, v) } 116 case reflect.Uint8: 117 v := xtype.Make(t, x<<xtype.Uint8(vy)) 118 return func(fr *frame) { fr.setReg(ir, v) } 119 case reflect.Uint16: 120 v := xtype.Make(t, x<<xtype.Uint16(vy)) 121 return func(fr *frame) { fr.setReg(ir, v) } 122 case reflect.Uint32: 123 v := xtype.Make(t, x<<xtype.Uint32(vy)) 124 return func(fr *frame) { fr.setReg(ir, v) } 125 case reflect.Uint64: 126 v := xtype.Make(t, x<<xtype.Uint64(vy)) 127 return func(fr *frame) { fr.setReg(ir, v) } 128 case reflect.Uintptr: 129 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 130 return func(fr *frame) { fr.setReg(ir, v) } 131 } 132 case reflect.Int32: 133 x := xtype.Int32(vx) 134 switch ykind { 135 case reflect.Int: 136 v := xtype.Make(t, x<<xtype.Int(vy)) 137 return func(fr *frame) { fr.setReg(ir, v) } 138 case reflect.Int8: 139 v := xtype.Make(t, x<<xtype.Int8(vy)) 140 return func(fr *frame) { fr.setReg(ir, v) } 141 case reflect.Int16: 142 v := xtype.Make(t, x<<xtype.Int16(vy)) 143 return func(fr *frame) { fr.setReg(ir, v) } 144 case reflect.Int32: 145 v := xtype.Make(t, x<<xtype.Int32(vy)) 146 return func(fr *frame) { fr.setReg(ir, v) } 147 case reflect.Int64: 148 v := xtype.Make(t, x<<xtype.Int64(vy)) 149 return func(fr *frame) { fr.setReg(ir, v) } 150 case reflect.Uint: 151 v := xtype.Make(t, x<<xtype.Uint(vy)) 152 return func(fr *frame) { fr.setReg(ir, v) } 153 case reflect.Uint8: 154 v := xtype.Make(t, x<<xtype.Uint8(vy)) 155 return func(fr *frame) { fr.setReg(ir, v) } 156 case reflect.Uint16: 157 v := xtype.Make(t, x<<xtype.Uint16(vy)) 158 return func(fr *frame) { fr.setReg(ir, v) } 159 case reflect.Uint32: 160 v := xtype.Make(t, x<<xtype.Uint32(vy)) 161 return func(fr *frame) { fr.setReg(ir, v) } 162 case reflect.Uint64: 163 v := xtype.Make(t, x<<xtype.Uint64(vy)) 164 return func(fr *frame) { fr.setReg(ir, v) } 165 case reflect.Uintptr: 166 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 167 return func(fr *frame) { fr.setReg(ir, v) } 168 } 169 case reflect.Int64: 170 x := xtype.Int64(vx) 171 switch ykind { 172 case reflect.Int: 173 v := xtype.Make(t, x<<xtype.Int(vy)) 174 return func(fr *frame) { fr.setReg(ir, v) } 175 case reflect.Int8: 176 v := xtype.Make(t, x<<xtype.Int8(vy)) 177 return func(fr *frame) { fr.setReg(ir, v) } 178 case reflect.Int16: 179 v := xtype.Make(t, x<<xtype.Int16(vy)) 180 return func(fr *frame) { fr.setReg(ir, v) } 181 case reflect.Int32: 182 v := xtype.Make(t, x<<xtype.Int32(vy)) 183 return func(fr *frame) { fr.setReg(ir, v) } 184 case reflect.Int64: 185 v := xtype.Make(t, x<<xtype.Int64(vy)) 186 return func(fr *frame) { fr.setReg(ir, v) } 187 case reflect.Uint: 188 v := xtype.Make(t, x<<xtype.Uint(vy)) 189 return func(fr *frame) { fr.setReg(ir, v) } 190 case reflect.Uint8: 191 v := xtype.Make(t, x<<xtype.Uint8(vy)) 192 return func(fr *frame) { fr.setReg(ir, v) } 193 case reflect.Uint16: 194 v := xtype.Make(t, x<<xtype.Uint16(vy)) 195 return func(fr *frame) { fr.setReg(ir, v) } 196 case reflect.Uint32: 197 v := xtype.Make(t, x<<xtype.Uint32(vy)) 198 return func(fr *frame) { fr.setReg(ir, v) } 199 case reflect.Uint64: 200 v := xtype.Make(t, x<<xtype.Uint64(vy)) 201 return func(fr *frame) { fr.setReg(ir, v) } 202 case reflect.Uintptr: 203 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 204 return func(fr *frame) { fr.setReg(ir, v) } 205 } 206 case reflect.Uint: 207 x := xtype.Uint(vx) 208 switch ykind { 209 case reflect.Int: 210 v := xtype.Make(t, x<<xtype.Int(vy)) 211 return func(fr *frame) { fr.setReg(ir, v) } 212 case reflect.Int8: 213 v := xtype.Make(t, x<<xtype.Int8(vy)) 214 return func(fr *frame) { fr.setReg(ir, v) } 215 case reflect.Int16: 216 v := xtype.Make(t, x<<xtype.Int16(vy)) 217 return func(fr *frame) { fr.setReg(ir, v) } 218 case reflect.Int32: 219 v := xtype.Make(t, x<<xtype.Int32(vy)) 220 return func(fr *frame) { fr.setReg(ir, v) } 221 case reflect.Int64: 222 v := xtype.Make(t, x<<xtype.Int64(vy)) 223 return func(fr *frame) { fr.setReg(ir, v) } 224 case reflect.Uint: 225 v := xtype.Make(t, x<<xtype.Uint(vy)) 226 return func(fr *frame) { fr.setReg(ir, v) } 227 case reflect.Uint8: 228 v := xtype.Make(t, x<<xtype.Uint8(vy)) 229 return func(fr *frame) { fr.setReg(ir, v) } 230 case reflect.Uint16: 231 v := xtype.Make(t, x<<xtype.Uint16(vy)) 232 return func(fr *frame) { fr.setReg(ir, v) } 233 case reflect.Uint32: 234 v := xtype.Make(t, x<<xtype.Uint32(vy)) 235 return func(fr *frame) { fr.setReg(ir, v) } 236 case reflect.Uint64: 237 v := xtype.Make(t, x<<xtype.Uint64(vy)) 238 return func(fr *frame) { fr.setReg(ir, v) } 239 case reflect.Uintptr: 240 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 241 return func(fr *frame) { fr.setReg(ir, v) } 242 } 243 case reflect.Uint8: 244 x := xtype.Uint8(vx) 245 switch ykind { 246 case reflect.Int: 247 v := xtype.Make(t, x<<xtype.Int(vy)) 248 return func(fr *frame) { fr.setReg(ir, v) } 249 case reflect.Int8: 250 v := xtype.Make(t, x<<xtype.Int8(vy)) 251 return func(fr *frame) { fr.setReg(ir, v) } 252 case reflect.Int16: 253 v := xtype.Make(t, x<<xtype.Int16(vy)) 254 return func(fr *frame) { fr.setReg(ir, v) } 255 case reflect.Int32: 256 v := xtype.Make(t, x<<xtype.Int32(vy)) 257 return func(fr *frame) { fr.setReg(ir, v) } 258 case reflect.Int64: 259 v := xtype.Make(t, x<<xtype.Int64(vy)) 260 return func(fr *frame) { fr.setReg(ir, v) } 261 case reflect.Uint: 262 v := xtype.Make(t, x<<xtype.Uint(vy)) 263 return func(fr *frame) { fr.setReg(ir, v) } 264 case reflect.Uint8: 265 v := xtype.Make(t, x<<xtype.Uint8(vy)) 266 return func(fr *frame) { fr.setReg(ir, v) } 267 case reflect.Uint16: 268 v := xtype.Make(t, x<<xtype.Uint16(vy)) 269 return func(fr *frame) { fr.setReg(ir, v) } 270 case reflect.Uint32: 271 v := xtype.Make(t, x<<xtype.Uint32(vy)) 272 return func(fr *frame) { fr.setReg(ir, v) } 273 case reflect.Uint64: 274 v := xtype.Make(t, x<<xtype.Uint64(vy)) 275 return func(fr *frame) { fr.setReg(ir, v) } 276 case reflect.Uintptr: 277 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 278 return func(fr *frame) { fr.setReg(ir, v) } 279 } 280 case reflect.Uint16: 281 x := xtype.Uint16(vx) 282 switch ykind { 283 case reflect.Int: 284 v := xtype.Make(t, x<<xtype.Int(vy)) 285 return func(fr *frame) { fr.setReg(ir, v) } 286 case reflect.Int8: 287 v := xtype.Make(t, x<<xtype.Int8(vy)) 288 return func(fr *frame) { fr.setReg(ir, v) } 289 case reflect.Int16: 290 v := xtype.Make(t, x<<xtype.Int16(vy)) 291 return func(fr *frame) { fr.setReg(ir, v) } 292 case reflect.Int32: 293 v := xtype.Make(t, x<<xtype.Int32(vy)) 294 return func(fr *frame) { fr.setReg(ir, v) } 295 case reflect.Int64: 296 v := xtype.Make(t, x<<xtype.Int64(vy)) 297 return func(fr *frame) { fr.setReg(ir, v) } 298 case reflect.Uint: 299 v := xtype.Make(t, x<<xtype.Uint(vy)) 300 return func(fr *frame) { fr.setReg(ir, v) } 301 case reflect.Uint8: 302 v := xtype.Make(t, x<<xtype.Uint8(vy)) 303 return func(fr *frame) { fr.setReg(ir, v) } 304 case reflect.Uint16: 305 v := xtype.Make(t, x<<xtype.Uint16(vy)) 306 return func(fr *frame) { fr.setReg(ir, v) } 307 case reflect.Uint32: 308 v := xtype.Make(t, x<<xtype.Uint32(vy)) 309 return func(fr *frame) { fr.setReg(ir, v) } 310 case reflect.Uint64: 311 v := xtype.Make(t, x<<xtype.Uint64(vy)) 312 return func(fr *frame) { fr.setReg(ir, v) } 313 case reflect.Uintptr: 314 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 315 return func(fr *frame) { fr.setReg(ir, v) } 316 } 317 case reflect.Uint32: 318 x := xtype.Uint32(vx) 319 switch ykind { 320 case reflect.Int: 321 v := xtype.Make(t, x<<xtype.Int(vy)) 322 return func(fr *frame) { fr.setReg(ir, v) } 323 case reflect.Int8: 324 v := xtype.Make(t, x<<xtype.Int8(vy)) 325 return func(fr *frame) { fr.setReg(ir, v) } 326 case reflect.Int16: 327 v := xtype.Make(t, x<<xtype.Int16(vy)) 328 return func(fr *frame) { fr.setReg(ir, v) } 329 case reflect.Int32: 330 v := xtype.Make(t, x<<xtype.Int32(vy)) 331 return func(fr *frame) { fr.setReg(ir, v) } 332 case reflect.Int64: 333 v := xtype.Make(t, x<<xtype.Int64(vy)) 334 return func(fr *frame) { fr.setReg(ir, v) } 335 case reflect.Uint: 336 v := xtype.Make(t, x<<xtype.Uint(vy)) 337 return func(fr *frame) { fr.setReg(ir, v) } 338 case reflect.Uint8: 339 v := xtype.Make(t, x<<xtype.Uint8(vy)) 340 return func(fr *frame) { fr.setReg(ir, v) } 341 case reflect.Uint16: 342 v := xtype.Make(t, x<<xtype.Uint16(vy)) 343 return func(fr *frame) { fr.setReg(ir, v) } 344 case reflect.Uint32: 345 v := xtype.Make(t, x<<xtype.Uint32(vy)) 346 return func(fr *frame) { fr.setReg(ir, v) } 347 case reflect.Uint64: 348 v := xtype.Make(t, x<<xtype.Uint64(vy)) 349 return func(fr *frame) { fr.setReg(ir, v) } 350 case reflect.Uintptr: 351 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 352 return func(fr *frame) { fr.setReg(ir, v) } 353 } 354 case reflect.Uint64: 355 x := xtype.Uint64(vx) 356 switch ykind { 357 case reflect.Int: 358 v := xtype.Make(t, x<<xtype.Int(vy)) 359 return func(fr *frame) { fr.setReg(ir, v) } 360 case reflect.Int8: 361 v := xtype.Make(t, x<<xtype.Int8(vy)) 362 return func(fr *frame) { fr.setReg(ir, v) } 363 case reflect.Int16: 364 v := xtype.Make(t, x<<xtype.Int16(vy)) 365 return func(fr *frame) { fr.setReg(ir, v) } 366 case reflect.Int32: 367 v := xtype.Make(t, x<<xtype.Int32(vy)) 368 return func(fr *frame) { fr.setReg(ir, v) } 369 case reflect.Int64: 370 v := xtype.Make(t, x<<xtype.Int64(vy)) 371 return func(fr *frame) { fr.setReg(ir, v) } 372 case reflect.Uint: 373 v := xtype.Make(t, x<<xtype.Uint(vy)) 374 return func(fr *frame) { fr.setReg(ir, v) } 375 case reflect.Uint8: 376 v := xtype.Make(t, x<<xtype.Uint8(vy)) 377 return func(fr *frame) { fr.setReg(ir, v) } 378 case reflect.Uint16: 379 v := xtype.Make(t, x<<xtype.Uint16(vy)) 380 return func(fr *frame) { fr.setReg(ir, v) } 381 case reflect.Uint32: 382 v := xtype.Make(t, x<<xtype.Uint32(vy)) 383 return func(fr *frame) { fr.setReg(ir, v) } 384 case reflect.Uint64: 385 v := xtype.Make(t, x<<xtype.Uint64(vy)) 386 return func(fr *frame) { fr.setReg(ir, v) } 387 case reflect.Uintptr: 388 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 389 return func(fr *frame) { fr.setReg(ir, v) } 390 } 391 case reflect.Uintptr: 392 x := xtype.Uintptr(vx) 393 switch ykind { 394 case reflect.Int: 395 v := xtype.Make(t, x<<xtype.Int(vy)) 396 return func(fr *frame) { fr.setReg(ir, v) } 397 case reflect.Int8: 398 v := xtype.Make(t, x<<xtype.Int8(vy)) 399 return func(fr *frame) { fr.setReg(ir, v) } 400 case reflect.Int16: 401 v := xtype.Make(t, x<<xtype.Int16(vy)) 402 return func(fr *frame) { fr.setReg(ir, v) } 403 case reflect.Int32: 404 v := xtype.Make(t, x<<xtype.Int32(vy)) 405 return func(fr *frame) { fr.setReg(ir, v) } 406 case reflect.Int64: 407 v := xtype.Make(t, x<<xtype.Int64(vy)) 408 return func(fr *frame) { fr.setReg(ir, v) } 409 case reflect.Uint: 410 v := xtype.Make(t, x<<xtype.Uint(vy)) 411 return func(fr *frame) { fr.setReg(ir, v) } 412 case reflect.Uint8: 413 v := xtype.Make(t, x<<xtype.Uint8(vy)) 414 return func(fr *frame) { fr.setReg(ir, v) } 415 case reflect.Uint16: 416 v := xtype.Make(t, x<<xtype.Uint16(vy)) 417 return func(fr *frame) { fr.setReg(ir, v) } 418 case reflect.Uint32: 419 v := xtype.Make(t, x<<xtype.Uint32(vy)) 420 return func(fr *frame) { fr.setReg(ir, v) } 421 case reflect.Uint64: 422 v := xtype.Make(t, x<<xtype.Uint64(vy)) 423 return func(fr *frame) { fr.setReg(ir, v) } 424 case reflect.Uintptr: 425 v := xtype.Make(t, x<<xtype.Uintptr(vy)) 426 return func(fr *frame) { fr.setReg(ir, v) } 427 } 428 } 429 } 430 if xtyp.PkgPath() == "" { 431 switch xkind { 432 case reflect.Int: 433 if kx == kindConst { 434 x := vx.(int) 435 switch ykind { 436 case reflect.Int: 437 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 438 case reflect.Int8: 439 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 440 case reflect.Int16: 441 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 442 case reflect.Int32: 443 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 444 case reflect.Int64: 445 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 446 case reflect.Uint: 447 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 448 case reflect.Uint8: 449 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 450 case reflect.Uint16: 451 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 452 case reflect.Uint32: 453 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 454 case reflect.Uint64: 455 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 456 case reflect.Uintptr: 457 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 458 } 459 } else if ky == kindConst { 460 switch ykind { 461 case reflect.Int: 462 y := xtype.Int(vy) 463 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 464 case reflect.Int8: 465 y := xtype.Int8(vy) 466 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 467 case reflect.Int16: 468 y := xtype.Int16(vy) 469 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 470 case reflect.Int32: 471 y := xtype.Int32(vy) 472 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 473 case reflect.Int64: 474 y := xtype.Int64(vy) 475 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 476 case reflect.Uint: 477 y := xtype.Uint(vy) 478 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 479 case reflect.Uint8: 480 y := xtype.Uint8(vy) 481 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 482 case reflect.Uint16: 483 y := xtype.Uint16(vy) 484 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 485 case reflect.Uint32: 486 y := xtype.Uint32(vy) 487 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 488 case reflect.Uint64: 489 y := xtype.Uint64(vy) 490 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 491 case reflect.Uintptr: 492 y := xtype.Uintptr(vy) 493 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<y) } 494 } 495 } else { 496 switch ykind { 497 case reflect.Int: 498 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.int(iy)) } 499 case reflect.Int8: 500 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.int8(iy)) } 501 case reflect.Int16: 502 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.int16(iy)) } 503 case reflect.Int32: 504 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.int32(iy)) } 505 case reflect.Int64: 506 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.int64(iy)) } 507 case reflect.Uint: 508 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uint(iy)) } 509 case reflect.Uint8: 510 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uint8(iy)) } 511 case reflect.Uint16: 512 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uint16(iy)) } 513 case reflect.Uint32: 514 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uint32(iy)) } 515 case reflect.Uint64: 516 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uint64(iy)) } 517 case reflect.Uintptr: 518 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)<<fr.uintptr(iy)) } 519 } 520 } 521 case reflect.Int8: 522 if kx == kindConst { 523 x := vx.(int8) 524 switch ykind { 525 case reflect.Int: 526 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 527 case reflect.Int8: 528 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 529 case reflect.Int16: 530 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 531 case reflect.Int32: 532 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 533 case reflect.Int64: 534 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 535 case reflect.Uint: 536 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 537 case reflect.Uint8: 538 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 539 case reflect.Uint16: 540 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 541 case reflect.Uint32: 542 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 543 case reflect.Uint64: 544 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 545 case reflect.Uintptr: 546 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 547 } 548 } else if ky == kindConst { 549 switch ykind { 550 case reflect.Int: 551 y := xtype.Int(vy) 552 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 553 case reflect.Int8: 554 y := xtype.Int8(vy) 555 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 556 case reflect.Int16: 557 y := xtype.Int16(vy) 558 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 559 case reflect.Int32: 560 y := xtype.Int32(vy) 561 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 562 case reflect.Int64: 563 y := xtype.Int64(vy) 564 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 565 case reflect.Uint: 566 y := xtype.Uint(vy) 567 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 568 case reflect.Uint8: 569 y := xtype.Uint8(vy) 570 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 571 case reflect.Uint16: 572 y := xtype.Uint16(vy) 573 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 574 case reflect.Uint32: 575 y := xtype.Uint32(vy) 576 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 577 case reflect.Uint64: 578 y := xtype.Uint64(vy) 579 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 580 case reflect.Uintptr: 581 y := xtype.Uintptr(vy) 582 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<y) } 583 } 584 } else { 585 switch ykind { 586 case reflect.Int: 587 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.int(iy)) } 588 case reflect.Int8: 589 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.int8(iy)) } 590 case reflect.Int16: 591 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.int16(iy)) } 592 case reflect.Int32: 593 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.int32(iy)) } 594 case reflect.Int64: 595 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.int64(iy)) } 596 case reflect.Uint: 597 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uint(iy)) } 598 case reflect.Uint8: 599 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uint8(iy)) } 600 case reflect.Uint16: 601 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uint16(iy)) } 602 case reflect.Uint32: 603 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uint32(iy)) } 604 case reflect.Uint64: 605 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uint64(iy)) } 606 case reflect.Uintptr: 607 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)<<fr.uintptr(iy)) } 608 } 609 } 610 case reflect.Int16: 611 if kx == kindConst { 612 x := vx.(int16) 613 switch ykind { 614 case reflect.Int: 615 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 616 case reflect.Int8: 617 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 618 case reflect.Int16: 619 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 620 case reflect.Int32: 621 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 622 case reflect.Int64: 623 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 624 case reflect.Uint: 625 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 626 case reflect.Uint8: 627 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 628 case reflect.Uint16: 629 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 630 case reflect.Uint32: 631 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 632 case reflect.Uint64: 633 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 634 case reflect.Uintptr: 635 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 636 } 637 } else if ky == kindConst { 638 switch ykind { 639 case reflect.Int: 640 y := xtype.Int(vy) 641 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 642 case reflect.Int8: 643 y := xtype.Int8(vy) 644 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 645 case reflect.Int16: 646 y := xtype.Int16(vy) 647 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 648 case reflect.Int32: 649 y := xtype.Int32(vy) 650 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 651 case reflect.Int64: 652 y := xtype.Int64(vy) 653 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 654 case reflect.Uint: 655 y := xtype.Uint(vy) 656 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 657 case reflect.Uint8: 658 y := xtype.Uint8(vy) 659 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 660 case reflect.Uint16: 661 y := xtype.Uint16(vy) 662 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 663 case reflect.Uint32: 664 y := xtype.Uint32(vy) 665 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 666 case reflect.Uint64: 667 y := xtype.Uint64(vy) 668 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 669 case reflect.Uintptr: 670 y := xtype.Uintptr(vy) 671 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<y) } 672 } 673 } else { 674 switch ykind { 675 case reflect.Int: 676 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.int(iy)) } 677 case reflect.Int8: 678 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.int8(iy)) } 679 case reflect.Int16: 680 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.int16(iy)) } 681 case reflect.Int32: 682 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.int32(iy)) } 683 case reflect.Int64: 684 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.int64(iy)) } 685 case reflect.Uint: 686 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uint(iy)) } 687 case reflect.Uint8: 688 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uint8(iy)) } 689 case reflect.Uint16: 690 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uint16(iy)) } 691 case reflect.Uint32: 692 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uint32(iy)) } 693 case reflect.Uint64: 694 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uint64(iy)) } 695 case reflect.Uintptr: 696 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)<<fr.uintptr(iy)) } 697 } 698 } 699 case reflect.Int32: 700 if kx == kindConst { 701 x := vx.(int32) 702 switch ykind { 703 case reflect.Int: 704 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 705 case reflect.Int8: 706 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 707 case reflect.Int16: 708 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 709 case reflect.Int32: 710 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 711 case reflect.Int64: 712 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 713 case reflect.Uint: 714 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 715 case reflect.Uint8: 716 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 717 case reflect.Uint16: 718 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 719 case reflect.Uint32: 720 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 721 case reflect.Uint64: 722 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 723 case reflect.Uintptr: 724 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 725 } 726 } else if ky == kindConst { 727 switch ykind { 728 case reflect.Int: 729 y := xtype.Int(vy) 730 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 731 case reflect.Int8: 732 y := xtype.Int8(vy) 733 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 734 case reflect.Int16: 735 y := xtype.Int16(vy) 736 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 737 case reflect.Int32: 738 y := xtype.Int32(vy) 739 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 740 case reflect.Int64: 741 y := xtype.Int64(vy) 742 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 743 case reflect.Uint: 744 y := xtype.Uint(vy) 745 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 746 case reflect.Uint8: 747 y := xtype.Uint8(vy) 748 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 749 case reflect.Uint16: 750 y := xtype.Uint16(vy) 751 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 752 case reflect.Uint32: 753 y := xtype.Uint32(vy) 754 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 755 case reflect.Uint64: 756 y := xtype.Uint64(vy) 757 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 758 case reflect.Uintptr: 759 y := xtype.Uintptr(vy) 760 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<y) } 761 } 762 } else { 763 switch ykind { 764 case reflect.Int: 765 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.int(iy)) } 766 case reflect.Int8: 767 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.int8(iy)) } 768 case reflect.Int16: 769 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.int16(iy)) } 770 case reflect.Int32: 771 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.int32(iy)) } 772 case reflect.Int64: 773 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.int64(iy)) } 774 case reflect.Uint: 775 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uint(iy)) } 776 case reflect.Uint8: 777 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uint8(iy)) } 778 case reflect.Uint16: 779 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uint16(iy)) } 780 case reflect.Uint32: 781 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uint32(iy)) } 782 case reflect.Uint64: 783 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uint64(iy)) } 784 case reflect.Uintptr: 785 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)<<fr.uintptr(iy)) } 786 } 787 } 788 case reflect.Int64: 789 if kx == kindConst { 790 x := vx.(int64) 791 switch ykind { 792 case reflect.Int: 793 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 794 case reflect.Int8: 795 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 796 case reflect.Int16: 797 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 798 case reflect.Int32: 799 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 800 case reflect.Int64: 801 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 802 case reflect.Uint: 803 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 804 case reflect.Uint8: 805 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 806 case reflect.Uint16: 807 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 808 case reflect.Uint32: 809 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 810 case reflect.Uint64: 811 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 812 case reflect.Uintptr: 813 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 814 } 815 } else if ky == kindConst { 816 switch ykind { 817 case reflect.Int: 818 y := xtype.Int(vy) 819 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 820 case reflect.Int8: 821 y := xtype.Int8(vy) 822 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 823 case reflect.Int16: 824 y := xtype.Int16(vy) 825 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 826 case reflect.Int32: 827 y := xtype.Int32(vy) 828 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 829 case reflect.Int64: 830 y := xtype.Int64(vy) 831 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 832 case reflect.Uint: 833 y := xtype.Uint(vy) 834 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 835 case reflect.Uint8: 836 y := xtype.Uint8(vy) 837 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 838 case reflect.Uint16: 839 y := xtype.Uint16(vy) 840 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 841 case reflect.Uint32: 842 y := xtype.Uint32(vy) 843 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 844 case reflect.Uint64: 845 y := xtype.Uint64(vy) 846 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 847 case reflect.Uintptr: 848 y := xtype.Uintptr(vy) 849 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<y) } 850 } 851 } else { 852 switch ykind { 853 case reflect.Int: 854 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.int(iy)) } 855 case reflect.Int8: 856 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.int8(iy)) } 857 case reflect.Int16: 858 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.int16(iy)) } 859 case reflect.Int32: 860 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.int32(iy)) } 861 case reflect.Int64: 862 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.int64(iy)) } 863 case reflect.Uint: 864 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uint(iy)) } 865 case reflect.Uint8: 866 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uint8(iy)) } 867 case reflect.Uint16: 868 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uint16(iy)) } 869 case reflect.Uint32: 870 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uint32(iy)) } 871 case reflect.Uint64: 872 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uint64(iy)) } 873 case reflect.Uintptr: 874 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)<<fr.uintptr(iy)) } 875 } 876 } 877 case reflect.Uint: 878 if kx == kindConst { 879 x := vx.(uint) 880 switch ykind { 881 case reflect.Int: 882 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 883 case reflect.Int8: 884 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 885 case reflect.Int16: 886 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 887 case reflect.Int32: 888 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 889 case reflect.Int64: 890 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 891 case reflect.Uint: 892 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 893 case reflect.Uint8: 894 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 895 case reflect.Uint16: 896 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 897 case reflect.Uint32: 898 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 899 case reflect.Uint64: 900 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 901 case reflect.Uintptr: 902 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 903 } 904 } else if ky == kindConst { 905 switch ykind { 906 case reflect.Int: 907 y := xtype.Int(vy) 908 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 909 case reflect.Int8: 910 y := xtype.Int8(vy) 911 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 912 case reflect.Int16: 913 y := xtype.Int16(vy) 914 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 915 case reflect.Int32: 916 y := xtype.Int32(vy) 917 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 918 case reflect.Int64: 919 y := xtype.Int64(vy) 920 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 921 case reflect.Uint: 922 y := xtype.Uint(vy) 923 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 924 case reflect.Uint8: 925 y := xtype.Uint8(vy) 926 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 927 case reflect.Uint16: 928 y := xtype.Uint16(vy) 929 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 930 case reflect.Uint32: 931 y := xtype.Uint32(vy) 932 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 933 case reflect.Uint64: 934 y := xtype.Uint64(vy) 935 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 936 case reflect.Uintptr: 937 y := xtype.Uintptr(vy) 938 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<y) } 939 } 940 } else { 941 switch ykind { 942 case reflect.Int: 943 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.int(iy)) } 944 case reflect.Int8: 945 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.int8(iy)) } 946 case reflect.Int16: 947 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.int16(iy)) } 948 case reflect.Int32: 949 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.int32(iy)) } 950 case reflect.Int64: 951 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.int64(iy)) } 952 case reflect.Uint: 953 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uint(iy)) } 954 case reflect.Uint8: 955 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uint8(iy)) } 956 case reflect.Uint16: 957 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uint16(iy)) } 958 case reflect.Uint32: 959 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uint32(iy)) } 960 case reflect.Uint64: 961 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uint64(iy)) } 962 case reflect.Uintptr: 963 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)<<fr.uintptr(iy)) } 964 } 965 } 966 case reflect.Uint8: 967 if kx == kindConst { 968 x := vx.(uint8) 969 switch ykind { 970 case reflect.Int: 971 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 972 case reflect.Int8: 973 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 974 case reflect.Int16: 975 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 976 case reflect.Int32: 977 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 978 case reflect.Int64: 979 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 980 case reflect.Uint: 981 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 982 case reflect.Uint8: 983 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 984 case reflect.Uint16: 985 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 986 case reflect.Uint32: 987 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 988 case reflect.Uint64: 989 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 990 case reflect.Uintptr: 991 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 992 } 993 } else if ky == kindConst { 994 switch ykind { 995 case reflect.Int: 996 y := xtype.Int(vy) 997 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 998 case reflect.Int8: 999 y := xtype.Int8(vy) 1000 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1001 case reflect.Int16: 1002 y := xtype.Int16(vy) 1003 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1004 case reflect.Int32: 1005 y := xtype.Int32(vy) 1006 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1007 case reflect.Int64: 1008 y := xtype.Int64(vy) 1009 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1010 case reflect.Uint: 1011 y := xtype.Uint(vy) 1012 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1013 case reflect.Uint8: 1014 y := xtype.Uint8(vy) 1015 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1016 case reflect.Uint16: 1017 y := xtype.Uint16(vy) 1018 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1019 case reflect.Uint32: 1020 y := xtype.Uint32(vy) 1021 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1022 case reflect.Uint64: 1023 y := xtype.Uint64(vy) 1024 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1025 case reflect.Uintptr: 1026 y := xtype.Uintptr(vy) 1027 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<y) } 1028 } 1029 } else { 1030 switch ykind { 1031 case reflect.Int: 1032 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.int(iy)) } 1033 case reflect.Int8: 1034 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.int8(iy)) } 1035 case reflect.Int16: 1036 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.int16(iy)) } 1037 case reflect.Int32: 1038 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.int32(iy)) } 1039 case reflect.Int64: 1040 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.int64(iy)) } 1041 case reflect.Uint: 1042 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uint(iy)) } 1043 case reflect.Uint8: 1044 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uint8(iy)) } 1045 case reflect.Uint16: 1046 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uint16(iy)) } 1047 case reflect.Uint32: 1048 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uint32(iy)) } 1049 case reflect.Uint64: 1050 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uint64(iy)) } 1051 case reflect.Uintptr: 1052 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)<<fr.uintptr(iy)) } 1053 } 1054 } 1055 case reflect.Uint16: 1056 if kx == kindConst { 1057 x := vx.(uint16) 1058 switch ykind { 1059 case reflect.Int: 1060 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 1061 case reflect.Int8: 1062 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 1063 case reflect.Int16: 1064 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 1065 case reflect.Int32: 1066 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 1067 case reflect.Int64: 1068 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 1069 case reflect.Uint: 1070 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 1071 case reflect.Uint8: 1072 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 1073 case reflect.Uint16: 1074 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 1075 case reflect.Uint32: 1076 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 1077 case reflect.Uint64: 1078 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 1079 case reflect.Uintptr: 1080 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 1081 } 1082 } else if ky == kindConst { 1083 switch ykind { 1084 case reflect.Int: 1085 y := xtype.Int(vy) 1086 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1087 case reflect.Int8: 1088 y := xtype.Int8(vy) 1089 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1090 case reflect.Int16: 1091 y := xtype.Int16(vy) 1092 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1093 case reflect.Int32: 1094 y := xtype.Int32(vy) 1095 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1096 case reflect.Int64: 1097 y := xtype.Int64(vy) 1098 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1099 case reflect.Uint: 1100 y := xtype.Uint(vy) 1101 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1102 case reflect.Uint8: 1103 y := xtype.Uint8(vy) 1104 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1105 case reflect.Uint16: 1106 y := xtype.Uint16(vy) 1107 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1108 case reflect.Uint32: 1109 y := xtype.Uint32(vy) 1110 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1111 case reflect.Uint64: 1112 y := xtype.Uint64(vy) 1113 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1114 case reflect.Uintptr: 1115 y := xtype.Uintptr(vy) 1116 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<y) } 1117 } 1118 } else { 1119 switch ykind { 1120 case reflect.Int: 1121 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.int(iy)) } 1122 case reflect.Int8: 1123 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.int8(iy)) } 1124 case reflect.Int16: 1125 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.int16(iy)) } 1126 case reflect.Int32: 1127 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.int32(iy)) } 1128 case reflect.Int64: 1129 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.int64(iy)) } 1130 case reflect.Uint: 1131 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uint(iy)) } 1132 case reflect.Uint8: 1133 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uint8(iy)) } 1134 case reflect.Uint16: 1135 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uint16(iy)) } 1136 case reflect.Uint32: 1137 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uint32(iy)) } 1138 case reflect.Uint64: 1139 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uint64(iy)) } 1140 case reflect.Uintptr: 1141 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)<<fr.uintptr(iy)) } 1142 } 1143 } 1144 case reflect.Uint32: 1145 if kx == kindConst { 1146 x := vx.(uint32) 1147 switch ykind { 1148 case reflect.Int: 1149 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 1150 case reflect.Int8: 1151 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 1152 case reflect.Int16: 1153 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 1154 case reflect.Int32: 1155 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 1156 case reflect.Int64: 1157 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 1158 case reflect.Uint: 1159 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 1160 case reflect.Uint8: 1161 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 1162 case reflect.Uint16: 1163 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 1164 case reflect.Uint32: 1165 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 1166 case reflect.Uint64: 1167 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 1168 case reflect.Uintptr: 1169 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 1170 } 1171 } else if ky == kindConst { 1172 switch ykind { 1173 case reflect.Int: 1174 y := xtype.Int(vy) 1175 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1176 case reflect.Int8: 1177 y := xtype.Int8(vy) 1178 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1179 case reflect.Int16: 1180 y := xtype.Int16(vy) 1181 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1182 case reflect.Int32: 1183 y := xtype.Int32(vy) 1184 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1185 case reflect.Int64: 1186 y := xtype.Int64(vy) 1187 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1188 case reflect.Uint: 1189 y := xtype.Uint(vy) 1190 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1191 case reflect.Uint8: 1192 y := xtype.Uint8(vy) 1193 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1194 case reflect.Uint16: 1195 y := xtype.Uint16(vy) 1196 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1197 case reflect.Uint32: 1198 y := xtype.Uint32(vy) 1199 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1200 case reflect.Uint64: 1201 y := xtype.Uint64(vy) 1202 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1203 case reflect.Uintptr: 1204 y := xtype.Uintptr(vy) 1205 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<y) } 1206 } 1207 } else { 1208 switch ykind { 1209 case reflect.Int: 1210 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.int(iy)) } 1211 case reflect.Int8: 1212 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.int8(iy)) } 1213 case reflect.Int16: 1214 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.int16(iy)) } 1215 case reflect.Int32: 1216 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.int32(iy)) } 1217 case reflect.Int64: 1218 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.int64(iy)) } 1219 case reflect.Uint: 1220 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uint(iy)) } 1221 case reflect.Uint8: 1222 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uint8(iy)) } 1223 case reflect.Uint16: 1224 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uint16(iy)) } 1225 case reflect.Uint32: 1226 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uint32(iy)) } 1227 case reflect.Uint64: 1228 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uint64(iy)) } 1229 case reflect.Uintptr: 1230 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)<<fr.uintptr(iy)) } 1231 } 1232 } 1233 case reflect.Uint64: 1234 if kx == kindConst { 1235 x := vx.(uint64) 1236 switch ykind { 1237 case reflect.Int: 1238 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 1239 case reflect.Int8: 1240 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 1241 case reflect.Int16: 1242 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 1243 case reflect.Int32: 1244 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 1245 case reflect.Int64: 1246 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 1247 case reflect.Uint: 1248 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 1249 case reflect.Uint8: 1250 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 1251 case reflect.Uint16: 1252 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 1253 case reflect.Uint32: 1254 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 1255 case reflect.Uint64: 1256 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 1257 case reflect.Uintptr: 1258 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 1259 } 1260 } else if ky == kindConst { 1261 switch ykind { 1262 case reflect.Int: 1263 y := xtype.Int(vy) 1264 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1265 case reflect.Int8: 1266 y := xtype.Int8(vy) 1267 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1268 case reflect.Int16: 1269 y := xtype.Int16(vy) 1270 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1271 case reflect.Int32: 1272 y := xtype.Int32(vy) 1273 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1274 case reflect.Int64: 1275 y := xtype.Int64(vy) 1276 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1277 case reflect.Uint: 1278 y := xtype.Uint(vy) 1279 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1280 case reflect.Uint8: 1281 y := xtype.Uint8(vy) 1282 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1283 case reflect.Uint16: 1284 y := xtype.Uint16(vy) 1285 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1286 case reflect.Uint32: 1287 y := xtype.Uint32(vy) 1288 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1289 case reflect.Uint64: 1290 y := xtype.Uint64(vy) 1291 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1292 case reflect.Uintptr: 1293 y := xtype.Uintptr(vy) 1294 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<y) } 1295 } 1296 } else { 1297 switch ykind { 1298 case reflect.Int: 1299 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.int(iy)) } 1300 case reflect.Int8: 1301 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.int8(iy)) } 1302 case reflect.Int16: 1303 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.int16(iy)) } 1304 case reflect.Int32: 1305 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.int32(iy)) } 1306 case reflect.Int64: 1307 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.int64(iy)) } 1308 case reflect.Uint: 1309 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uint(iy)) } 1310 case reflect.Uint8: 1311 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uint8(iy)) } 1312 case reflect.Uint16: 1313 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uint16(iy)) } 1314 case reflect.Uint32: 1315 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uint32(iy)) } 1316 case reflect.Uint64: 1317 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uint64(iy)) } 1318 case reflect.Uintptr: 1319 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)<<fr.uintptr(iy)) } 1320 } 1321 } 1322 case reflect.Uintptr: 1323 if kx == kindConst { 1324 x := vx.(uintptr) 1325 switch ykind { 1326 case reflect.Int: 1327 return func(fr *frame) { fr.setReg(ir, x<<fr.int(iy)) } 1328 case reflect.Int8: 1329 return func(fr *frame) { fr.setReg(ir, x<<fr.int8(iy)) } 1330 case reflect.Int16: 1331 return func(fr *frame) { fr.setReg(ir, x<<fr.int16(iy)) } 1332 case reflect.Int32: 1333 return func(fr *frame) { fr.setReg(ir, x<<fr.int32(iy)) } 1334 case reflect.Int64: 1335 return func(fr *frame) { fr.setReg(ir, x<<fr.int64(iy)) } 1336 case reflect.Uint: 1337 return func(fr *frame) { fr.setReg(ir, x<<fr.uint(iy)) } 1338 case reflect.Uint8: 1339 return func(fr *frame) { fr.setReg(ir, x<<fr.uint8(iy)) } 1340 case reflect.Uint16: 1341 return func(fr *frame) { fr.setReg(ir, x<<fr.uint16(iy)) } 1342 case reflect.Uint32: 1343 return func(fr *frame) { fr.setReg(ir, x<<fr.uint32(iy)) } 1344 case reflect.Uint64: 1345 return func(fr *frame) { fr.setReg(ir, x<<fr.uint64(iy)) } 1346 case reflect.Uintptr: 1347 return func(fr *frame) { fr.setReg(ir, x<<fr.uintptr(iy)) } 1348 } 1349 } else if ky == kindConst { 1350 switch ykind { 1351 case reflect.Int: 1352 y := xtype.Int(vy) 1353 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1354 case reflect.Int8: 1355 y := xtype.Int8(vy) 1356 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1357 case reflect.Int16: 1358 y := xtype.Int16(vy) 1359 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1360 case reflect.Int32: 1361 y := xtype.Int32(vy) 1362 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1363 case reflect.Int64: 1364 y := xtype.Int64(vy) 1365 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1366 case reflect.Uint: 1367 y := xtype.Uint(vy) 1368 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1369 case reflect.Uint8: 1370 y := xtype.Uint8(vy) 1371 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1372 case reflect.Uint16: 1373 y := xtype.Uint16(vy) 1374 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1375 case reflect.Uint32: 1376 y := xtype.Uint32(vy) 1377 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1378 case reflect.Uint64: 1379 y := xtype.Uint64(vy) 1380 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1381 case reflect.Uintptr: 1382 y := xtype.Uintptr(vy) 1383 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<y) } 1384 } 1385 } else { 1386 switch ykind { 1387 case reflect.Int: 1388 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.int(iy)) } 1389 case reflect.Int8: 1390 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.int8(iy)) } 1391 case reflect.Int16: 1392 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.int16(iy)) } 1393 case reflect.Int32: 1394 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.int32(iy)) } 1395 case reflect.Int64: 1396 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.int64(iy)) } 1397 case reflect.Uint: 1398 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uint(iy)) } 1399 case reflect.Uint8: 1400 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uint8(iy)) } 1401 case reflect.Uint16: 1402 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uint16(iy)) } 1403 case reflect.Uint32: 1404 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uint32(iy)) } 1405 case reflect.Uint64: 1406 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uint64(iy)) } 1407 case reflect.Uintptr: 1408 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)<<fr.uintptr(iy)) } 1409 } 1410 } 1411 } 1412 } else { 1413 t := xtype.TypeOfType(xtyp) 1414 switch xkind { 1415 case reflect.Int: 1416 if kx == kindConst { 1417 x := xtype.Int(vx) 1418 switch ykind { 1419 case reflect.Int: 1420 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1421 case reflect.Int8: 1422 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1423 case reflect.Int16: 1424 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1425 case reflect.Int32: 1426 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1427 case reflect.Int64: 1428 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1429 case reflect.Uint: 1430 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1431 case reflect.Uint8: 1432 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1433 case reflect.Uint16: 1434 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1435 case reflect.Uint32: 1436 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1437 case reflect.Uint64: 1438 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1439 case reflect.Uintptr: 1440 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1441 } 1442 } else if ky == kindConst { 1443 switch ykind { 1444 case reflect.Int: 1445 y := xtype.Int(vy) 1446 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1447 case reflect.Int8: 1448 y := xtype.Int8(vy) 1449 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1450 case reflect.Int16: 1451 y := xtype.Int16(vy) 1452 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1453 case reflect.Int32: 1454 y := xtype.Int32(vy) 1455 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1456 case reflect.Int64: 1457 y := xtype.Int64(vy) 1458 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1459 case reflect.Uint: 1460 y := xtype.Uint(vy) 1461 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1462 case reflect.Uint8: 1463 y := xtype.Uint8(vy) 1464 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1465 case reflect.Uint16: 1466 y := xtype.Uint16(vy) 1467 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1468 case reflect.Uint32: 1469 y := xtype.Uint32(vy) 1470 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1471 case reflect.Uint64: 1472 y := xtype.Uint64(vy) 1473 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1474 case reflect.Uintptr: 1475 y := xtype.Uintptr(vy) 1476 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<y)) } 1477 } 1478 } else { 1479 switch ykind { 1480 case reflect.Int: 1481 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.int(iy))) } 1482 case reflect.Int8: 1483 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.int8(iy))) } 1484 case reflect.Int16: 1485 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.int16(iy))) } 1486 case reflect.Int32: 1487 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.int32(iy))) } 1488 case reflect.Int64: 1489 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.int64(iy))) } 1490 case reflect.Uint: 1491 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uint(iy))) } 1492 case reflect.Uint8: 1493 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uint8(iy))) } 1494 case reflect.Uint16: 1495 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uint16(iy))) } 1496 case reflect.Uint32: 1497 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uint32(iy))) } 1498 case reflect.Uint64: 1499 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uint64(iy))) } 1500 case reflect.Uintptr: 1501 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)<<fr.uintptr(iy))) } 1502 } 1503 } 1504 case reflect.Int8: 1505 if kx == kindConst { 1506 x := xtype.Int8(vx) 1507 switch ykind { 1508 case reflect.Int: 1509 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1510 case reflect.Int8: 1511 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1512 case reflect.Int16: 1513 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1514 case reflect.Int32: 1515 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1516 case reflect.Int64: 1517 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1518 case reflect.Uint: 1519 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1520 case reflect.Uint8: 1521 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1522 case reflect.Uint16: 1523 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1524 case reflect.Uint32: 1525 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1526 case reflect.Uint64: 1527 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1528 case reflect.Uintptr: 1529 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1530 } 1531 } else if ky == kindConst { 1532 switch ykind { 1533 case reflect.Int: 1534 y := xtype.Int(vy) 1535 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1536 case reflect.Int8: 1537 y := xtype.Int8(vy) 1538 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1539 case reflect.Int16: 1540 y := xtype.Int16(vy) 1541 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1542 case reflect.Int32: 1543 y := xtype.Int32(vy) 1544 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1545 case reflect.Int64: 1546 y := xtype.Int64(vy) 1547 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1548 case reflect.Uint: 1549 y := xtype.Uint(vy) 1550 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1551 case reflect.Uint8: 1552 y := xtype.Uint8(vy) 1553 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1554 case reflect.Uint16: 1555 y := xtype.Uint16(vy) 1556 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1557 case reflect.Uint32: 1558 y := xtype.Uint32(vy) 1559 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1560 case reflect.Uint64: 1561 y := xtype.Uint64(vy) 1562 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1563 case reflect.Uintptr: 1564 y := xtype.Uintptr(vy) 1565 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<y)) } 1566 } 1567 } else { 1568 switch ykind { 1569 case reflect.Int: 1570 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.int(iy))) } 1571 case reflect.Int8: 1572 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.int8(iy))) } 1573 case reflect.Int16: 1574 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.int16(iy))) } 1575 case reflect.Int32: 1576 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.int32(iy))) } 1577 case reflect.Int64: 1578 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.int64(iy))) } 1579 case reflect.Uint: 1580 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uint(iy))) } 1581 case reflect.Uint8: 1582 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uint8(iy))) } 1583 case reflect.Uint16: 1584 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uint16(iy))) } 1585 case reflect.Uint32: 1586 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uint32(iy))) } 1587 case reflect.Uint64: 1588 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uint64(iy))) } 1589 case reflect.Uintptr: 1590 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)<<fr.uintptr(iy))) } 1591 } 1592 } 1593 case reflect.Int16: 1594 if kx == kindConst { 1595 x := xtype.Int16(vx) 1596 switch ykind { 1597 case reflect.Int: 1598 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1599 case reflect.Int8: 1600 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1601 case reflect.Int16: 1602 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1603 case reflect.Int32: 1604 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1605 case reflect.Int64: 1606 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1607 case reflect.Uint: 1608 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1609 case reflect.Uint8: 1610 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1611 case reflect.Uint16: 1612 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1613 case reflect.Uint32: 1614 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1615 case reflect.Uint64: 1616 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1617 case reflect.Uintptr: 1618 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1619 } 1620 } else if ky == kindConst { 1621 switch ykind { 1622 case reflect.Int: 1623 y := xtype.Int(vy) 1624 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1625 case reflect.Int8: 1626 y := xtype.Int8(vy) 1627 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1628 case reflect.Int16: 1629 y := xtype.Int16(vy) 1630 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1631 case reflect.Int32: 1632 y := xtype.Int32(vy) 1633 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1634 case reflect.Int64: 1635 y := xtype.Int64(vy) 1636 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1637 case reflect.Uint: 1638 y := xtype.Uint(vy) 1639 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1640 case reflect.Uint8: 1641 y := xtype.Uint8(vy) 1642 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1643 case reflect.Uint16: 1644 y := xtype.Uint16(vy) 1645 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1646 case reflect.Uint32: 1647 y := xtype.Uint32(vy) 1648 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1649 case reflect.Uint64: 1650 y := xtype.Uint64(vy) 1651 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1652 case reflect.Uintptr: 1653 y := xtype.Uintptr(vy) 1654 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<y)) } 1655 } 1656 } else { 1657 switch ykind { 1658 case reflect.Int: 1659 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.int(iy))) } 1660 case reflect.Int8: 1661 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.int8(iy))) } 1662 case reflect.Int16: 1663 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.int16(iy))) } 1664 case reflect.Int32: 1665 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.int32(iy))) } 1666 case reflect.Int64: 1667 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.int64(iy))) } 1668 case reflect.Uint: 1669 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uint(iy))) } 1670 case reflect.Uint8: 1671 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uint8(iy))) } 1672 case reflect.Uint16: 1673 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uint16(iy))) } 1674 case reflect.Uint32: 1675 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uint32(iy))) } 1676 case reflect.Uint64: 1677 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uint64(iy))) } 1678 case reflect.Uintptr: 1679 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)<<fr.uintptr(iy))) } 1680 } 1681 } 1682 case reflect.Int32: 1683 if kx == kindConst { 1684 x := xtype.Int32(vx) 1685 switch ykind { 1686 case reflect.Int: 1687 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1688 case reflect.Int8: 1689 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1690 case reflect.Int16: 1691 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1692 case reflect.Int32: 1693 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1694 case reflect.Int64: 1695 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1696 case reflect.Uint: 1697 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1698 case reflect.Uint8: 1699 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1700 case reflect.Uint16: 1701 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1702 case reflect.Uint32: 1703 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1704 case reflect.Uint64: 1705 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1706 case reflect.Uintptr: 1707 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1708 } 1709 } else if ky == kindConst { 1710 switch ykind { 1711 case reflect.Int: 1712 y := xtype.Int(vy) 1713 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1714 case reflect.Int8: 1715 y := xtype.Int8(vy) 1716 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1717 case reflect.Int16: 1718 y := xtype.Int16(vy) 1719 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1720 case reflect.Int32: 1721 y := xtype.Int32(vy) 1722 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1723 case reflect.Int64: 1724 y := xtype.Int64(vy) 1725 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1726 case reflect.Uint: 1727 y := xtype.Uint(vy) 1728 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1729 case reflect.Uint8: 1730 y := xtype.Uint8(vy) 1731 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1732 case reflect.Uint16: 1733 y := xtype.Uint16(vy) 1734 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1735 case reflect.Uint32: 1736 y := xtype.Uint32(vy) 1737 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1738 case reflect.Uint64: 1739 y := xtype.Uint64(vy) 1740 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1741 case reflect.Uintptr: 1742 y := xtype.Uintptr(vy) 1743 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<y)) } 1744 } 1745 } else { 1746 switch ykind { 1747 case reflect.Int: 1748 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.int(iy))) } 1749 case reflect.Int8: 1750 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.int8(iy))) } 1751 case reflect.Int16: 1752 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.int16(iy))) } 1753 case reflect.Int32: 1754 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.int32(iy))) } 1755 case reflect.Int64: 1756 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.int64(iy))) } 1757 case reflect.Uint: 1758 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uint(iy))) } 1759 case reflect.Uint8: 1760 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uint8(iy))) } 1761 case reflect.Uint16: 1762 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uint16(iy))) } 1763 case reflect.Uint32: 1764 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uint32(iy))) } 1765 case reflect.Uint64: 1766 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uint64(iy))) } 1767 case reflect.Uintptr: 1768 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)<<fr.uintptr(iy))) } 1769 } 1770 } 1771 case reflect.Int64: 1772 if kx == kindConst { 1773 x := xtype.Int64(vx) 1774 switch ykind { 1775 case reflect.Int: 1776 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1777 case reflect.Int8: 1778 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1779 case reflect.Int16: 1780 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1781 case reflect.Int32: 1782 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1783 case reflect.Int64: 1784 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1785 case reflect.Uint: 1786 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1787 case reflect.Uint8: 1788 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1789 case reflect.Uint16: 1790 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1791 case reflect.Uint32: 1792 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1793 case reflect.Uint64: 1794 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1795 case reflect.Uintptr: 1796 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1797 } 1798 } else if ky == kindConst { 1799 switch ykind { 1800 case reflect.Int: 1801 y := xtype.Int(vy) 1802 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1803 case reflect.Int8: 1804 y := xtype.Int8(vy) 1805 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1806 case reflect.Int16: 1807 y := xtype.Int16(vy) 1808 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1809 case reflect.Int32: 1810 y := xtype.Int32(vy) 1811 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1812 case reflect.Int64: 1813 y := xtype.Int64(vy) 1814 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1815 case reflect.Uint: 1816 y := xtype.Uint(vy) 1817 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1818 case reflect.Uint8: 1819 y := xtype.Uint8(vy) 1820 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1821 case reflect.Uint16: 1822 y := xtype.Uint16(vy) 1823 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1824 case reflect.Uint32: 1825 y := xtype.Uint32(vy) 1826 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1827 case reflect.Uint64: 1828 y := xtype.Uint64(vy) 1829 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1830 case reflect.Uintptr: 1831 y := xtype.Uintptr(vy) 1832 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<y)) } 1833 } 1834 } else { 1835 switch ykind { 1836 case reflect.Int: 1837 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.int(iy))) } 1838 case reflect.Int8: 1839 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.int8(iy))) } 1840 case reflect.Int16: 1841 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.int16(iy))) } 1842 case reflect.Int32: 1843 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.int32(iy))) } 1844 case reflect.Int64: 1845 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.int64(iy))) } 1846 case reflect.Uint: 1847 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uint(iy))) } 1848 case reflect.Uint8: 1849 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uint8(iy))) } 1850 case reflect.Uint16: 1851 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uint16(iy))) } 1852 case reflect.Uint32: 1853 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uint32(iy))) } 1854 case reflect.Uint64: 1855 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uint64(iy))) } 1856 case reflect.Uintptr: 1857 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)<<fr.uintptr(iy))) } 1858 } 1859 } 1860 case reflect.Uint: 1861 if kx == kindConst { 1862 x := xtype.Uint(vx) 1863 switch ykind { 1864 case reflect.Int: 1865 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1866 case reflect.Int8: 1867 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1868 case reflect.Int16: 1869 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1870 case reflect.Int32: 1871 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1872 case reflect.Int64: 1873 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1874 case reflect.Uint: 1875 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1876 case reflect.Uint8: 1877 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1878 case reflect.Uint16: 1879 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1880 case reflect.Uint32: 1881 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1882 case reflect.Uint64: 1883 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1884 case reflect.Uintptr: 1885 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1886 } 1887 } else if ky == kindConst { 1888 switch ykind { 1889 case reflect.Int: 1890 y := xtype.Int(vy) 1891 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1892 case reflect.Int8: 1893 y := xtype.Int8(vy) 1894 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1895 case reflect.Int16: 1896 y := xtype.Int16(vy) 1897 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1898 case reflect.Int32: 1899 y := xtype.Int32(vy) 1900 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1901 case reflect.Int64: 1902 y := xtype.Int64(vy) 1903 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1904 case reflect.Uint: 1905 y := xtype.Uint(vy) 1906 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1907 case reflect.Uint8: 1908 y := xtype.Uint8(vy) 1909 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1910 case reflect.Uint16: 1911 y := xtype.Uint16(vy) 1912 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1913 case reflect.Uint32: 1914 y := xtype.Uint32(vy) 1915 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1916 case reflect.Uint64: 1917 y := xtype.Uint64(vy) 1918 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1919 case reflect.Uintptr: 1920 y := xtype.Uintptr(vy) 1921 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<y)) } 1922 } 1923 } else { 1924 switch ykind { 1925 case reflect.Int: 1926 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.int(iy))) } 1927 case reflect.Int8: 1928 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.int8(iy))) } 1929 case reflect.Int16: 1930 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.int16(iy))) } 1931 case reflect.Int32: 1932 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.int32(iy))) } 1933 case reflect.Int64: 1934 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.int64(iy))) } 1935 case reflect.Uint: 1936 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uint(iy))) } 1937 case reflect.Uint8: 1938 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uint8(iy))) } 1939 case reflect.Uint16: 1940 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uint16(iy))) } 1941 case reflect.Uint32: 1942 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uint32(iy))) } 1943 case reflect.Uint64: 1944 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uint64(iy))) } 1945 case reflect.Uintptr: 1946 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)<<fr.uintptr(iy))) } 1947 } 1948 } 1949 case reflect.Uint8: 1950 if kx == kindConst { 1951 x := xtype.Uint8(vx) 1952 switch ykind { 1953 case reflect.Int: 1954 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 1955 case reflect.Int8: 1956 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 1957 case reflect.Int16: 1958 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 1959 case reflect.Int32: 1960 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 1961 case reflect.Int64: 1962 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 1963 case reflect.Uint: 1964 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 1965 case reflect.Uint8: 1966 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 1967 case reflect.Uint16: 1968 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 1969 case reflect.Uint32: 1970 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 1971 case reflect.Uint64: 1972 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 1973 case reflect.Uintptr: 1974 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 1975 } 1976 } else if ky == kindConst { 1977 switch ykind { 1978 case reflect.Int: 1979 y := xtype.Int(vy) 1980 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1981 case reflect.Int8: 1982 y := xtype.Int8(vy) 1983 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1984 case reflect.Int16: 1985 y := xtype.Int16(vy) 1986 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1987 case reflect.Int32: 1988 y := xtype.Int32(vy) 1989 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1990 case reflect.Int64: 1991 y := xtype.Int64(vy) 1992 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1993 case reflect.Uint: 1994 y := xtype.Uint(vy) 1995 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1996 case reflect.Uint8: 1997 y := xtype.Uint8(vy) 1998 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 1999 case reflect.Uint16: 2000 y := xtype.Uint16(vy) 2001 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 2002 case reflect.Uint32: 2003 y := xtype.Uint32(vy) 2004 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 2005 case reflect.Uint64: 2006 y := xtype.Uint64(vy) 2007 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 2008 case reflect.Uintptr: 2009 y := xtype.Uintptr(vy) 2010 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<y)) } 2011 } 2012 } else { 2013 switch ykind { 2014 case reflect.Int: 2015 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.int(iy))) } 2016 case reflect.Int8: 2017 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.int8(iy))) } 2018 case reflect.Int16: 2019 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.int16(iy))) } 2020 case reflect.Int32: 2021 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.int32(iy))) } 2022 case reflect.Int64: 2023 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.int64(iy))) } 2024 case reflect.Uint: 2025 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uint(iy))) } 2026 case reflect.Uint8: 2027 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uint8(iy))) } 2028 case reflect.Uint16: 2029 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uint16(iy))) } 2030 case reflect.Uint32: 2031 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uint32(iy))) } 2032 case reflect.Uint64: 2033 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uint64(iy))) } 2034 case reflect.Uintptr: 2035 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)<<fr.uintptr(iy))) } 2036 } 2037 } 2038 case reflect.Uint16: 2039 if kx == kindConst { 2040 x := xtype.Uint16(vx) 2041 switch ykind { 2042 case reflect.Int: 2043 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 2044 case reflect.Int8: 2045 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 2046 case reflect.Int16: 2047 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 2048 case reflect.Int32: 2049 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 2050 case reflect.Int64: 2051 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 2052 case reflect.Uint: 2053 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 2054 case reflect.Uint8: 2055 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 2056 case reflect.Uint16: 2057 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 2058 case reflect.Uint32: 2059 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 2060 case reflect.Uint64: 2061 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 2062 case reflect.Uintptr: 2063 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 2064 } 2065 } else if ky == kindConst { 2066 switch ykind { 2067 case reflect.Int: 2068 y := xtype.Int(vy) 2069 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2070 case reflect.Int8: 2071 y := xtype.Int8(vy) 2072 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2073 case reflect.Int16: 2074 y := xtype.Int16(vy) 2075 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2076 case reflect.Int32: 2077 y := xtype.Int32(vy) 2078 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2079 case reflect.Int64: 2080 y := xtype.Int64(vy) 2081 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2082 case reflect.Uint: 2083 y := xtype.Uint(vy) 2084 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2085 case reflect.Uint8: 2086 y := xtype.Uint8(vy) 2087 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2088 case reflect.Uint16: 2089 y := xtype.Uint16(vy) 2090 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2091 case reflect.Uint32: 2092 y := xtype.Uint32(vy) 2093 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2094 case reflect.Uint64: 2095 y := xtype.Uint64(vy) 2096 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2097 case reflect.Uintptr: 2098 y := xtype.Uintptr(vy) 2099 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<y)) } 2100 } 2101 } else { 2102 switch ykind { 2103 case reflect.Int: 2104 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.int(iy))) } 2105 case reflect.Int8: 2106 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.int8(iy))) } 2107 case reflect.Int16: 2108 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.int16(iy))) } 2109 case reflect.Int32: 2110 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.int32(iy))) } 2111 case reflect.Int64: 2112 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.int64(iy))) } 2113 case reflect.Uint: 2114 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uint(iy))) } 2115 case reflect.Uint8: 2116 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uint8(iy))) } 2117 case reflect.Uint16: 2118 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uint16(iy))) } 2119 case reflect.Uint32: 2120 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uint32(iy))) } 2121 case reflect.Uint64: 2122 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uint64(iy))) } 2123 case reflect.Uintptr: 2124 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)<<fr.uintptr(iy))) } 2125 } 2126 } 2127 case reflect.Uint32: 2128 if kx == kindConst { 2129 x := xtype.Uint32(vx) 2130 switch ykind { 2131 case reflect.Int: 2132 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 2133 case reflect.Int8: 2134 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 2135 case reflect.Int16: 2136 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 2137 case reflect.Int32: 2138 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 2139 case reflect.Int64: 2140 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 2141 case reflect.Uint: 2142 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 2143 case reflect.Uint8: 2144 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 2145 case reflect.Uint16: 2146 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 2147 case reflect.Uint32: 2148 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 2149 case reflect.Uint64: 2150 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 2151 case reflect.Uintptr: 2152 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 2153 } 2154 } else if ky == kindConst { 2155 switch ykind { 2156 case reflect.Int: 2157 y := xtype.Int(vy) 2158 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2159 case reflect.Int8: 2160 y := xtype.Int8(vy) 2161 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2162 case reflect.Int16: 2163 y := xtype.Int16(vy) 2164 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2165 case reflect.Int32: 2166 y := xtype.Int32(vy) 2167 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2168 case reflect.Int64: 2169 y := xtype.Int64(vy) 2170 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2171 case reflect.Uint: 2172 y := xtype.Uint(vy) 2173 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2174 case reflect.Uint8: 2175 y := xtype.Uint8(vy) 2176 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2177 case reflect.Uint16: 2178 y := xtype.Uint16(vy) 2179 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2180 case reflect.Uint32: 2181 y := xtype.Uint32(vy) 2182 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2183 case reflect.Uint64: 2184 y := xtype.Uint64(vy) 2185 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2186 case reflect.Uintptr: 2187 y := xtype.Uintptr(vy) 2188 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<y)) } 2189 } 2190 } else { 2191 switch ykind { 2192 case reflect.Int: 2193 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.int(iy))) } 2194 case reflect.Int8: 2195 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.int8(iy))) } 2196 case reflect.Int16: 2197 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.int16(iy))) } 2198 case reflect.Int32: 2199 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.int32(iy))) } 2200 case reflect.Int64: 2201 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.int64(iy))) } 2202 case reflect.Uint: 2203 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uint(iy))) } 2204 case reflect.Uint8: 2205 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uint8(iy))) } 2206 case reflect.Uint16: 2207 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uint16(iy))) } 2208 case reflect.Uint32: 2209 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uint32(iy))) } 2210 case reflect.Uint64: 2211 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uint64(iy))) } 2212 case reflect.Uintptr: 2213 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)<<fr.uintptr(iy))) } 2214 } 2215 } 2216 case reflect.Uint64: 2217 if kx == kindConst { 2218 x := xtype.Uint64(vx) 2219 switch ykind { 2220 case reflect.Int: 2221 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 2222 case reflect.Int8: 2223 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 2224 case reflect.Int16: 2225 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 2226 case reflect.Int32: 2227 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 2228 case reflect.Int64: 2229 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 2230 case reflect.Uint: 2231 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 2232 case reflect.Uint8: 2233 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 2234 case reflect.Uint16: 2235 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 2236 case reflect.Uint32: 2237 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 2238 case reflect.Uint64: 2239 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 2240 case reflect.Uintptr: 2241 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 2242 } 2243 } else if ky == kindConst { 2244 switch ykind { 2245 case reflect.Int: 2246 y := xtype.Int(vy) 2247 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2248 case reflect.Int8: 2249 y := xtype.Int8(vy) 2250 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2251 case reflect.Int16: 2252 y := xtype.Int16(vy) 2253 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2254 case reflect.Int32: 2255 y := xtype.Int32(vy) 2256 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2257 case reflect.Int64: 2258 y := xtype.Int64(vy) 2259 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2260 case reflect.Uint: 2261 y := xtype.Uint(vy) 2262 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2263 case reflect.Uint8: 2264 y := xtype.Uint8(vy) 2265 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2266 case reflect.Uint16: 2267 y := xtype.Uint16(vy) 2268 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2269 case reflect.Uint32: 2270 y := xtype.Uint32(vy) 2271 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2272 case reflect.Uint64: 2273 y := xtype.Uint64(vy) 2274 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2275 case reflect.Uintptr: 2276 y := xtype.Uintptr(vy) 2277 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<y)) } 2278 } 2279 } else { 2280 switch ykind { 2281 case reflect.Int: 2282 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.int(iy))) } 2283 case reflect.Int8: 2284 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.int8(iy))) } 2285 case reflect.Int16: 2286 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.int16(iy))) } 2287 case reflect.Int32: 2288 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.int32(iy))) } 2289 case reflect.Int64: 2290 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.int64(iy))) } 2291 case reflect.Uint: 2292 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uint(iy))) } 2293 case reflect.Uint8: 2294 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uint8(iy))) } 2295 case reflect.Uint16: 2296 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uint16(iy))) } 2297 case reflect.Uint32: 2298 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uint32(iy))) } 2299 case reflect.Uint64: 2300 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uint64(iy))) } 2301 case reflect.Uintptr: 2302 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)<<fr.uintptr(iy))) } 2303 } 2304 } 2305 case reflect.Uintptr: 2306 if kx == kindConst { 2307 x := xtype.Uintptr(vx) 2308 switch ykind { 2309 case reflect.Int: 2310 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int(iy))) } 2311 case reflect.Int8: 2312 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int8(iy))) } 2313 case reflect.Int16: 2314 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int16(iy))) } 2315 case reflect.Int32: 2316 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int32(iy))) } 2317 case reflect.Int64: 2318 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.int64(iy))) } 2319 case reflect.Uint: 2320 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint(iy))) } 2321 case reflect.Uint8: 2322 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint8(iy))) } 2323 case reflect.Uint16: 2324 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint16(iy))) } 2325 case reflect.Uint32: 2326 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint32(iy))) } 2327 case reflect.Uint64: 2328 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uint64(iy))) } 2329 case reflect.Uintptr: 2330 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x<<fr.uintptr(iy))) } 2331 } 2332 } else if ky == kindConst { 2333 switch ykind { 2334 case reflect.Int: 2335 y := xtype.Int(vy) 2336 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2337 case reflect.Int8: 2338 y := xtype.Int8(vy) 2339 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2340 case reflect.Int16: 2341 y := xtype.Int16(vy) 2342 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2343 case reflect.Int32: 2344 y := xtype.Int32(vy) 2345 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2346 case reflect.Int64: 2347 y := xtype.Int64(vy) 2348 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2349 case reflect.Uint: 2350 y := xtype.Uint(vy) 2351 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2352 case reflect.Uint8: 2353 y := xtype.Uint8(vy) 2354 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2355 case reflect.Uint16: 2356 y := xtype.Uint16(vy) 2357 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2358 case reflect.Uint32: 2359 y := xtype.Uint32(vy) 2360 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2361 case reflect.Uint64: 2362 y := xtype.Uint64(vy) 2363 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2364 case reflect.Uintptr: 2365 y := xtype.Uintptr(vy) 2366 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<y)) } 2367 } 2368 } else { 2369 switch ykind { 2370 case reflect.Int: 2371 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.int(iy))) } 2372 case reflect.Int8: 2373 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.int8(iy))) } 2374 case reflect.Int16: 2375 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.int16(iy))) } 2376 case reflect.Int32: 2377 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.int32(iy))) } 2378 case reflect.Int64: 2379 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.int64(iy))) } 2380 case reflect.Uint: 2381 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uint(iy))) } 2382 case reflect.Uint8: 2383 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uint8(iy))) } 2384 case reflect.Uint16: 2385 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uint16(iy))) } 2386 case reflect.Uint32: 2387 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uint32(iy))) } 2388 case reflect.Uint64: 2389 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uint64(iy))) } 2390 case reflect.Uintptr: 2391 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)<<fr.uintptr(iy))) } 2392 } 2393 } 2394 } 2395 } 2396 panic("unreachable") 2397 } 2398 2399 func makeBinOpSHR(pfn *function, instr *ssa.BinOp) func(fr *frame) { 2400 ir := pfn.regIndex(instr) 2401 ix, kx, vx := pfn.regIndex3(instr.X) 2402 iy, ky, vy := pfn.regIndex3(instr.Y) 2403 xtyp := pfn.Interp.preToType(instr.X.Type()) 2404 ytyp := pfn.Interp.preToType(instr.Y.Type()) 2405 xkind := xtyp.Kind() 2406 ykind := ytyp.Kind() 2407 if kx == kindConst && ky == kindConst { 2408 t := xtype.TypeOfType(xtyp) 2409 switch xkind { 2410 case reflect.Int: 2411 x := xtype.Int(vx) 2412 switch ykind { 2413 case reflect.Int: 2414 v := xtype.Make(t, x>>xtype.Int(vy)) 2415 return func(fr *frame) { fr.setReg(ir, v) } 2416 case reflect.Int8: 2417 v := xtype.Make(t, x>>xtype.Int8(vy)) 2418 return func(fr *frame) { fr.setReg(ir, v) } 2419 case reflect.Int16: 2420 v := xtype.Make(t, x>>xtype.Int16(vy)) 2421 return func(fr *frame) { fr.setReg(ir, v) } 2422 case reflect.Int32: 2423 v := xtype.Make(t, x>>xtype.Int32(vy)) 2424 return func(fr *frame) { fr.setReg(ir, v) } 2425 case reflect.Int64: 2426 v := xtype.Make(t, x>>xtype.Int64(vy)) 2427 return func(fr *frame) { fr.setReg(ir, v) } 2428 case reflect.Uint: 2429 v := xtype.Make(t, x>>xtype.Uint(vy)) 2430 return func(fr *frame) { fr.setReg(ir, v) } 2431 case reflect.Uint8: 2432 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2433 return func(fr *frame) { fr.setReg(ir, v) } 2434 case reflect.Uint16: 2435 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2436 return func(fr *frame) { fr.setReg(ir, v) } 2437 case reflect.Uint32: 2438 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2439 return func(fr *frame) { fr.setReg(ir, v) } 2440 case reflect.Uint64: 2441 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2442 return func(fr *frame) { fr.setReg(ir, v) } 2443 case reflect.Uintptr: 2444 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2445 return func(fr *frame) { fr.setReg(ir, v) } 2446 } 2447 case reflect.Int8: 2448 x := xtype.Int8(vx) 2449 switch ykind { 2450 case reflect.Int: 2451 v := xtype.Make(t, x>>xtype.Int(vy)) 2452 return func(fr *frame) { fr.setReg(ir, v) } 2453 case reflect.Int8: 2454 v := xtype.Make(t, x>>xtype.Int8(vy)) 2455 return func(fr *frame) { fr.setReg(ir, v) } 2456 case reflect.Int16: 2457 v := xtype.Make(t, x>>xtype.Int16(vy)) 2458 return func(fr *frame) { fr.setReg(ir, v) } 2459 case reflect.Int32: 2460 v := xtype.Make(t, x>>xtype.Int32(vy)) 2461 return func(fr *frame) { fr.setReg(ir, v) } 2462 case reflect.Int64: 2463 v := xtype.Make(t, x>>xtype.Int64(vy)) 2464 return func(fr *frame) { fr.setReg(ir, v) } 2465 case reflect.Uint: 2466 v := xtype.Make(t, x>>xtype.Uint(vy)) 2467 return func(fr *frame) { fr.setReg(ir, v) } 2468 case reflect.Uint8: 2469 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2470 return func(fr *frame) { fr.setReg(ir, v) } 2471 case reflect.Uint16: 2472 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2473 return func(fr *frame) { fr.setReg(ir, v) } 2474 case reflect.Uint32: 2475 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2476 return func(fr *frame) { fr.setReg(ir, v) } 2477 case reflect.Uint64: 2478 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2479 return func(fr *frame) { fr.setReg(ir, v) } 2480 case reflect.Uintptr: 2481 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2482 return func(fr *frame) { fr.setReg(ir, v) } 2483 } 2484 case reflect.Int16: 2485 x := xtype.Int16(vx) 2486 switch ykind { 2487 case reflect.Int: 2488 v := xtype.Make(t, x>>xtype.Int(vy)) 2489 return func(fr *frame) { fr.setReg(ir, v) } 2490 case reflect.Int8: 2491 v := xtype.Make(t, x>>xtype.Int8(vy)) 2492 return func(fr *frame) { fr.setReg(ir, v) } 2493 case reflect.Int16: 2494 v := xtype.Make(t, x>>xtype.Int16(vy)) 2495 return func(fr *frame) { fr.setReg(ir, v) } 2496 case reflect.Int32: 2497 v := xtype.Make(t, x>>xtype.Int32(vy)) 2498 return func(fr *frame) { fr.setReg(ir, v) } 2499 case reflect.Int64: 2500 v := xtype.Make(t, x>>xtype.Int64(vy)) 2501 return func(fr *frame) { fr.setReg(ir, v) } 2502 case reflect.Uint: 2503 v := xtype.Make(t, x>>xtype.Uint(vy)) 2504 return func(fr *frame) { fr.setReg(ir, v) } 2505 case reflect.Uint8: 2506 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2507 return func(fr *frame) { fr.setReg(ir, v) } 2508 case reflect.Uint16: 2509 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2510 return func(fr *frame) { fr.setReg(ir, v) } 2511 case reflect.Uint32: 2512 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2513 return func(fr *frame) { fr.setReg(ir, v) } 2514 case reflect.Uint64: 2515 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2516 return func(fr *frame) { fr.setReg(ir, v) } 2517 case reflect.Uintptr: 2518 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2519 return func(fr *frame) { fr.setReg(ir, v) } 2520 } 2521 case reflect.Int32: 2522 x := xtype.Int32(vx) 2523 switch ykind { 2524 case reflect.Int: 2525 v := xtype.Make(t, x>>xtype.Int(vy)) 2526 return func(fr *frame) { fr.setReg(ir, v) } 2527 case reflect.Int8: 2528 v := xtype.Make(t, x>>xtype.Int8(vy)) 2529 return func(fr *frame) { fr.setReg(ir, v) } 2530 case reflect.Int16: 2531 v := xtype.Make(t, x>>xtype.Int16(vy)) 2532 return func(fr *frame) { fr.setReg(ir, v) } 2533 case reflect.Int32: 2534 v := xtype.Make(t, x>>xtype.Int32(vy)) 2535 return func(fr *frame) { fr.setReg(ir, v) } 2536 case reflect.Int64: 2537 v := xtype.Make(t, x>>xtype.Int64(vy)) 2538 return func(fr *frame) { fr.setReg(ir, v) } 2539 case reflect.Uint: 2540 v := xtype.Make(t, x>>xtype.Uint(vy)) 2541 return func(fr *frame) { fr.setReg(ir, v) } 2542 case reflect.Uint8: 2543 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2544 return func(fr *frame) { fr.setReg(ir, v) } 2545 case reflect.Uint16: 2546 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2547 return func(fr *frame) { fr.setReg(ir, v) } 2548 case reflect.Uint32: 2549 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2550 return func(fr *frame) { fr.setReg(ir, v) } 2551 case reflect.Uint64: 2552 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2553 return func(fr *frame) { fr.setReg(ir, v) } 2554 case reflect.Uintptr: 2555 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2556 return func(fr *frame) { fr.setReg(ir, v) } 2557 } 2558 case reflect.Int64: 2559 x := xtype.Int64(vx) 2560 switch ykind { 2561 case reflect.Int: 2562 v := xtype.Make(t, x>>xtype.Int(vy)) 2563 return func(fr *frame) { fr.setReg(ir, v) } 2564 case reflect.Int8: 2565 v := xtype.Make(t, x>>xtype.Int8(vy)) 2566 return func(fr *frame) { fr.setReg(ir, v) } 2567 case reflect.Int16: 2568 v := xtype.Make(t, x>>xtype.Int16(vy)) 2569 return func(fr *frame) { fr.setReg(ir, v) } 2570 case reflect.Int32: 2571 v := xtype.Make(t, x>>xtype.Int32(vy)) 2572 return func(fr *frame) { fr.setReg(ir, v) } 2573 case reflect.Int64: 2574 v := xtype.Make(t, x>>xtype.Int64(vy)) 2575 return func(fr *frame) { fr.setReg(ir, v) } 2576 case reflect.Uint: 2577 v := xtype.Make(t, x>>xtype.Uint(vy)) 2578 return func(fr *frame) { fr.setReg(ir, v) } 2579 case reflect.Uint8: 2580 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2581 return func(fr *frame) { fr.setReg(ir, v) } 2582 case reflect.Uint16: 2583 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2584 return func(fr *frame) { fr.setReg(ir, v) } 2585 case reflect.Uint32: 2586 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2587 return func(fr *frame) { fr.setReg(ir, v) } 2588 case reflect.Uint64: 2589 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2590 return func(fr *frame) { fr.setReg(ir, v) } 2591 case reflect.Uintptr: 2592 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2593 return func(fr *frame) { fr.setReg(ir, v) } 2594 } 2595 case reflect.Uint: 2596 x := xtype.Uint(vx) 2597 switch ykind { 2598 case reflect.Int: 2599 v := xtype.Make(t, x>>xtype.Int(vy)) 2600 return func(fr *frame) { fr.setReg(ir, v) } 2601 case reflect.Int8: 2602 v := xtype.Make(t, x>>xtype.Int8(vy)) 2603 return func(fr *frame) { fr.setReg(ir, v) } 2604 case reflect.Int16: 2605 v := xtype.Make(t, x>>xtype.Int16(vy)) 2606 return func(fr *frame) { fr.setReg(ir, v) } 2607 case reflect.Int32: 2608 v := xtype.Make(t, x>>xtype.Int32(vy)) 2609 return func(fr *frame) { fr.setReg(ir, v) } 2610 case reflect.Int64: 2611 v := xtype.Make(t, x>>xtype.Int64(vy)) 2612 return func(fr *frame) { fr.setReg(ir, v) } 2613 case reflect.Uint: 2614 v := xtype.Make(t, x>>xtype.Uint(vy)) 2615 return func(fr *frame) { fr.setReg(ir, v) } 2616 case reflect.Uint8: 2617 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2618 return func(fr *frame) { fr.setReg(ir, v) } 2619 case reflect.Uint16: 2620 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2621 return func(fr *frame) { fr.setReg(ir, v) } 2622 case reflect.Uint32: 2623 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2624 return func(fr *frame) { fr.setReg(ir, v) } 2625 case reflect.Uint64: 2626 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2627 return func(fr *frame) { fr.setReg(ir, v) } 2628 case reflect.Uintptr: 2629 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2630 return func(fr *frame) { fr.setReg(ir, v) } 2631 } 2632 case reflect.Uint8: 2633 x := xtype.Uint8(vx) 2634 switch ykind { 2635 case reflect.Int: 2636 v := xtype.Make(t, x>>xtype.Int(vy)) 2637 return func(fr *frame) { fr.setReg(ir, v) } 2638 case reflect.Int8: 2639 v := xtype.Make(t, x>>xtype.Int8(vy)) 2640 return func(fr *frame) { fr.setReg(ir, v) } 2641 case reflect.Int16: 2642 v := xtype.Make(t, x>>xtype.Int16(vy)) 2643 return func(fr *frame) { fr.setReg(ir, v) } 2644 case reflect.Int32: 2645 v := xtype.Make(t, x>>xtype.Int32(vy)) 2646 return func(fr *frame) { fr.setReg(ir, v) } 2647 case reflect.Int64: 2648 v := xtype.Make(t, x>>xtype.Int64(vy)) 2649 return func(fr *frame) { fr.setReg(ir, v) } 2650 case reflect.Uint: 2651 v := xtype.Make(t, x>>xtype.Uint(vy)) 2652 return func(fr *frame) { fr.setReg(ir, v) } 2653 case reflect.Uint8: 2654 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2655 return func(fr *frame) { fr.setReg(ir, v) } 2656 case reflect.Uint16: 2657 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2658 return func(fr *frame) { fr.setReg(ir, v) } 2659 case reflect.Uint32: 2660 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2661 return func(fr *frame) { fr.setReg(ir, v) } 2662 case reflect.Uint64: 2663 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2664 return func(fr *frame) { fr.setReg(ir, v) } 2665 case reflect.Uintptr: 2666 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2667 return func(fr *frame) { fr.setReg(ir, v) } 2668 } 2669 case reflect.Uint16: 2670 x := xtype.Uint16(vx) 2671 switch ykind { 2672 case reflect.Int: 2673 v := xtype.Make(t, x>>xtype.Int(vy)) 2674 return func(fr *frame) { fr.setReg(ir, v) } 2675 case reflect.Int8: 2676 v := xtype.Make(t, x>>xtype.Int8(vy)) 2677 return func(fr *frame) { fr.setReg(ir, v) } 2678 case reflect.Int16: 2679 v := xtype.Make(t, x>>xtype.Int16(vy)) 2680 return func(fr *frame) { fr.setReg(ir, v) } 2681 case reflect.Int32: 2682 v := xtype.Make(t, x>>xtype.Int32(vy)) 2683 return func(fr *frame) { fr.setReg(ir, v) } 2684 case reflect.Int64: 2685 v := xtype.Make(t, x>>xtype.Int64(vy)) 2686 return func(fr *frame) { fr.setReg(ir, v) } 2687 case reflect.Uint: 2688 v := xtype.Make(t, x>>xtype.Uint(vy)) 2689 return func(fr *frame) { fr.setReg(ir, v) } 2690 case reflect.Uint8: 2691 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2692 return func(fr *frame) { fr.setReg(ir, v) } 2693 case reflect.Uint16: 2694 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2695 return func(fr *frame) { fr.setReg(ir, v) } 2696 case reflect.Uint32: 2697 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2698 return func(fr *frame) { fr.setReg(ir, v) } 2699 case reflect.Uint64: 2700 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2701 return func(fr *frame) { fr.setReg(ir, v) } 2702 case reflect.Uintptr: 2703 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2704 return func(fr *frame) { fr.setReg(ir, v) } 2705 } 2706 case reflect.Uint32: 2707 x := xtype.Uint32(vx) 2708 switch ykind { 2709 case reflect.Int: 2710 v := xtype.Make(t, x>>xtype.Int(vy)) 2711 return func(fr *frame) { fr.setReg(ir, v) } 2712 case reflect.Int8: 2713 v := xtype.Make(t, x>>xtype.Int8(vy)) 2714 return func(fr *frame) { fr.setReg(ir, v) } 2715 case reflect.Int16: 2716 v := xtype.Make(t, x>>xtype.Int16(vy)) 2717 return func(fr *frame) { fr.setReg(ir, v) } 2718 case reflect.Int32: 2719 v := xtype.Make(t, x>>xtype.Int32(vy)) 2720 return func(fr *frame) { fr.setReg(ir, v) } 2721 case reflect.Int64: 2722 v := xtype.Make(t, x>>xtype.Int64(vy)) 2723 return func(fr *frame) { fr.setReg(ir, v) } 2724 case reflect.Uint: 2725 v := xtype.Make(t, x>>xtype.Uint(vy)) 2726 return func(fr *frame) { fr.setReg(ir, v) } 2727 case reflect.Uint8: 2728 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2729 return func(fr *frame) { fr.setReg(ir, v) } 2730 case reflect.Uint16: 2731 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2732 return func(fr *frame) { fr.setReg(ir, v) } 2733 case reflect.Uint32: 2734 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2735 return func(fr *frame) { fr.setReg(ir, v) } 2736 case reflect.Uint64: 2737 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2738 return func(fr *frame) { fr.setReg(ir, v) } 2739 case reflect.Uintptr: 2740 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2741 return func(fr *frame) { fr.setReg(ir, v) } 2742 } 2743 case reflect.Uint64: 2744 x := xtype.Uint64(vx) 2745 switch ykind { 2746 case reflect.Int: 2747 v := xtype.Make(t, x>>xtype.Int(vy)) 2748 return func(fr *frame) { fr.setReg(ir, v) } 2749 case reflect.Int8: 2750 v := xtype.Make(t, x>>xtype.Int8(vy)) 2751 return func(fr *frame) { fr.setReg(ir, v) } 2752 case reflect.Int16: 2753 v := xtype.Make(t, x>>xtype.Int16(vy)) 2754 return func(fr *frame) { fr.setReg(ir, v) } 2755 case reflect.Int32: 2756 v := xtype.Make(t, x>>xtype.Int32(vy)) 2757 return func(fr *frame) { fr.setReg(ir, v) } 2758 case reflect.Int64: 2759 v := xtype.Make(t, x>>xtype.Int64(vy)) 2760 return func(fr *frame) { fr.setReg(ir, v) } 2761 case reflect.Uint: 2762 v := xtype.Make(t, x>>xtype.Uint(vy)) 2763 return func(fr *frame) { fr.setReg(ir, v) } 2764 case reflect.Uint8: 2765 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2766 return func(fr *frame) { fr.setReg(ir, v) } 2767 case reflect.Uint16: 2768 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2769 return func(fr *frame) { fr.setReg(ir, v) } 2770 case reflect.Uint32: 2771 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2772 return func(fr *frame) { fr.setReg(ir, v) } 2773 case reflect.Uint64: 2774 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2775 return func(fr *frame) { fr.setReg(ir, v) } 2776 case reflect.Uintptr: 2777 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2778 return func(fr *frame) { fr.setReg(ir, v) } 2779 } 2780 case reflect.Uintptr: 2781 x := xtype.Uintptr(vx) 2782 switch ykind { 2783 case reflect.Int: 2784 v := xtype.Make(t, x>>xtype.Int(vy)) 2785 return func(fr *frame) { fr.setReg(ir, v) } 2786 case reflect.Int8: 2787 v := xtype.Make(t, x>>xtype.Int8(vy)) 2788 return func(fr *frame) { fr.setReg(ir, v) } 2789 case reflect.Int16: 2790 v := xtype.Make(t, x>>xtype.Int16(vy)) 2791 return func(fr *frame) { fr.setReg(ir, v) } 2792 case reflect.Int32: 2793 v := xtype.Make(t, x>>xtype.Int32(vy)) 2794 return func(fr *frame) { fr.setReg(ir, v) } 2795 case reflect.Int64: 2796 v := xtype.Make(t, x>>xtype.Int64(vy)) 2797 return func(fr *frame) { fr.setReg(ir, v) } 2798 case reflect.Uint: 2799 v := xtype.Make(t, x>>xtype.Uint(vy)) 2800 return func(fr *frame) { fr.setReg(ir, v) } 2801 case reflect.Uint8: 2802 v := xtype.Make(t, x>>xtype.Uint8(vy)) 2803 return func(fr *frame) { fr.setReg(ir, v) } 2804 case reflect.Uint16: 2805 v := xtype.Make(t, x>>xtype.Uint16(vy)) 2806 return func(fr *frame) { fr.setReg(ir, v) } 2807 case reflect.Uint32: 2808 v := xtype.Make(t, x>>xtype.Uint32(vy)) 2809 return func(fr *frame) { fr.setReg(ir, v) } 2810 case reflect.Uint64: 2811 v := xtype.Make(t, x>>xtype.Uint64(vy)) 2812 return func(fr *frame) { fr.setReg(ir, v) } 2813 case reflect.Uintptr: 2814 v := xtype.Make(t, x>>xtype.Uintptr(vy)) 2815 return func(fr *frame) { fr.setReg(ir, v) } 2816 } 2817 } 2818 } 2819 if xtyp.PkgPath() == "" { 2820 switch xkind { 2821 case reflect.Int: 2822 if kx == kindConst { 2823 x := vx.(int) 2824 switch ykind { 2825 case reflect.Int: 2826 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 2827 case reflect.Int8: 2828 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 2829 case reflect.Int16: 2830 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 2831 case reflect.Int32: 2832 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 2833 case reflect.Int64: 2834 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 2835 case reflect.Uint: 2836 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 2837 case reflect.Uint8: 2838 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 2839 case reflect.Uint16: 2840 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 2841 case reflect.Uint32: 2842 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 2843 case reflect.Uint64: 2844 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 2845 case reflect.Uintptr: 2846 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 2847 } 2848 } else if ky == kindConst { 2849 switch ykind { 2850 case reflect.Int: 2851 y := xtype.Int(vy) 2852 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2853 case reflect.Int8: 2854 y := xtype.Int8(vy) 2855 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2856 case reflect.Int16: 2857 y := xtype.Int16(vy) 2858 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2859 case reflect.Int32: 2860 y := xtype.Int32(vy) 2861 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2862 case reflect.Int64: 2863 y := xtype.Int64(vy) 2864 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2865 case reflect.Uint: 2866 y := xtype.Uint(vy) 2867 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2868 case reflect.Uint8: 2869 y := xtype.Uint8(vy) 2870 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2871 case reflect.Uint16: 2872 y := xtype.Uint16(vy) 2873 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2874 case reflect.Uint32: 2875 y := xtype.Uint32(vy) 2876 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2877 case reflect.Uint64: 2878 y := xtype.Uint64(vy) 2879 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2880 case reflect.Uintptr: 2881 y := xtype.Uintptr(vy) 2882 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>y) } 2883 } 2884 } else { 2885 switch ykind { 2886 case reflect.Int: 2887 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.int(iy)) } 2888 case reflect.Int8: 2889 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.int8(iy)) } 2890 case reflect.Int16: 2891 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.int16(iy)) } 2892 case reflect.Int32: 2893 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.int32(iy)) } 2894 case reflect.Int64: 2895 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.int64(iy)) } 2896 case reflect.Uint: 2897 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uint(iy)) } 2898 case reflect.Uint8: 2899 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uint8(iy)) } 2900 case reflect.Uint16: 2901 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uint16(iy)) } 2902 case reflect.Uint32: 2903 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uint32(iy)) } 2904 case reflect.Uint64: 2905 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uint64(iy)) } 2906 case reflect.Uintptr: 2907 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int)>>fr.uintptr(iy)) } 2908 } 2909 } 2910 case reflect.Int8: 2911 if kx == kindConst { 2912 x := vx.(int8) 2913 switch ykind { 2914 case reflect.Int: 2915 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 2916 case reflect.Int8: 2917 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 2918 case reflect.Int16: 2919 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 2920 case reflect.Int32: 2921 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 2922 case reflect.Int64: 2923 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 2924 case reflect.Uint: 2925 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 2926 case reflect.Uint8: 2927 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 2928 case reflect.Uint16: 2929 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 2930 case reflect.Uint32: 2931 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 2932 case reflect.Uint64: 2933 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 2934 case reflect.Uintptr: 2935 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 2936 } 2937 } else if ky == kindConst { 2938 switch ykind { 2939 case reflect.Int: 2940 y := xtype.Int(vy) 2941 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2942 case reflect.Int8: 2943 y := xtype.Int8(vy) 2944 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2945 case reflect.Int16: 2946 y := xtype.Int16(vy) 2947 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2948 case reflect.Int32: 2949 y := xtype.Int32(vy) 2950 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2951 case reflect.Int64: 2952 y := xtype.Int64(vy) 2953 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2954 case reflect.Uint: 2955 y := xtype.Uint(vy) 2956 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2957 case reflect.Uint8: 2958 y := xtype.Uint8(vy) 2959 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2960 case reflect.Uint16: 2961 y := xtype.Uint16(vy) 2962 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2963 case reflect.Uint32: 2964 y := xtype.Uint32(vy) 2965 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2966 case reflect.Uint64: 2967 y := xtype.Uint64(vy) 2968 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2969 case reflect.Uintptr: 2970 y := xtype.Uintptr(vy) 2971 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>y) } 2972 } 2973 } else { 2974 switch ykind { 2975 case reflect.Int: 2976 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.int(iy)) } 2977 case reflect.Int8: 2978 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.int8(iy)) } 2979 case reflect.Int16: 2980 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.int16(iy)) } 2981 case reflect.Int32: 2982 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.int32(iy)) } 2983 case reflect.Int64: 2984 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.int64(iy)) } 2985 case reflect.Uint: 2986 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uint(iy)) } 2987 case reflect.Uint8: 2988 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uint8(iy)) } 2989 case reflect.Uint16: 2990 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uint16(iy)) } 2991 case reflect.Uint32: 2992 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uint32(iy)) } 2993 case reflect.Uint64: 2994 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uint64(iy)) } 2995 case reflect.Uintptr: 2996 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int8)>>fr.uintptr(iy)) } 2997 } 2998 } 2999 case reflect.Int16: 3000 if kx == kindConst { 3001 x := vx.(int16) 3002 switch ykind { 3003 case reflect.Int: 3004 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3005 case reflect.Int8: 3006 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3007 case reflect.Int16: 3008 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3009 case reflect.Int32: 3010 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3011 case reflect.Int64: 3012 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3013 case reflect.Uint: 3014 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3015 case reflect.Uint8: 3016 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3017 case reflect.Uint16: 3018 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3019 case reflect.Uint32: 3020 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3021 case reflect.Uint64: 3022 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3023 case reflect.Uintptr: 3024 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3025 } 3026 } else if ky == kindConst { 3027 switch ykind { 3028 case reflect.Int: 3029 y := xtype.Int(vy) 3030 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3031 case reflect.Int8: 3032 y := xtype.Int8(vy) 3033 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3034 case reflect.Int16: 3035 y := xtype.Int16(vy) 3036 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3037 case reflect.Int32: 3038 y := xtype.Int32(vy) 3039 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3040 case reflect.Int64: 3041 y := xtype.Int64(vy) 3042 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3043 case reflect.Uint: 3044 y := xtype.Uint(vy) 3045 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3046 case reflect.Uint8: 3047 y := xtype.Uint8(vy) 3048 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3049 case reflect.Uint16: 3050 y := xtype.Uint16(vy) 3051 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3052 case reflect.Uint32: 3053 y := xtype.Uint32(vy) 3054 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3055 case reflect.Uint64: 3056 y := xtype.Uint64(vy) 3057 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3058 case reflect.Uintptr: 3059 y := xtype.Uintptr(vy) 3060 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>y) } 3061 } 3062 } else { 3063 switch ykind { 3064 case reflect.Int: 3065 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.int(iy)) } 3066 case reflect.Int8: 3067 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.int8(iy)) } 3068 case reflect.Int16: 3069 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.int16(iy)) } 3070 case reflect.Int32: 3071 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.int32(iy)) } 3072 case reflect.Int64: 3073 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.int64(iy)) } 3074 case reflect.Uint: 3075 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uint(iy)) } 3076 case reflect.Uint8: 3077 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uint8(iy)) } 3078 case reflect.Uint16: 3079 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uint16(iy)) } 3080 case reflect.Uint32: 3081 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uint32(iy)) } 3082 case reflect.Uint64: 3083 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uint64(iy)) } 3084 case reflect.Uintptr: 3085 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int16)>>fr.uintptr(iy)) } 3086 } 3087 } 3088 case reflect.Int32: 3089 if kx == kindConst { 3090 x := vx.(int32) 3091 switch ykind { 3092 case reflect.Int: 3093 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3094 case reflect.Int8: 3095 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3096 case reflect.Int16: 3097 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3098 case reflect.Int32: 3099 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3100 case reflect.Int64: 3101 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3102 case reflect.Uint: 3103 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3104 case reflect.Uint8: 3105 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3106 case reflect.Uint16: 3107 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3108 case reflect.Uint32: 3109 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3110 case reflect.Uint64: 3111 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3112 case reflect.Uintptr: 3113 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3114 } 3115 } else if ky == kindConst { 3116 switch ykind { 3117 case reflect.Int: 3118 y := xtype.Int(vy) 3119 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3120 case reflect.Int8: 3121 y := xtype.Int8(vy) 3122 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3123 case reflect.Int16: 3124 y := xtype.Int16(vy) 3125 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3126 case reflect.Int32: 3127 y := xtype.Int32(vy) 3128 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3129 case reflect.Int64: 3130 y := xtype.Int64(vy) 3131 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3132 case reflect.Uint: 3133 y := xtype.Uint(vy) 3134 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3135 case reflect.Uint8: 3136 y := xtype.Uint8(vy) 3137 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3138 case reflect.Uint16: 3139 y := xtype.Uint16(vy) 3140 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3141 case reflect.Uint32: 3142 y := xtype.Uint32(vy) 3143 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3144 case reflect.Uint64: 3145 y := xtype.Uint64(vy) 3146 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3147 case reflect.Uintptr: 3148 y := xtype.Uintptr(vy) 3149 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>y) } 3150 } 3151 } else { 3152 switch ykind { 3153 case reflect.Int: 3154 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.int(iy)) } 3155 case reflect.Int8: 3156 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.int8(iy)) } 3157 case reflect.Int16: 3158 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.int16(iy)) } 3159 case reflect.Int32: 3160 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.int32(iy)) } 3161 case reflect.Int64: 3162 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.int64(iy)) } 3163 case reflect.Uint: 3164 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uint(iy)) } 3165 case reflect.Uint8: 3166 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uint8(iy)) } 3167 case reflect.Uint16: 3168 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uint16(iy)) } 3169 case reflect.Uint32: 3170 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uint32(iy)) } 3171 case reflect.Uint64: 3172 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uint64(iy)) } 3173 case reflect.Uintptr: 3174 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int32)>>fr.uintptr(iy)) } 3175 } 3176 } 3177 case reflect.Int64: 3178 if kx == kindConst { 3179 x := vx.(int64) 3180 switch ykind { 3181 case reflect.Int: 3182 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3183 case reflect.Int8: 3184 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3185 case reflect.Int16: 3186 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3187 case reflect.Int32: 3188 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3189 case reflect.Int64: 3190 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3191 case reflect.Uint: 3192 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3193 case reflect.Uint8: 3194 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3195 case reflect.Uint16: 3196 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3197 case reflect.Uint32: 3198 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3199 case reflect.Uint64: 3200 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3201 case reflect.Uintptr: 3202 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3203 } 3204 } else if ky == kindConst { 3205 switch ykind { 3206 case reflect.Int: 3207 y := xtype.Int(vy) 3208 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3209 case reflect.Int8: 3210 y := xtype.Int8(vy) 3211 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3212 case reflect.Int16: 3213 y := xtype.Int16(vy) 3214 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3215 case reflect.Int32: 3216 y := xtype.Int32(vy) 3217 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3218 case reflect.Int64: 3219 y := xtype.Int64(vy) 3220 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3221 case reflect.Uint: 3222 y := xtype.Uint(vy) 3223 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3224 case reflect.Uint8: 3225 y := xtype.Uint8(vy) 3226 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3227 case reflect.Uint16: 3228 y := xtype.Uint16(vy) 3229 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3230 case reflect.Uint32: 3231 y := xtype.Uint32(vy) 3232 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3233 case reflect.Uint64: 3234 y := xtype.Uint64(vy) 3235 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3236 case reflect.Uintptr: 3237 y := xtype.Uintptr(vy) 3238 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>y) } 3239 } 3240 } else { 3241 switch ykind { 3242 case reflect.Int: 3243 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.int(iy)) } 3244 case reflect.Int8: 3245 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.int8(iy)) } 3246 case reflect.Int16: 3247 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.int16(iy)) } 3248 case reflect.Int32: 3249 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.int32(iy)) } 3250 case reflect.Int64: 3251 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.int64(iy)) } 3252 case reflect.Uint: 3253 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uint(iy)) } 3254 case reflect.Uint8: 3255 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uint8(iy)) } 3256 case reflect.Uint16: 3257 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uint16(iy)) } 3258 case reflect.Uint32: 3259 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uint32(iy)) } 3260 case reflect.Uint64: 3261 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uint64(iy)) } 3262 case reflect.Uintptr: 3263 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(int64)>>fr.uintptr(iy)) } 3264 } 3265 } 3266 case reflect.Uint: 3267 if kx == kindConst { 3268 x := vx.(uint) 3269 switch ykind { 3270 case reflect.Int: 3271 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3272 case reflect.Int8: 3273 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3274 case reflect.Int16: 3275 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3276 case reflect.Int32: 3277 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3278 case reflect.Int64: 3279 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3280 case reflect.Uint: 3281 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3282 case reflect.Uint8: 3283 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3284 case reflect.Uint16: 3285 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3286 case reflect.Uint32: 3287 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3288 case reflect.Uint64: 3289 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3290 case reflect.Uintptr: 3291 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3292 } 3293 } else if ky == kindConst { 3294 switch ykind { 3295 case reflect.Int: 3296 y := xtype.Int(vy) 3297 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3298 case reflect.Int8: 3299 y := xtype.Int8(vy) 3300 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3301 case reflect.Int16: 3302 y := xtype.Int16(vy) 3303 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3304 case reflect.Int32: 3305 y := xtype.Int32(vy) 3306 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3307 case reflect.Int64: 3308 y := xtype.Int64(vy) 3309 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3310 case reflect.Uint: 3311 y := xtype.Uint(vy) 3312 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3313 case reflect.Uint8: 3314 y := xtype.Uint8(vy) 3315 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3316 case reflect.Uint16: 3317 y := xtype.Uint16(vy) 3318 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3319 case reflect.Uint32: 3320 y := xtype.Uint32(vy) 3321 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3322 case reflect.Uint64: 3323 y := xtype.Uint64(vy) 3324 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3325 case reflect.Uintptr: 3326 y := xtype.Uintptr(vy) 3327 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>y) } 3328 } 3329 } else { 3330 switch ykind { 3331 case reflect.Int: 3332 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.int(iy)) } 3333 case reflect.Int8: 3334 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.int8(iy)) } 3335 case reflect.Int16: 3336 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.int16(iy)) } 3337 case reflect.Int32: 3338 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.int32(iy)) } 3339 case reflect.Int64: 3340 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.int64(iy)) } 3341 case reflect.Uint: 3342 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uint(iy)) } 3343 case reflect.Uint8: 3344 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uint8(iy)) } 3345 case reflect.Uint16: 3346 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uint16(iy)) } 3347 case reflect.Uint32: 3348 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uint32(iy)) } 3349 case reflect.Uint64: 3350 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uint64(iy)) } 3351 case reflect.Uintptr: 3352 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint)>>fr.uintptr(iy)) } 3353 } 3354 } 3355 case reflect.Uint8: 3356 if kx == kindConst { 3357 x := vx.(uint8) 3358 switch ykind { 3359 case reflect.Int: 3360 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3361 case reflect.Int8: 3362 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3363 case reflect.Int16: 3364 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3365 case reflect.Int32: 3366 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3367 case reflect.Int64: 3368 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3369 case reflect.Uint: 3370 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3371 case reflect.Uint8: 3372 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3373 case reflect.Uint16: 3374 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3375 case reflect.Uint32: 3376 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3377 case reflect.Uint64: 3378 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3379 case reflect.Uintptr: 3380 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3381 } 3382 } else if ky == kindConst { 3383 switch ykind { 3384 case reflect.Int: 3385 y := xtype.Int(vy) 3386 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3387 case reflect.Int8: 3388 y := xtype.Int8(vy) 3389 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3390 case reflect.Int16: 3391 y := xtype.Int16(vy) 3392 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3393 case reflect.Int32: 3394 y := xtype.Int32(vy) 3395 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3396 case reflect.Int64: 3397 y := xtype.Int64(vy) 3398 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3399 case reflect.Uint: 3400 y := xtype.Uint(vy) 3401 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3402 case reflect.Uint8: 3403 y := xtype.Uint8(vy) 3404 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3405 case reflect.Uint16: 3406 y := xtype.Uint16(vy) 3407 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3408 case reflect.Uint32: 3409 y := xtype.Uint32(vy) 3410 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3411 case reflect.Uint64: 3412 y := xtype.Uint64(vy) 3413 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3414 case reflect.Uintptr: 3415 y := xtype.Uintptr(vy) 3416 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>y) } 3417 } 3418 } else { 3419 switch ykind { 3420 case reflect.Int: 3421 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.int(iy)) } 3422 case reflect.Int8: 3423 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.int8(iy)) } 3424 case reflect.Int16: 3425 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.int16(iy)) } 3426 case reflect.Int32: 3427 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.int32(iy)) } 3428 case reflect.Int64: 3429 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.int64(iy)) } 3430 case reflect.Uint: 3431 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uint(iy)) } 3432 case reflect.Uint8: 3433 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uint8(iy)) } 3434 case reflect.Uint16: 3435 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uint16(iy)) } 3436 case reflect.Uint32: 3437 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uint32(iy)) } 3438 case reflect.Uint64: 3439 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uint64(iy)) } 3440 case reflect.Uintptr: 3441 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint8)>>fr.uintptr(iy)) } 3442 } 3443 } 3444 case reflect.Uint16: 3445 if kx == kindConst { 3446 x := vx.(uint16) 3447 switch ykind { 3448 case reflect.Int: 3449 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3450 case reflect.Int8: 3451 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3452 case reflect.Int16: 3453 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3454 case reflect.Int32: 3455 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3456 case reflect.Int64: 3457 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3458 case reflect.Uint: 3459 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3460 case reflect.Uint8: 3461 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3462 case reflect.Uint16: 3463 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3464 case reflect.Uint32: 3465 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3466 case reflect.Uint64: 3467 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3468 case reflect.Uintptr: 3469 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3470 } 3471 } else if ky == kindConst { 3472 switch ykind { 3473 case reflect.Int: 3474 y := xtype.Int(vy) 3475 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3476 case reflect.Int8: 3477 y := xtype.Int8(vy) 3478 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3479 case reflect.Int16: 3480 y := xtype.Int16(vy) 3481 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3482 case reflect.Int32: 3483 y := xtype.Int32(vy) 3484 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3485 case reflect.Int64: 3486 y := xtype.Int64(vy) 3487 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3488 case reflect.Uint: 3489 y := xtype.Uint(vy) 3490 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3491 case reflect.Uint8: 3492 y := xtype.Uint8(vy) 3493 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3494 case reflect.Uint16: 3495 y := xtype.Uint16(vy) 3496 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3497 case reflect.Uint32: 3498 y := xtype.Uint32(vy) 3499 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3500 case reflect.Uint64: 3501 y := xtype.Uint64(vy) 3502 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3503 case reflect.Uintptr: 3504 y := xtype.Uintptr(vy) 3505 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>y) } 3506 } 3507 } else { 3508 switch ykind { 3509 case reflect.Int: 3510 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.int(iy)) } 3511 case reflect.Int8: 3512 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.int8(iy)) } 3513 case reflect.Int16: 3514 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.int16(iy)) } 3515 case reflect.Int32: 3516 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.int32(iy)) } 3517 case reflect.Int64: 3518 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.int64(iy)) } 3519 case reflect.Uint: 3520 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uint(iy)) } 3521 case reflect.Uint8: 3522 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uint8(iy)) } 3523 case reflect.Uint16: 3524 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uint16(iy)) } 3525 case reflect.Uint32: 3526 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uint32(iy)) } 3527 case reflect.Uint64: 3528 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uint64(iy)) } 3529 case reflect.Uintptr: 3530 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint16)>>fr.uintptr(iy)) } 3531 } 3532 } 3533 case reflect.Uint32: 3534 if kx == kindConst { 3535 x := vx.(uint32) 3536 switch ykind { 3537 case reflect.Int: 3538 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3539 case reflect.Int8: 3540 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3541 case reflect.Int16: 3542 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3543 case reflect.Int32: 3544 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3545 case reflect.Int64: 3546 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3547 case reflect.Uint: 3548 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3549 case reflect.Uint8: 3550 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3551 case reflect.Uint16: 3552 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3553 case reflect.Uint32: 3554 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3555 case reflect.Uint64: 3556 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3557 case reflect.Uintptr: 3558 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3559 } 3560 } else if ky == kindConst { 3561 switch ykind { 3562 case reflect.Int: 3563 y := xtype.Int(vy) 3564 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3565 case reflect.Int8: 3566 y := xtype.Int8(vy) 3567 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3568 case reflect.Int16: 3569 y := xtype.Int16(vy) 3570 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3571 case reflect.Int32: 3572 y := xtype.Int32(vy) 3573 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3574 case reflect.Int64: 3575 y := xtype.Int64(vy) 3576 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3577 case reflect.Uint: 3578 y := xtype.Uint(vy) 3579 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3580 case reflect.Uint8: 3581 y := xtype.Uint8(vy) 3582 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3583 case reflect.Uint16: 3584 y := xtype.Uint16(vy) 3585 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3586 case reflect.Uint32: 3587 y := xtype.Uint32(vy) 3588 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3589 case reflect.Uint64: 3590 y := xtype.Uint64(vy) 3591 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3592 case reflect.Uintptr: 3593 y := xtype.Uintptr(vy) 3594 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>y) } 3595 } 3596 } else { 3597 switch ykind { 3598 case reflect.Int: 3599 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.int(iy)) } 3600 case reflect.Int8: 3601 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.int8(iy)) } 3602 case reflect.Int16: 3603 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.int16(iy)) } 3604 case reflect.Int32: 3605 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.int32(iy)) } 3606 case reflect.Int64: 3607 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.int64(iy)) } 3608 case reflect.Uint: 3609 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uint(iy)) } 3610 case reflect.Uint8: 3611 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uint8(iy)) } 3612 case reflect.Uint16: 3613 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uint16(iy)) } 3614 case reflect.Uint32: 3615 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uint32(iy)) } 3616 case reflect.Uint64: 3617 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uint64(iy)) } 3618 case reflect.Uintptr: 3619 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint32)>>fr.uintptr(iy)) } 3620 } 3621 } 3622 case reflect.Uint64: 3623 if kx == kindConst { 3624 x := vx.(uint64) 3625 switch ykind { 3626 case reflect.Int: 3627 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3628 case reflect.Int8: 3629 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3630 case reflect.Int16: 3631 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3632 case reflect.Int32: 3633 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3634 case reflect.Int64: 3635 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3636 case reflect.Uint: 3637 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3638 case reflect.Uint8: 3639 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3640 case reflect.Uint16: 3641 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3642 case reflect.Uint32: 3643 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3644 case reflect.Uint64: 3645 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3646 case reflect.Uintptr: 3647 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3648 } 3649 } else if ky == kindConst { 3650 switch ykind { 3651 case reflect.Int: 3652 y := xtype.Int(vy) 3653 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3654 case reflect.Int8: 3655 y := xtype.Int8(vy) 3656 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3657 case reflect.Int16: 3658 y := xtype.Int16(vy) 3659 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3660 case reflect.Int32: 3661 y := xtype.Int32(vy) 3662 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3663 case reflect.Int64: 3664 y := xtype.Int64(vy) 3665 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3666 case reflect.Uint: 3667 y := xtype.Uint(vy) 3668 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3669 case reflect.Uint8: 3670 y := xtype.Uint8(vy) 3671 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3672 case reflect.Uint16: 3673 y := xtype.Uint16(vy) 3674 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3675 case reflect.Uint32: 3676 y := xtype.Uint32(vy) 3677 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3678 case reflect.Uint64: 3679 y := xtype.Uint64(vy) 3680 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3681 case reflect.Uintptr: 3682 y := xtype.Uintptr(vy) 3683 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>y) } 3684 } 3685 } else { 3686 switch ykind { 3687 case reflect.Int: 3688 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.int(iy)) } 3689 case reflect.Int8: 3690 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.int8(iy)) } 3691 case reflect.Int16: 3692 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.int16(iy)) } 3693 case reflect.Int32: 3694 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.int32(iy)) } 3695 case reflect.Int64: 3696 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.int64(iy)) } 3697 case reflect.Uint: 3698 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uint(iy)) } 3699 case reflect.Uint8: 3700 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uint8(iy)) } 3701 case reflect.Uint16: 3702 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uint16(iy)) } 3703 case reflect.Uint32: 3704 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uint32(iy)) } 3705 case reflect.Uint64: 3706 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uint64(iy)) } 3707 case reflect.Uintptr: 3708 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uint64)>>fr.uintptr(iy)) } 3709 } 3710 } 3711 case reflect.Uintptr: 3712 if kx == kindConst { 3713 x := vx.(uintptr) 3714 switch ykind { 3715 case reflect.Int: 3716 return func(fr *frame) { fr.setReg(ir, x>>fr.int(iy)) } 3717 case reflect.Int8: 3718 return func(fr *frame) { fr.setReg(ir, x>>fr.int8(iy)) } 3719 case reflect.Int16: 3720 return func(fr *frame) { fr.setReg(ir, x>>fr.int16(iy)) } 3721 case reflect.Int32: 3722 return func(fr *frame) { fr.setReg(ir, x>>fr.int32(iy)) } 3723 case reflect.Int64: 3724 return func(fr *frame) { fr.setReg(ir, x>>fr.int64(iy)) } 3725 case reflect.Uint: 3726 return func(fr *frame) { fr.setReg(ir, x>>fr.uint(iy)) } 3727 case reflect.Uint8: 3728 return func(fr *frame) { fr.setReg(ir, x>>fr.uint8(iy)) } 3729 case reflect.Uint16: 3730 return func(fr *frame) { fr.setReg(ir, x>>fr.uint16(iy)) } 3731 case reflect.Uint32: 3732 return func(fr *frame) { fr.setReg(ir, x>>fr.uint32(iy)) } 3733 case reflect.Uint64: 3734 return func(fr *frame) { fr.setReg(ir, x>>fr.uint64(iy)) } 3735 case reflect.Uintptr: 3736 return func(fr *frame) { fr.setReg(ir, x>>fr.uintptr(iy)) } 3737 } 3738 } else if ky == kindConst { 3739 switch ykind { 3740 case reflect.Int: 3741 y := xtype.Int(vy) 3742 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3743 case reflect.Int8: 3744 y := xtype.Int8(vy) 3745 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3746 case reflect.Int16: 3747 y := xtype.Int16(vy) 3748 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3749 case reflect.Int32: 3750 y := xtype.Int32(vy) 3751 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3752 case reflect.Int64: 3753 y := xtype.Int64(vy) 3754 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3755 case reflect.Uint: 3756 y := xtype.Uint(vy) 3757 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3758 case reflect.Uint8: 3759 y := xtype.Uint8(vy) 3760 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3761 case reflect.Uint16: 3762 y := xtype.Uint16(vy) 3763 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3764 case reflect.Uint32: 3765 y := xtype.Uint32(vy) 3766 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3767 case reflect.Uint64: 3768 y := xtype.Uint64(vy) 3769 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3770 case reflect.Uintptr: 3771 y := xtype.Uintptr(vy) 3772 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>y) } 3773 } 3774 } else { 3775 switch ykind { 3776 case reflect.Int: 3777 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.int(iy)) } 3778 case reflect.Int8: 3779 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.int8(iy)) } 3780 case reflect.Int16: 3781 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.int16(iy)) } 3782 case reflect.Int32: 3783 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.int32(iy)) } 3784 case reflect.Int64: 3785 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.int64(iy)) } 3786 case reflect.Uint: 3787 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uint(iy)) } 3788 case reflect.Uint8: 3789 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uint8(iy)) } 3790 case reflect.Uint16: 3791 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uint16(iy)) } 3792 case reflect.Uint32: 3793 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uint32(iy)) } 3794 case reflect.Uint64: 3795 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uint64(iy)) } 3796 case reflect.Uintptr: 3797 return func(fr *frame) { fr.setReg(ir, fr.reg(ix).(uintptr)>>fr.uintptr(iy)) } 3798 } 3799 } 3800 } 3801 } else { 3802 t := xtype.TypeOfType(xtyp) 3803 switch xkind { 3804 case reflect.Int: 3805 if kx == kindConst { 3806 x := xtype.Int(vx) 3807 switch ykind { 3808 case reflect.Int: 3809 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 3810 case reflect.Int8: 3811 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 3812 case reflect.Int16: 3813 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 3814 case reflect.Int32: 3815 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 3816 case reflect.Int64: 3817 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 3818 case reflect.Uint: 3819 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 3820 case reflect.Uint8: 3821 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 3822 case reflect.Uint16: 3823 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 3824 case reflect.Uint32: 3825 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 3826 case reflect.Uint64: 3827 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 3828 case reflect.Uintptr: 3829 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 3830 } 3831 } else if ky == kindConst { 3832 switch ykind { 3833 case reflect.Int: 3834 y := xtype.Int(vy) 3835 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3836 case reflect.Int8: 3837 y := xtype.Int8(vy) 3838 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3839 case reflect.Int16: 3840 y := xtype.Int16(vy) 3841 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3842 case reflect.Int32: 3843 y := xtype.Int32(vy) 3844 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3845 case reflect.Int64: 3846 y := xtype.Int64(vy) 3847 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3848 case reflect.Uint: 3849 y := xtype.Uint(vy) 3850 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3851 case reflect.Uint8: 3852 y := xtype.Uint8(vy) 3853 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3854 case reflect.Uint16: 3855 y := xtype.Uint16(vy) 3856 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3857 case reflect.Uint32: 3858 y := xtype.Uint32(vy) 3859 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3860 case reflect.Uint64: 3861 y := xtype.Uint64(vy) 3862 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3863 case reflect.Uintptr: 3864 y := xtype.Uintptr(vy) 3865 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>y)) } 3866 } 3867 } else { 3868 switch ykind { 3869 case reflect.Int: 3870 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.int(iy))) } 3871 case reflect.Int8: 3872 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.int8(iy))) } 3873 case reflect.Int16: 3874 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.int16(iy))) } 3875 case reflect.Int32: 3876 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.int32(iy))) } 3877 case reflect.Int64: 3878 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.int64(iy))) } 3879 case reflect.Uint: 3880 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uint(iy))) } 3881 case reflect.Uint8: 3882 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uint8(iy))) } 3883 case reflect.Uint16: 3884 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uint16(iy))) } 3885 case reflect.Uint32: 3886 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uint32(iy))) } 3887 case reflect.Uint64: 3888 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uint64(iy))) } 3889 case reflect.Uintptr: 3890 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int(ix)>>fr.uintptr(iy))) } 3891 } 3892 } 3893 case reflect.Int8: 3894 if kx == kindConst { 3895 x := xtype.Int8(vx) 3896 switch ykind { 3897 case reflect.Int: 3898 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 3899 case reflect.Int8: 3900 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 3901 case reflect.Int16: 3902 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 3903 case reflect.Int32: 3904 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 3905 case reflect.Int64: 3906 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 3907 case reflect.Uint: 3908 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 3909 case reflect.Uint8: 3910 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 3911 case reflect.Uint16: 3912 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 3913 case reflect.Uint32: 3914 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 3915 case reflect.Uint64: 3916 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 3917 case reflect.Uintptr: 3918 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 3919 } 3920 } else if ky == kindConst { 3921 switch ykind { 3922 case reflect.Int: 3923 y := xtype.Int(vy) 3924 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3925 case reflect.Int8: 3926 y := xtype.Int8(vy) 3927 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3928 case reflect.Int16: 3929 y := xtype.Int16(vy) 3930 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3931 case reflect.Int32: 3932 y := xtype.Int32(vy) 3933 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3934 case reflect.Int64: 3935 y := xtype.Int64(vy) 3936 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3937 case reflect.Uint: 3938 y := xtype.Uint(vy) 3939 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3940 case reflect.Uint8: 3941 y := xtype.Uint8(vy) 3942 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3943 case reflect.Uint16: 3944 y := xtype.Uint16(vy) 3945 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3946 case reflect.Uint32: 3947 y := xtype.Uint32(vy) 3948 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3949 case reflect.Uint64: 3950 y := xtype.Uint64(vy) 3951 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3952 case reflect.Uintptr: 3953 y := xtype.Uintptr(vy) 3954 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>y)) } 3955 } 3956 } else { 3957 switch ykind { 3958 case reflect.Int: 3959 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.int(iy))) } 3960 case reflect.Int8: 3961 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.int8(iy))) } 3962 case reflect.Int16: 3963 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.int16(iy))) } 3964 case reflect.Int32: 3965 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.int32(iy))) } 3966 case reflect.Int64: 3967 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.int64(iy))) } 3968 case reflect.Uint: 3969 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uint(iy))) } 3970 case reflect.Uint8: 3971 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uint8(iy))) } 3972 case reflect.Uint16: 3973 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uint16(iy))) } 3974 case reflect.Uint32: 3975 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uint32(iy))) } 3976 case reflect.Uint64: 3977 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uint64(iy))) } 3978 case reflect.Uintptr: 3979 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int8(ix)>>fr.uintptr(iy))) } 3980 } 3981 } 3982 case reflect.Int16: 3983 if kx == kindConst { 3984 x := xtype.Int16(vx) 3985 switch ykind { 3986 case reflect.Int: 3987 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 3988 case reflect.Int8: 3989 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 3990 case reflect.Int16: 3991 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 3992 case reflect.Int32: 3993 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 3994 case reflect.Int64: 3995 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 3996 case reflect.Uint: 3997 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 3998 case reflect.Uint8: 3999 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4000 case reflect.Uint16: 4001 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4002 case reflect.Uint32: 4003 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4004 case reflect.Uint64: 4005 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4006 case reflect.Uintptr: 4007 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4008 } 4009 } else if ky == kindConst { 4010 switch ykind { 4011 case reflect.Int: 4012 y := xtype.Int(vy) 4013 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4014 case reflect.Int8: 4015 y := xtype.Int8(vy) 4016 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4017 case reflect.Int16: 4018 y := xtype.Int16(vy) 4019 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4020 case reflect.Int32: 4021 y := xtype.Int32(vy) 4022 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4023 case reflect.Int64: 4024 y := xtype.Int64(vy) 4025 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4026 case reflect.Uint: 4027 y := xtype.Uint(vy) 4028 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4029 case reflect.Uint8: 4030 y := xtype.Uint8(vy) 4031 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4032 case reflect.Uint16: 4033 y := xtype.Uint16(vy) 4034 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4035 case reflect.Uint32: 4036 y := xtype.Uint32(vy) 4037 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4038 case reflect.Uint64: 4039 y := xtype.Uint64(vy) 4040 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4041 case reflect.Uintptr: 4042 y := xtype.Uintptr(vy) 4043 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>y)) } 4044 } 4045 } else { 4046 switch ykind { 4047 case reflect.Int: 4048 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.int(iy))) } 4049 case reflect.Int8: 4050 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.int8(iy))) } 4051 case reflect.Int16: 4052 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.int16(iy))) } 4053 case reflect.Int32: 4054 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.int32(iy))) } 4055 case reflect.Int64: 4056 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.int64(iy))) } 4057 case reflect.Uint: 4058 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uint(iy))) } 4059 case reflect.Uint8: 4060 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uint8(iy))) } 4061 case reflect.Uint16: 4062 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uint16(iy))) } 4063 case reflect.Uint32: 4064 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uint32(iy))) } 4065 case reflect.Uint64: 4066 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uint64(iy))) } 4067 case reflect.Uintptr: 4068 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int16(ix)>>fr.uintptr(iy))) } 4069 } 4070 } 4071 case reflect.Int32: 4072 if kx == kindConst { 4073 x := xtype.Int32(vx) 4074 switch ykind { 4075 case reflect.Int: 4076 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4077 case reflect.Int8: 4078 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4079 case reflect.Int16: 4080 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4081 case reflect.Int32: 4082 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4083 case reflect.Int64: 4084 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4085 case reflect.Uint: 4086 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4087 case reflect.Uint8: 4088 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4089 case reflect.Uint16: 4090 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4091 case reflect.Uint32: 4092 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4093 case reflect.Uint64: 4094 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4095 case reflect.Uintptr: 4096 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4097 } 4098 } else if ky == kindConst { 4099 switch ykind { 4100 case reflect.Int: 4101 y := xtype.Int(vy) 4102 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4103 case reflect.Int8: 4104 y := xtype.Int8(vy) 4105 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4106 case reflect.Int16: 4107 y := xtype.Int16(vy) 4108 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4109 case reflect.Int32: 4110 y := xtype.Int32(vy) 4111 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4112 case reflect.Int64: 4113 y := xtype.Int64(vy) 4114 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4115 case reflect.Uint: 4116 y := xtype.Uint(vy) 4117 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4118 case reflect.Uint8: 4119 y := xtype.Uint8(vy) 4120 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4121 case reflect.Uint16: 4122 y := xtype.Uint16(vy) 4123 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4124 case reflect.Uint32: 4125 y := xtype.Uint32(vy) 4126 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4127 case reflect.Uint64: 4128 y := xtype.Uint64(vy) 4129 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4130 case reflect.Uintptr: 4131 y := xtype.Uintptr(vy) 4132 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>y)) } 4133 } 4134 } else { 4135 switch ykind { 4136 case reflect.Int: 4137 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.int(iy))) } 4138 case reflect.Int8: 4139 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.int8(iy))) } 4140 case reflect.Int16: 4141 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.int16(iy))) } 4142 case reflect.Int32: 4143 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.int32(iy))) } 4144 case reflect.Int64: 4145 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.int64(iy))) } 4146 case reflect.Uint: 4147 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uint(iy))) } 4148 case reflect.Uint8: 4149 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uint8(iy))) } 4150 case reflect.Uint16: 4151 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uint16(iy))) } 4152 case reflect.Uint32: 4153 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uint32(iy))) } 4154 case reflect.Uint64: 4155 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uint64(iy))) } 4156 case reflect.Uintptr: 4157 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int32(ix)>>fr.uintptr(iy))) } 4158 } 4159 } 4160 case reflect.Int64: 4161 if kx == kindConst { 4162 x := xtype.Int64(vx) 4163 switch ykind { 4164 case reflect.Int: 4165 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4166 case reflect.Int8: 4167 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4168 case reflect.Int16: 4169 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4170 case reflect.Int32: 4171 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4172 case reflect.Int64: 4173 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4174 case reflect.Uint: 4175 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4176 case reflect.Uint8: 4177 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4178 case reflect.Uint16: 4179 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4180 case reflect.Uint32: 4181 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4182 case reflect.Uint64: 4183 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4184 case reflect.Uintptr: 4185 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4186 } 4187 } else if ky == kindConst { 4188 switch ykind { 4189 case reflect.Int: 4190 y := xtype.Int(vy) 4191 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4192 case reflect.Int8: 4193 y := xtype.Int8(vy) 4194 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4195 case reflect.Int16: 4196 y := xtype.Int16(vy) 4197 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4198 case reflect.Int32: 4199 y := xtype.Int32(vy) 4200 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4201 case reflect.Int64: 4202 y := xtype.Int64(vy) 4203 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4204 case reflect.Uint: 4205 y := xtype.Uint(vy) 4206 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4207 case reflect.Uint8: 4208 y := xtype.Uint8(vy) 4209 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4210 case reflect.Uint16: 4211 y := xtype.Uint16(vy) 4212 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4213 case reflect.Uint32: 4214 y := xtype.Uint32(vy) 4215 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4216 case reflect.Uint64: 4217 y := xtype.Uint64(vy) 4218 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4219 case reflect.Uintptr: 4220 y := xtype.Uintptr(vy) 4221 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>y)) } 4222 } 4223 } else { 4224 switch ykind { 4225 case reflect.Int: 4226 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.int(iy))) } 4227 case reflect.Int8: 4228 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.int8(iy))) } 4229 case reflect.Int16: 4230 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.int16(iy))) } 4231 case reflect.Int32: 4232 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.int32(iy))) } 4233 case reflect.Int64: 4234 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.int64(iy))) } 4235 case reflect.Uint: 4236 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uint(iy))) } 4237 case reflect.Uint8: 4238 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uint8(iy))) } 4239 case reflect.Uint16: 4240 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uint16(iy))) } 4241 case reflect.Uint32: 4242 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uint32(iy))) } 4243 case reflect.Uint64: 4244 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uint64(iy))) } 4245 case reflect.Uintptr: 4246 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.int64(ix)>>fr.uintptr(iy))) } 4247 } 4248 } 4249 case reflect.Uint: 4250 if kx == kindConst { 4251 x := xtype.Uint(vx) 4252 switch ykind { 4253 case reflect.Int: 4254 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4255 case reflect.Int8: 4256 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4257 case reflect.Int16: 4258 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4259 case reflect.Int32: 4260 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4261 case reflect.Int64: 4262 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4263 case reflect.Uint: 4264 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4265 case reflect.Uint8: 4266 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4267 case reflect.Uint16: 4268 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4269 case reflect.Uint32: 4270 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4271 case reflect.Uint64: 4272 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4273 case reflect.Uintptr: 4274 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4275 } 4276 } else if ky == kindConst { 4277 switch ykind { 4278 case reflect.Int: 4279 y := xtype.Int(vy) 4280 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4281 case reflect.Int8: 4282 y := xtype.Int8(vy) 4283 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4284 case reflect.Int16: 4285 y := xtype.Int16(vy) 4286 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4287 case reflect.Int32: 4288 y := xtype.Int32(vy) 4289 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4290 case reflect.Int64: 4291 y := xtype.Int64(vy) 4292 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4293 case reflect.Uint: 4294 y := xtype.Uint(vy) 4295 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4296 case reflect.Uint8: 4297 y := xtype.Uint8(vy) 4298 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4299 case reflect.Uint16: 4300 y := xtype.Uint16(vy) 4301 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4302 case reflect.Uint32: 4303 y := xtype.Uint32(vy) 4304 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4305 case reflect.Uint64: 4306 y := xtype.Uint64(vy) 4307 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4308 case reflect.Uintptr: 4309 y := xtype.Uintptr(vy) 4310 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>y)) } 4311 } 4312 } else { 4313 switch ykind { 4314 case reflect.Int: 4315 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.int(iy))) } 4316 case reflect.Int8: 4317 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.int8(iy))) } 4318 case reflect.Int16: 4319 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.int16(iy))) } 4320 case reflect.Int32: 4321 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.int32(iy))) } 4322 case reflect.Int64: 4323 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.int64(iy))) } 4324 case reflect.Uint: 4325 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uint(iy))) } 4326 case reflect.Uint8: 4327 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uint8(iy))) } 4328 case reflect.Uint16: 4329 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uint16(iy))) } 4330 case reflect.Uint32: 4331 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uint32(iy))) } 4332 case reflect.Uint64: 4333 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uint64(iy))) } 4334 case reflect.Uintptr: 4335 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint(ix)>>fr.uintptr(iy))) } 4336 } 4337 } 4338 case reflect.Uint8: 4339 if kx == kindConst { 4340 x := xtype.Uint8(vx) 4341 switch ykind { 4342 case reflect.Int: 4343 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4344 case reflect.Int8: 4345 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4346 case reflect.Int16: 4347 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4348 case reflect.Int32: 4349 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4350 case reflect.Int64: 4351 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4352 case reflect.Uint: 4353 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4354 case reflect.Uint8: 4355 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4356 case reflect.Uint16: 4357 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4358 case reflect.Uint32: 4359 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4360 case reflect.Uint64: 4361 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4362 case reflect.Uintptr: 4363 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4364 } 4365 } else if ky == kindConst { 4366 switch ykind { 4367 case reflect.Int: 4368 y := xtype.Int(vy) 4369 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4370 case reflect.Int8: 4371 y := xtype.Int8(vy) 4372 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4373 case reflect.Int16: 4374 y := xtype.Int16(vy) 4375 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4376 case reflect.Int32: 4377 y := xtype.Int32(vy) 4378 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4379 case reflect.Int64: 4380 y := xtype.Int64(vy) 4381 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4382 case reflect.Uint: 4383 y := xtype.Uint(vy) 4384 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4385 case reflect.Uint8: 4386 y := xtype.Uint8(vy) 4387 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4388 case reflect.Uint16: 4389 y := xtype.Uint16(vy) 4390 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4391 case reflect.Uint32: 4392 y := xtype.Uint32(vy) 4393 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4394 case reflect.Uint64: 4395 y := xtype.Uint64(vy) 4396 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4397 case reflect.Uintptr: 4398 y := xtype.Uintptr(vy) 4399 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>y)) } 4400 } 4401 } else { 4402 switch ykind { 4403 case reflect.Int: 4404 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.int(iy))) } 4405 case reflect.Int8: 4406 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.int8(iy))) } 4407 case reflect.Int16: 4408 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.int16(iy))) } 4409 case reflect.Int32: 4410 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.int32(iy))) } 4411 case reflect.Int64: 4412 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.int64(iy))) } 4413 case reflect.Uint: 4414 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uint(iy))) } 4415 case reflect.Uint8: 4416 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uint8(iy))) } 4417 case reflect.Uint16: 4418 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uint16(iy))) } 4419 case reflect.Uint32: 4420 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uint32(iy))) } 4421 case reflect.Uint64: 4422 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uint64(iy))) } 4423 case reflect.Uintptr: 4424 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint8(ix)>>fr.uintptr(iy))) } 4425 } 4426 } 4427 case reflect.Uint16: 4428 if kx == kindConst { 4429 x := xtype.Uint16(vx) 4430 switch ykind { 4431 case reflect.Int: 4432 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4433 case reflect.Int8: 4434 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4435 case reflect.Int16: 4436 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4437 case reflect.Int32: 4438 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4439 case reflect.Int64: 4440 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4441 case reflect.Uint: 4442 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4443 case reflect.Uint8: 4444 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4445 case reflect.Uint16: 4446 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4447 case reflect.Uint32: 4448 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4449 case reflect.Uint64: 4450 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4451 case reflect.Uintptr: 4452 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4453 } 4454 } else if ky == kindConst { 4455 switch ykind { 4456 case reflect.Int: 4457 y := xtype.Int(vy) 4458 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4459 case reflect.Int8: 4460 y := xtype.Int8(vy) 4461 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4462 case reflect.Int16: 4463 y := xtype.Int16(vy) 4464 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4465 case reflect.Int32: 4466 y := xtype.Int32(vy) 4467 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4468 case reflect.Int64: 4469 y := xtype.Int64(vy) 4470 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4471 case reflect.Uint: 4472 y := xtype.Uint(vy) 4473 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4474 case reflect.Uint8: 4475 y := xtype.Uint8(vy) 4476 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4477 case reflect.Uint16: 4478 y := xtype.Uint16(vy) 4479 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4480 case reflect.Uint32: 4481 y := xtype.Uint32(vy) 4482 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4483 case reflect.Uint64: 4484 y := xtype.Uint64(vy) 4485 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4486 case reflect.Uintptr: 4487 y := xtype.Uintptr(vy) 4488 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>y)) } 4489 } 4490 } else { 4491 switch ykind { 4492 case reflect.Int: 4493 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.int(iy))) } 4494 case reflect.Int8: 4495 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.int8(iy))) } 4496 case reflect.Int16: 4497 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.int16(iy))) } 4498 case reflect.Int32: 4499 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.int32(iy))) } 4500 case reflect.Int64: 4501 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.int64(iy))) } 4502 case reflect.Uint: 4503 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uint(iy))) } 4504 case reflect.Uint8: 4505 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uint8(iy))) } 4506 case reflect.Uint16: 4507 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uint16(iy))) } 4508 case reflect.Uint32: 4509 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uint32(iy))) } 4510 case reflect.Uint64: 4511 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uint64(iy))) } 4512 case reflect.Uintptr: 4513 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint16(ix)>>fr.uintptr(iy))) } 4514 } 4515 } 4516 case reflect.Uint32: 4517 if kx == kindConst { 4518 x := xtype.Uint32(vx) 4519 switch ykind { 4520 case reflect.Int: 4521 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4522 case reflect.Int8: 4523 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4524 case reflect.Int16: 4525 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4526 case reflect.Int32: 4527 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4528 case reflect.Int64: 4529 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4530 case reflect.Uint: 4531 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4532 case reflect.Uint8: 4533 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4534 case reflect.Uint16: 4535 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4536 case reflect.Uint32: 4537 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4538 case reflect.Uint64: 4539 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4540 case reflect.Uintptr: 4541 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4542 } 4543 } else if ky == kindConst { 4544 switch ykind { 4545 case reflect.Int: 4546 y := xtype.Int(vy) 4547 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4548 case reflect.Int8: 4549 y := xtype.Int8(vy) 4550 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4551 case reflect.Int16: 4552 y := xtype.Int16(vy) 4553 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4554 case reflect.Int32: 4555 y := xtype.Int32(vy) 4556 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4557 case reflect.Int64: 4558 y := xtype.Int64(vy) 4559 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4560 case reflect.Uint: 4561 y := xtype.Uint(vy) 4562 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4563 case reflect.Uint8: 4564 y := xtype.Uint8(vy) 4565 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4566 case reflect.Uint16: 4567 y := xtype.Uint16(vy) 4568 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4569 case reflect.Uint32: 4570 y := xtype.Uint32(vy) 4571 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4572 case reflect.Uint64: 4573 y := xtype.Uint64(vy) 4574 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4575 case reflect.Uintptr: 4576 y := xtype.Uintptr(vy) 4577 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>y)) } 4578 } 4579 } else { 4580 switch ykind { 4581 case reflect.Int: 4582 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.int(iy))) } 4583 case reflect.Int8: 4584 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.int8(iy))) } 4585 case reflect.Int16: 4586 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.int16(iy))) } 4587 case reflect.Int32: 4588 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.int32(iy))) } 4589 case reflect.Int64: 4590 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.int64(iy))) } 4591 case reflect.Uint: 4592 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uint(iy))) } 4593 case reflect.Uint8: 4594 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uint8(iy))) } 4595 case reflect.Uint16: 4596 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uint16(iy))) } 4597 case reflect.Uint32: 4598 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uint32(iy))) } 4599 case reflect.Uint64: 4600 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uint64(iy))) } 4601 case reflect.Uintptr: 4602 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint32(ix)>>fr.uintptr(iy))) } 4603 } 4604 } 4605 case reflect.Uint64: 4606 if kx == kindConst { 4607 x := xtype.Uint64(vx) 4608 switch ykind { 4609 case reflect.Int: 4610 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4611 case reflect.Int8: 4612 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4613 case reflect.Int16: 4614 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4615 case reflect.Int32: 4616 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4617 case reflect.Int64: 4618 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4619 case reflect.Uint: 4620 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4621 case reflect.Uint8: 4622 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4623 case reflect.Uint16: 4624 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4625 case reflect.Uint32: 4626 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4627 case reflect.Uint64: 4628 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4629 case reflect.Uintptr: 4630 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4631 } 4632 } else if ky == kindConst { 4633 switch ykind { 4634 case reflect.Int: 4635 y := xtype.Int(vy) 4636 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4637 case reflect.Int8: 4638 y := xtype.Int8(vy) 4639 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4640 case reflect.Int16: 4641 y := xtype.Int16(vy) 4642 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4643 case reflect.Int32: 4644 y := xtype.Int32(vy) 4645 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4646 case reflect.Int64: 4647 y := xtype.Int64(vy) 4648 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4649 case reflect.Uint: 4650 y := xtype.Uint(vy) 4651 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4652 case reflect.Uint8: 4653 y := xtype.Uint8(vy) 4654 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4655 case reflect.Uint16: 4656 y := xtype.Uint16(vy) 4657 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4658 case reflect.Uint32: 4659 y := xtype.Uint32(vy) 4660 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4661 case reflect.Uint64: 4662 y := xtype.Uint64(vy) 4663 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4664 case reflect.Uintptr: 4665 y := xtype.Uintptr(vy) 4666 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>y)) } 4667 } 4668 } else { 4669 switch ykind { 4670 case reflect.Int: 4671 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.int(iy))) } 4672 case reflect.Int8: 4673 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.int8(iy))) } 4674 case reflect.Int16: 4675 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.int16(iy))) } 4676 case reflect.Int32: 4677 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.int32(iy))) } 4678 case reflect.Int64: 4679 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.int64(iy))) } 4680 case reflect.Uint: 4681 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uint(iy))) } 4682 case reflect.Uint8: 4683 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uint8(iy))) } 4684 case reflect.Uint16: 4685 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uint16(iy))) } 4686 case reflect.Uint32: 4687 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uint32(iy))) } 4688 case reflect.Uint64: 4689 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uint64(iy))) } 4690 case reflect.Uintptr: 4691 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uint64(ix)>>fr.uintptr(iy))) } 4692 } 4693 } 4694 case reflect.Uintptr: 4695 if kx == kindConst { 4696 x := xtype.Uintptr(vx) 4697 switch ykind { 4698 case reflect.Int: 4699 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int(iy))) } 4700 case reflect.Int8: 4701 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int8(iy))) } 4702 case reflect.Int16: 4703 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int16(iy))) } 4704 case reflect.Int32: 4705 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int32(iy))) } 4706 case reflect.Int64: 4707 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.int64(iy))) } 4708 case reflect.Uint: 4709 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint(iy))) } 4710 case reflect.Uint8: 4711 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint8(iy))) } 4712 case reflect.Uint16: 4713 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint16(iy))) } 4714 case reflect.Uint32: 4715 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint32(iy))) } 4716 case reflect.Uint64: 4717 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uint64(iy))) } 4718 case reflect.Uintptr: 4719 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, x>>fr.uintptr(iy))) } 4720 } 4721 } else if ky == kindConst { 4722 switch ykind { 4723 case reflect.Int: 4724 y := xtype.Int(vy) 4725 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4726 case reflect.Int8: 4727 y := xtype.Int8(vy) 4728 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4729 case reflect.Int16: 4730 y := xtype.Int16(vy) 4731 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4732 case reflect.Int32: 4733 y := xtype.Int32(vy) 4734 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4735 case reflect.Int64: 4736 y := xtype.Int64(vy) 4737 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4738 case reflect.Uint: 4739 y := xtype.Uint(vy) 4740 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4741 case reflect.Uint8: 4742 y := xtype.Uint8(vy) 4743 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4744 case reflect.Uint16: 4745 y := xtype.Uint16(vy) 4746 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4747 case reflect.Uint32: 4748 y := xtype.Uint32(vy) 4749 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4750 case reflect.Uint64: 4751 y := xtype.Uint64(vy) 4752 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4753 case reflect.Uintptr: 4754 y := xtype.Uintptr(vy) 4755 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>y)) } 4756 } 4757 } else { 4758 switch ykind { 4759 case reflect.Int: 4760 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.int(iy))) } 4761 case reflect.Int8: 4762 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.int8(iy))) } 4763 case reflect.Int16: 4764 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.int16(iy))) } 4765 case reflect.Int32: 4766 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.int32(iy))) } 4767 case reflect.Int64: 4768 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.int64(iy))) } 4769 case reflect.Uint: 4770 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uint(iy))) } 4771 case reflect.Uint8: 4772 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uint8(iy))) } 4773 case reflect.Uint16: 4774 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uint16(iy))) } 4775 case reflect.Uint32: 4776 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uint32(iy))) } 4777 case reflect.Uint64: 4778 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uint64(iy))) } 4779 case reflect.Uintptr: 4780 return func(fr *frame) { fr.setReg(ir, xtype.Make(t, fr.uintptr(ix)>>fr.uintptr(iy))) } 4781 } 4782 } 4783 } 4784 } 4785 panic("unreachable") 4786 }