Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(247)

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode_named.cc

Issue 10459058: Define a baseline and testing patterns for ARM load_store_word_byte table. (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The Native Client Authors. All rights reserved. 2 * Copyright 2012 The Native Client Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can 3 * Use of this source code is governed by a BSD-style license that can
4 * be found in the LICENSE file. 4 * be found in the LICENSE file.
5 */ 5 */
6 6
7 // DO NOT EDIT: GENERATED CODE 7 // DO NOT EDIT: GENERATED CODE
8 8
9 #ifndef NACL_TRUSTED_BUT_NOT_TCB 9 #ifndef NACL_TRUSTED_BUT_NOT_TCB
10 #error This file is not meant for use in the TCB 10 #error This file is not meant for use in the TCB
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
499 return Store3RegisterOp_Strh_Rule_208_A1_P412_instance_; 499 return Store3RegisterOp_Strh_Rule_208_A1_P412_instance_;
500 500
501 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ && 501 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ &&
502 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ && 502 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ &&
503 true) 503 true)
504 return Load3RegisterOp_Ldrh_Rule_76_A1_P156_instance_; 504 return Load3RegisterOp_Ldrh_Rule_76_A1_P156_instance_;
505 505
506 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ && 506 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ &&
507 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ && 507 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ &&
508 true) 508 true)
509 return Store2RegisterImmediateOp_Strh_Rule_207_A1_P410_instance_; 509 return Store2RegisterImm8Op_Strh_Rule_207_A1_P410_instance_;
510 510
511 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ && 511 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ &&
512 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 512 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
513 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */) 513 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
514 return Load2RegisterImmediateOp_Ldrh_Rule_74_A1_P152_instance_; 514 return Load2RegisterImm8Op_Ldrh_Rule_74_A1_P152_instance_;
515 515
516 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ && 516 if ((insn.Bits() & 0x00000060) == 0x00000020 /* op2(6:5) == 01 */ &&
517 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 517 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
518 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) 518 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
519 return Load2RegisterImmediateOp_Ldrh_Rule_75_A1_P154_instance_; 519 return Load2RegisterImm8Op_Ldrh_Rule_75_A1_P154_instance_;
520 520
521 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 521 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
522 (insn.Bits() & 0x00500000) == 0x00000000 /* op1(24:20) == xx0x0 */ && 522 (insn.Bits() & 0x00500000) == 0x00000000 /* op1(24:20) == xx0x0 */ &&
523 true) 523 true)
524 return Load3RegisterDoubleOp_Ldrd_Rule_68_A1_P140_instance_; 524 return Load3RegisterDoubleOp_Ldrd_Rule_68_A1_P140_instance_;
525 525
526 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 526 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
527 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ && 527 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ &&
528 true) 528 true)
529 return Load3RegisterOp_Ldrsb_Rule_80_A1_P164_instance_; 529 return Load3RegisterOp_Ldrsb_Rule_80_A1_P164_instance_;
530 530
531 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 531 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
532 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ && 532 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ &&
533 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */) 533 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
534 return Load2RegisterImmediateDoubleOp_Ldrd_Rule_66_A1_P136_instance_; 534 return Load2RegisterImm8DoubleOp_Ldrd_Rule_66_A1_P136_instance_;
535 535
536 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 536 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
537 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ && 537 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ &&
538 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) 538 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
539 return Load2RegisterImmediateDoubleOp_Ldrd_Rule_67_A1_P138_instance_; 539 return Load2RegisterImm8DoubleOp_Ldrd_Rule_67_A1_P138_instance_;
540 540
541 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 541 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
542 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 542 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
543 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */) 543 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
544 return Load2RegisterImmediateOp_Ldrsb_Rule_78_A1_P160_instance_; 544 return Load2RegisterImm8Op_Ldrsb_Rule_78_A1_P160_instance_;
545 545
546 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ && 546 if ((insn.Bits() & 0x00000060) == 0x00000040 /* op2(6:5) == 10 */ &&
547 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 547 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
548 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) 548 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
549 return Load2RegisterImmediateOp_ldrsb_Rule_79_A1_162_instance_; 549 return Load2RegisterImm8Op_ldrsb_Rule_79_A1_162_instance_;
550 550
551 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ && 551 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ &&
552 (insn.Bits() & 0x00500000) == 0x00000000 /* op1(24:20) == xx0x0 */ && 552 (insn.Bits() & 0x00500000) == 0x00000000 /* op1(24:20) == xx0x0 */ &&
553 true) 553 true)
554 return Store3RegisterDoubleOp_Strd_Rule_201_A1_P398_instance_; 554 return Store3RegisterDoubleOp_Strd_Rule_201_A1_P398_instance_;
555 555
556 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ && 556 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ &&
557 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ && 557 (insn.Bits() & 0x00500000) == 0x00100000 /* op1(24:20) == xx0x1 */ &&
558 true) 558 true)
559 return Load3RegisterOp_Ldrsh_Rule_84_A1_P172_instance_; 559 return Load3RegisterOp_Ldrsh_Rule_84_A1_P172_instance_;
560 560
561 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ && 561 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ &&
562 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ && 562 (insn.Bits() & 0x00500000) == 0x00400000 /* op1(24:20) == xx1x0 */ &&
563 true) 563 true)
564 return Store2RegisterImmediateDoubleOp_Strd_Rule_200_A1_P396_instance_; 564 return Store2RegisterImm8DoubleOp_Strd_Rule_200_A1_P396_instance_;
565 565
566 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ && 566 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ &&
567 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 567 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
568 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */) 568 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
569 return Load2RegisterImmediateOp_Ldrsh_Rule_82_A1_P168_instance_; 569 return Load2RegisterImm8Op_Ldrsh_Rule_82_A1_P168_instance_;
570 570
571 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ && 571 if ((insn.Bits() & 0x00000060) == 0x00000060 /* op2(6:5) == 11 */ &&
572 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ && 572 (insn.Bits() & 0x00500000) == 0x00500000 /* op1(24:20) == xx1x1 */ &&
573 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */) 573 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
574 return Load2RegisterImmediateOp_Ldrsh_Rule_83_A1_P170_instance_; 574 return Load2RegisterImm8Op_Ldrsh_Rule_83_A1_P170_instance_;
575 575
576 // Catch any attempt to fall through... 576 // Catch any attempt to fall through...
577 fprintf(stderr, "TABLE IS INCOMPLETE: extra_load_store could not parse %08X", 577 fprintf(stderr, "TABLE IS INCOMPLETE: extra_load_store could not parse %08X",
578 insn.Bits()); 578 insn.Bits());
579 return Forbidden_None_instance_; 579 return Forbidden_None_instance_;
580 } 580 }
581 581
582 582
583 /* 583 /*
584 * Implementation of table half_mult. 584 * Implementation of table half_mult.
(...skipping 30 matching lines...) Expand all
615 615
616 616
617 /* 617 /*
618 * Implementation of table load_store_word_byte. 618 * Implementation of table load_store_word_byte.
619 * Specified by: ('See Section A5.3',) 619 * Specified by: ('See Section A5.3',)
620 */ 620 */
621 const NamedClassDecoder& NamedArm32DecoderState::decode_load_store_word_byte( 621 const NamedClassDecoder& NamedArm32DecoderState::decode_load_store_word_byte(
622 const nacl_arm_dec::Instruction insn) const { 622 const nacl_arm_dec::Instruction insn) const {
623 UNREFERENCED_PARAMETER(insn); 623 UNREFERENCED_PARAMETER(insn);
624 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 624 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
625 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && 625 (insn.Bits() & 0x01700000) == 0x00000000 /* op1(24:20) == 0x000 */ &&
626 true &&
626 true) 627 true)
627 return StoreImmediate_None_instance_; 628 return Store2RegisterImm12Op_Str_Rule_194_A1_P384_instance_;
628 629
629 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 630 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
630 (insn.Bits() & 0x01300000) == 0x00100000 /* op1(24:20) == 0xx01 */ && 631 (insn.Bits() & 0x01700000) == 0x00100000 /* op1(24:20) == 0x001 */ &&
631 true) 632 true &&
632 return LoadImmediate_None_instance_; 633 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
634 return Load2RegisterImm12Op_Ldr_Rule_58_A1_P120_instance_;
633 635
634 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 636 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
635 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && 637 (insn.Bits() & 0x01700000) == 0x00100000 /* op1(24:20) == 0x001 */ &&
636 true) 638 true &&
637 return StoreImmediate_None_instance_; 639 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
640 return Load2RegisterImm12Op_Ldr_Rule_59_A1_P122_instance_;
638 641
639 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 642 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
640 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && 643 (insn.Bits() & 0x01700000) == 0x00400000 /* op1(24:20) == 0x100 */ &&
644 true &&
641 true) 645 true)
642 return LoadImmediate_None_instance_; 646 return Store2RegisterImm12Op_Strb_Rule_197_A1_P390_instance_;
647
648 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
649 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
650 true &&
651 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
652 return Load2RegisterImm12Op_Ldrb_Rule_62_A1_P128_instance_;
653
654 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
655 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
656 true &&
657 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
658 return Load2RegisterImm12Op_Ldrb_Rule_63_A1_P130_instance_;
659
660 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
661 (insn.Bits() & 0x01500000) == 0x01000000 /* op1(24:20) == 1x0x0 */ &&
662 true &&
663 true)
664 return Store2RegisterImm12Op_Str_Rule_194_A1_P384_instance_;
665
666 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
667 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
668 true &&
669 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
670 return Load2RegisterImm12Op_Ldr_Rule_58_A1_P120_instance_;
671
672 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
673 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
674 true &&
675 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
676 return Load2RegisterImm12Op_Ldr_Rule_59_A1_P122_instance_;
677
678 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
679 (insn.Bits() & 0x01500000) == 0x01400000 /* op1(24:20) == 1x1x0 */ &&
680 true &&
681 true)
682 return Store2RegisterImm12Op_Strb_Rule_197_A1_P390_instance_;
683
684 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
685 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
686 true &&
687 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
688 return Load2RegisterImm12Op_Ldrb_Rule_62_A1_P128_instance_;
689
690 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
691 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
692 true &&
693 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
694 return Load2RegisterImm12Op_Ldrb_Rule_63_A1_P130_instance_;
643 695
644 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 696 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
645 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && 697 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ &&
698 true &&
646 true) 699 true)
647 return Forbidden_None_instance_; 700 return Forbidden_None_instance_;
648 701
649 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 702 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
703 (insn.Bits() & 0x01700000) == 0x00000000 /* op1(24:20) == 0x000 */ &&
704 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
705 true)
706 return Store3RegisterImm5Op_Str_Rule_195_A1_P386_instance_;
707
708 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
709 (insn.Bits() & 0x01700000) == 0x00400000 /* op1(24:20) == 0x100 */ &&
710 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
711 true)
712 return Store3RegisterImm5Op_Strb_Rule_198_A1_P392_instance_;
713
714 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
650 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ && 715 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
651 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 716 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
652 return LoadRegister_None_instance_; 717 true)
718 return Load3RegisterImm5Op_Ldrb_Rule_64_A1_P132_instance_;
653 719
654 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 720 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
655 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ && 721 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ &&
656 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 722 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
657 return LoadRegister_None_instance_; 723 true)
724 return Load3RegisterImm5Op_Ldr_Rule_60_A1_P124_instance_;
658 725
659 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 726 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
660 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && 727 (insn.Bits() & 0x01500000) == 0x01000000 /* op1(24:20) == 1x0x0 */ &&
661 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 728 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
662 return StoreRegister_None_instance_; 729 true)
730 return Store3RegisterImm5Op_Str_Rule_195_A1_P386_instance_;
663 731
664 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 732 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
665 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && 733 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
666 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 734 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
667 return StoreRegister_None_instance_; 735 true)
736 return Load3RegisterImm5Op_Ldr_Rule_60_A1_P124_instance_;
668 737
669 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 738 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
670 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && 739 (insn.Bits() & 0x01500000) == 0x01400000 /* op1(24:20) == 1x1x0 */ &&
671 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 740 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
672 return LoadRegister_None_instance_; 741 true)
742 return Store3RegisterImm5Op_Strb_Rule_198_A1_P392_instance_;
743
744 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
745 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
746 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
747 true)
748 return Load3RegisterImm5Op_Ldrb_Rule_64_A1_P132_instance_;
673 749
674 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 750 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
675 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && 751 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ &&
676 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 752 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
753 true)
677 return Forbidden_None_instance_; 754 return Forbidden_None_instance_;
678 755
679 // Catch any attempt to fall through... 756 // Catch any attempt to fall through...
680 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08 X", 757 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08 X",
681 insn.Bits()); 758 insn.Bits());
682 return Forbidden_None_instance_; 759 return Forbidden_None_instance_;
683 } 760 }
684 761
685 762
686 /* 763 /*
(...skipping 1336 matching lines...) Expand 10 before | Expand all | Expand 10 after
2023 decode_named(const nacl_arm_dec::Instruction insn) const { 2100 decode_named(const nacl_arm_dec::Instruction insn) const {
2024 return decode_ARMv7(insn); 2101 return decode_ARMv7(insn);
2025 } 2102 }
2026 2103
2027 const nacl_arm_dec::ClassDecoder& NamedArm32DecoderState:: 2104 const nacl_arm_dec::ClassDecoder& NamedArm32DecoderState::
2028 decode(const nacl_arm_dec::Instruction insn) const { 2105 decode(const nacl_arm_dec::Instruction insn) const {
2029 return decode_named(insn).named_decoder(); 2106 return decode_named(insn).named_decoder();
2030 } 2107 }
2031 2108
2032 } // namespace nacl_arm_test 2109 } // namespace nacl_arm_test
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode.cc ('k') | src/trusted/validator_arm/gen/arm32_decode_named_classes.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698