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 --- |