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