decoder.isa (11289:ab19693da8c9) decoder.isa (11320:42ecb523c64a)
1// -*- mode:c++ -*-
2
3// Copyright (c) 2013 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 335 unchanged lines hidden (view full) ---

344
345 0x31: perr({{
346 uint64_t temp = 0;
347 int hi = 7;
348 int lo = 0;
349 for (int i = 0; i < 8; ++i) {
350 uint8_t ra_ub = Ra_uq<hi:lo>;
351 uint8_t rb_ub = Rb_uq<hi:lo>;
1// -*- mode:c++ -*-
2
3// Copyright (c) 2013 ARM Limited
4// All rights reserved
5//
6// The license below extends only to copyright in the software and shall
7// not be construed as granting a license to any other intellectual
8// property including but not limited to intellectual property relating

--- 335 unchanged lines hidden (view full) ---

344
345 0x31: perr({{
346 uint64_t temp = 0;
347 int hi = 7;
348 int lo = 0;
349 for (int i = 0; i < 8; ++i) {
350 uint8_t ra_ub = Ra_uq<hi:lo>;
351 uint8_t rb_ub = Rb_uq<hi:lo>;
352 temp += (ra_ub >= rb_ub) ?
352 temp += (ra_ub >= rb_ub) ?
353 (ra_ub - rb_ub) : (rb_ub - ra_ub);
354 hi += 8;
355 lo += 8;
356 }
357 Rc = temp;
358 }});
359
360 0x32: ctlz({{

--- 12 unchanged lines hidden (view full) ---

373 0x33: cttz({{
374 uint64_t count = 0;
375 uint64_t temp = Rb;
376 if (!(temp<31:0>)) { temp >>= 32; count += 32; }
377 if (!(temp<15:0>)) { temp >>= 16; count += 16; }
378 if (!(temp<7:0>)) { temp >>= 8; count += 8; }
379 if (!(temp<3:0>)) { temp >>= 4; count += 4; }
380 if (!(temp<1:0>)) { temp >>= 2; count += 2; }
353 (ra_ub - rb_ub) : (rb_ub - ra_ub);
354 hi += 8;
355 lo += 8;
356 }
357 Rc = temp;
358 }});
359
360 0x32: ctlz({{

--- 12 unchanged lines hidden (view full) ---

373 0x33: cttz({{
374 uint64_t count = 0;
375 uint64_t temp = Rb;
376 if (!(temp<31:0>)) { temp >>= 32; count += 32; }
377 if (!(temp<15:0>)) { temp >>= 16; count += 16; }
378 if (!(temp<7:0>)) { temp >>= 8; count += 8; }
379 if (!(temp<3:0>)) { temp >>= 4; count += 4; }
380 if (!(temp<1:0>)) { temp >>= 2; count += 2; }
381 if (!(temp<0:0> & ULL(0x1))) {
382 temp >>= 1; count += 1;
381 if (!(temp<0:0> & ULL(0x1))) {
382 temp >>= 1; count += 1;
383 }
384 if (!(temp<0:0> & ULL(0x1))) count += 1;
385 Rc = count;
386 }}, IntAluOp);
387
388
383 }
384 if (!(temp<0:0> & ULL(0x1))) count += 1;
385 Rc = count;
386 }}, IntAluOp);
387
388
389 0x34: unpkbw({{
389 0x34: unpkbw({{
390 Rc = (Rb_uq<7:0>
391 | (Rb_uq<15:8> << 16)
392 | (Rb_uq<23:16> << 32)
393 | (Rb_uq<31:24> << 48));
394 }}, IntAluOp);
395
396 0x35: unpkbl({{
397 Rc = (Rb_uq<7:0> | (Rb_uq<15:8> << 32));

--- 12 unchanged lines hidden (view full) ---

410
411 0x38: minsb8({{
412 uint64_t temp = 0;
413 int hi = 63;
414 int lo = 56;
415 for (int i = 7; i >= 0; --i) {
416 int8_t ra_sb = Ra_uq<hi:lo>;
417 int8_t rb_sb = Rb_uq<hi:lo>;
390 Rc = (Rb_uq<7:0>
391 | (Rb_uq<15:8> << 16)
392 | (Rb_uq<23:16> << 32)
393 | (Rb_uq<31:24> << 48));
394 }}, IntAluOp);
395
396 0x35: unpkbl({{
397 Rc = (Rb_uq<7:0> | (Rb_uq<15:8> << 32));

--- 12 unchanged lines hidden (view full) ---

410
411 0x38: minsb8({{
412 uint64_t temp = 0;
413 int hi = 63;
414 int lo = 56;
415 for (int i = 7; i >= 0; --i) {
416 int8_t ra_sb = Ra_uq<hi:lo>;
417 int8_t rb_sb = Rb_uq<hi:lo>;
418 temp = ((temp << 8)
418 temp = ((temp << 8)
419 | ((ra_sb < rb_sb) ? Ra_uq<hi:lo>
420 : Rb_uq<hi:lo>));
421 hi -= 8;
422 lo -= 8;
423 }
424 Rc = temp;
425 }});
426
427 0x39: minsw4({{
428 uint64_t temp = 0;
429 int hi = 63;
430 int lo = 48;
431 for (int i = 3; i >= 0; --i) {
432 int16_t ra_sw = Ra_uq<hi:lo>;
433 int16_t rb_sw = Rb_uq<hi:lo>;
419 | ((ra_sb < rb_sb) ? Ra_uq<hi:lo>
420 : Rb_uq<hi:lo>));
421 hi -= 8;
422 lo -= 8;
423 }
424 Rc = temp;
425 }});
426
427 0x39: minsw4({{
428 uint64_t temp = 0;
429 int hi = 63;
430 int lo = 48;
431 for (int i = 3; i >= 0; --i) {
432 int16_t ra_sw = Ra_uq<hi:lo>;
433 int16_t rb_sw = Rb_uq<hi:lo>;
434 temp = ((temp << 16)
434 temp = ((temp << 16)
435 | ((ra_sw < rb_sw) ? Ra_uq<hi:lo>
436 : Rb_uq<hi:lo>));
437 hi -= 16;
438 lo -= 16;
439 }
440 Rc = temp;
441 }});
442
443 0x3a: minub8({{
444 uint64_t temp = 0;
445 int hi = 63;
446 int lo = 56;
447 for (int i = 7; i >= 0; --i) {
448 uint8_t ra_ub = Ra_uq<hi:lo>;
449 uint8_t rb_ub = Rb_uq<hi:lo>;
435 | ((ra_sw < rb_sw) ? Ra_uq<hi:lo>
436 : Rb_uq<hi:lo>));
437 hi -= 16;
438 lo -= 16;
439 }
440 Rc = temp;
441 }});
442
443 0x3a: minub8({{
444 uint64_t temp = 0;
445 int hi = 63;
446 int lo = 56;
447 for (int i = 7; i >= 0; --i) {
448 uint8_t ra_ub = Ra_uq<hi:lo>;
449 uint8_t rb_ub = Rb_uq<hi:lo>;
450 temp = ((temp << 8)
450 temp = ((temp << 8)
451 | ((ra_ub < rb_ub) ? Ra_uq<hi:lo>
452 : Rb_uq<hi:lo>));
453 hi -= 8;
454 lo -= 8;
455 }
456 Rc = temp;
457 }});
458
459 0x3b: minuw4({{
460 uint64_t temp = 0;
461 int hi = 63;
462 int lo = 48;
463 for (int i = 3; i >= 0; --i) {
464 uint16_t ra_sw = Ra_uq<hi:lo>;
465 uint16_t rb_sw = Rb_uq<hi:lo>;
451 | ((ra_ub < rb_ub) ? Ra_uq<hi:lo>
452 : Rb_uq<hi:lo>));
453 hi -= 8;
454 lo -= 8;
455 }
456 Rc = temp;
457 }});
458
459 0x3b: minuw4({{
460 uint64_t temp = 0;
461 int hi = 63;
462 int lo = 48;
463 for (int i = 3; i >= 0; --i) {
464 uint16_t ra_sw = Ra_uq<hi:lo>;
465 uint16_t rb_sw = Rb_uq<hi:lo>;
466 temp = ((temp << 16)
466 temp = ((temp << 16)
467 | ((ra_sw < rb_sw) ? Ra_uq<hi:lo>
468 : Rb_uq<hi:lo>));
469 hi -= 16;
470 lo -= 16;
471 }
472 Rc = temp;
473 }});
474
475 0x3c: maxub8({{
476 uint64_t temp = 0;
477 int hi = 63;
478 int lo = 56;
479 for (int i = 7; i >= 0; --i) {
480 uint8_t ra_ub = Ra_uq<hi:lo>;
481 uint8_t rb_ub = Rb_uq<hi:lo>;
467 | ((ra_sw < rb_sw) ? Ra_uq<hi:lo>
468 : Rb_uq<hi:lo>));
469 hi -= 16;
470 lo -= 16;
471 }
472 Rc = temp;
473 }});
474
475 0x3c: maxub8({{
476 uint64_t temp = 0;
477 int hi = 63;
478 int lo = 56;
479 for (int i = 7; i >= 0; --i) {
480 uint8_t ra_ub = Ra_uq<hi:lo>;
481 uint8_t rb_ub = Rb_uq<hi:lo>;
482 temp = ((temp << 8)
482 temp = ((temp << 8)
483 | ((ra_ub > rb_ub) ? Ra_uq<hi:lo>
484 : Rb_uq<hi:lo>));
485 hi -= 8;
486 lo -= 8;
487 }
488 Rc = temp;
489 }});
490
491 0x3d: maxuw4({{
492 uint64_t temp = 0;
493 int hi = 63;
494 int lo = 48;
495 for (int i = 3; i >= 0; --i) {
496 uint16_t ra_uw = Ra_uq<hi:lo>;
497 uint16_t rb_uw = Rb_uq<hi:lo>;
483 | ((ra_ub > rb_ub) ? Ra_uq<hi:lo>
484 : Rb_uq<hi:lo>));
485 hi -= 8;
486 lo -= 8;
487 }
488 Rc = temp;
489 }});
490
491 0x3d: maxuw4({{
492 uint64_t temp = 0;
493 int hi = 63;
494 int lo = 48;
495 for (int i = 3; i >= 0; --i) {
496 uint16_t ra_uw = Ra_uq<hi:lo>;
497 uint16_t rb_uw = Rb_uq<hi:lo>;
498 temp = ((temp << 16)
498 temp = ((temp << 16)
499 | ((ra_uw > rb_uw) ? Ra_uq<hi:lo>
500 : Rb_uq<hi:lo>));
501 hi -= 16;
502 lo -= 16;
503 }
504 Rc = temp;
505 }});
506
507 0x3e: maxsb8({{
508 uint64_t temp = 0;
509 int hi = 63;
510 int lo = 56;
511 for (int i = 7; i >= 0; --i) {
512 int8_t ra_sb = Ra_uq<hi:lo>;
513 int8_t rb_sb = Rb_uq<hi:lo>;
499 | ((ra_uw > rb_uw) ? Ra_uq<hi:lo>
500 : Rb_uq<hi:lo>));
501 hi -= 16;
502 lo -= 16;
503 }
504 Rc = temp;
505 }});
506
507 0x3e: maxsb8({{
508 uint64_t temp = 0;
509 int hi = 63;
510 int lo = 56;
511 for (int i = 7; i >= 0; --i) {
512 int8_t ra_sb = Ra_uq<hi:lo>;
513 int8_t rb_sb = Rb_uq<hi:lo>;
514 temp = ((temp << 8)
514 temp = ((temp << 8)
515 | ((ra_sb > rb_sb) ? Ra_uq<hi:lo>
516 : Rb_uq<hi:lo>));
517 hi -= 8;
518 lo -= 8;
519 }
520 Rc = temp;
521 }});
522
523 0x3f: maxsw4({{
524 uint64_t temp = 0;
525 int hi = 63;
526 int lo = 48;
527 for (int i = 3; i >= 0; --i) {
528 int16_t ra_sw = Ra_uq<hi:lo>;
529 int16_t rb_sw = Rb_uq<hi:lo>;
515 | ((ra_sb > rb_sb) ? Ra_uq<hi:lo>
516 : Rb_uq<hi:lo>));
517 hi -= 8;
518 lo -= 8;
519 }
520 Rc = temp;
521 }});
522
523 0x3f: maxsw4({{
524 uint64_t temp = 0;
525 int hi = 63;
526 int lo = 48;
527 for (int i = 3; i >= 0; --i) {
528 int16_t ra_sw = Ra_uq<hi:lo>;
529 int16_t rb_sw = Rb_uq<hi:lo>;
530 temp = ((temp << 16)
530 temp = ((temp << 16)
531 | ((ra_sw > rb_sw) ? Ra_uq<hi:lo>
532 : Rb_uq<hi:lo>));
533 hi -= 16;
534 lo -= 16;
535 }
536 Rc = temp;
537 }});
538

--- 546 unchanged lines hidden ---
531 | ((ra_sw > rb_sw) ? Ra_uq<hi:lo>
532 : Rb_uq<hi:lo>));
533 hi -= 16;
534 lo -= 16;
535 }
536 Rc = temp;
537 }});
538

--- 546 unchanged lines hidden ---