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

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 19 matching lines...) Expand all
604 604
605 605
606 /* 606 /*
607 * Implementation of table load_store_word_byte. 607 * Implementation of table load_store_word_byte.
608 * Specified by: ('See Section A5.3',) 608 * Specified by: ('See Section A5.3',)
609 */ 609 */
610 const NamedClassDecoder& NamedArm32DecoderState::decode_load_store_word_byte( 610 const NamedClassDecoder& NamedArm32DecoderState::decode_load_store_word_byte(
611 const nacl_arm_dec::Instruction insn) const { 611 const nacl_arm_dec::Instruction insn) const {
612 UNREFERENCED_PARAMETER(insn); 612 UNREFERENCED_PARAMETER(insn);
613 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 613 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
614 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && 614 (insn.Bits() & 0x01700000) == 0x00000000 /* op1(24:20) == 0x000 */ &&
615 true &&
615 true) 616 true)
616 return StoreImmediate_None_instance_; 617 return Store2RegisterImm12Op_Str_Rule_194_A1_P384_instance_;
617 618
618 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 619 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
619 (insn.Bits() & 0x01300000) == 0x00100000 /* op1(24:20) == 0xx01 */ && 620 (insn.Bits() & 0x01700000) == 0x00100000 /* op1(24:20) == 0x001 */ &&
620 true) 621 true &&
621 return LoadImmediate_None_instance_; 622 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
623 return Load2RegisterImm12Op_Ldr_Rule_58_A1_P120_instance_;
622 624
623 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 625 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
624 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && 626 (insn.Bits() & 0x01700000) == 0x00100000 /* op1(24:20) == 0x001 */ &&
625 true) 627 true &&
626 return StoreImmediate_None_instance_; 628 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
629 return Load2RegisterImm12Op_Ldr_Rule_59_A1_P122_instance_;
627 630
628 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 631 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
629 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && 632 (insn.Bits() & 0x01700000) == 0x00400000 /* op1(24:20) == 0x100 */ &&
633 true &&
630 true) 634 true)
631 return LoadImmediate_None_instance_; 635 return Store2RegisterImm12Op_Strb_Rule_197_A1_P390_instance_;
636
637 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
638 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
639 true &&
640 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
641 return Load2RegisterImm12Op_Ldrb_Rule_62_A1_P128_instance_;
642
643 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
644 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
645 true &&
646 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
647 return Load2RegisterImm12Op_Ldrb_Rule_63_A1_P130_instance_;
648
649 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
650 (insn.Bits() & 0x01500000) == 0x01000000 /* op1(24:20) == 1x0x0 */ &&
651 true &&
652 true)
653 return Store2RegisterImm12Op_Str_Rule_194_A1_P384_instance_;
654
655 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
656 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
657 true &&
658 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
659 return Load2RegisterImm12Op_Ldr_Rule_58_A1_P120_instance_;
660
661 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
662 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
663 true &&
664 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
665 return Load2RegisterImm12Op_Ldr_Rule_59_A1_P122_instance_;
666
667 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
668 (insn.Bits() & 0x01500000) == 0x01400000 /* op1(24:20) == 1x1x0 */ &&
669 true &&
670 true)
671 return Store2RegisterImm12Op_Strb_Rule_197_A1_P390_instance_;
672
673 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
674 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
675 true &&
676 (insn.Bits() & 0x000F0000) != 0x000F0000 /* Rn(19:16) == ~1111 */)
677 return Load2RegisterImm12Op_Ldrb_Rule_62_A1_P128_instance_;
678
679 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
680 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
681 true &&
682 (insn.Bits() & 0x000F0000) == 0x000F0000 /* Rn(19:16) == 1111 */)
683 return Load2RegisterImm12Op_Ldrb_Rule_63_A1_P130_instance_;
632 684
633 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ && 685 if ((insn.Bits() & 0x02000000) == 0x00000000 /* A(25:25) == 0 */ &&
634 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && 686 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ &&
687 true &&
635 true) 688 true)
636 return Forbidden_None_instance_; 689 return Forbidden_None_instance_;
637 690
638 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 691 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
692 (insn.Bits() & 0x01700000) == 0x00000000 /* op1(24:20) == 0x000 */ &&
693 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
694 true)
695 return Store3RegisterImm5Op_Str_Rule_195_A1_P386_instance_;
696
697 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
698 (insn.Bits() & 0x01700000) == 0x00400000 /* op1(24:20) == 0x100 */ &&
699 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
700 true)
701 return Store3RegisterImm5Op_Strb_Rule_198_A1_P392_instance_;
702
703 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
639 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ && 704 (insn.Bits() & 0x01700000) == 0x00500000 /* op1(24:20) == 0x101 */ &&
640 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 705 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
641 return LoadRegister_None_instance_; 706 true)
707 return Load3RegisterImm5Op_Ldrb_Rule_64_A1_P132_instance_;
642 708
643 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 709 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
644 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ && 710 (insn.Bits() & 0x00700000) == 0x00100000 /* op1(24:20) == xx001 */ &&
645 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 711 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
646 return LoadRegister_None_instance_; 712 true)
713 return Load3RegisterImm5Op_Ldr_Rule_60_A1_P124_instance_;
647 714
648 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 715 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
649 (insn.Bits() & 0x01300000) == 0x00000000 /* op1(24:20) == 0xx00 */ && 716 (insn.Bits() & 0x01500000) == 0x01000000 /* op1(24:20) == 1x0x0 */ &&
650 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 717 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
651 return StoreRegister_None_instance_; 718 true)
719 return Store3RegisterImm5Op_Str_Rule_195_A1_P386_instance_;
652 720
653 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 721 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
654 (insn.Bits() & 0x01100000) == 0x01000000 /* op1(24:20) == 1xxx0 */ && 722 (insn.Bits() & 0x01500000) == 0x01100000 /* op1(24:20) == 1x0x1 */ &&
655 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 723 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
656 return StoreRegister_None_instance_; 724 true)
725 return Load3RegisterImm5Op_Ldr_Rule_60_A1_P124_instance_;
657 726
658 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 727 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
659 (insn.Bits() & 0x01100000) == 0x01100000 /* op1(24:20) == 1xxx1 */ && 728 (insn.Bits() & 0x01500000) == 0x01400000 /* op1(24:20) == 1x1x0 */ &&
660 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 729 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
661 return LoadRegister_None_instance_; 730 true)
731 return Store3RegisterImm5Op_Strb_Rule_198_A1_P392_instance_;
732
733 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
734 (insn.Bits() & 0x01500000) == 0x01500000 /* op1(24:20) == 1x1x1 */ &&
735 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
736 true)
737 return Load3RegisterImm5Op_Ldrb_Rule_64_A1_P132_instance_;
662 738
663 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ && 739 if ((insn.Bits() & 0x02000000) == 0x02000000 /* A(25:25) == 1 */ &&
664 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ && 740 (insn.Bits() & 0x01200000) == 0x00200000 /* op1(24:20) == 0xx1x */ &&
665 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */) 741 (insn.Bits() & 0x00000010) == 0x00000000 /* B(4:4) == 0 */ &&
742 true)
666 return Forbidden_None_instance_; 743 return Forbidden_None_instance_;
667 744
668 // Catch any attempt to fall through... 745 // Catch any attempt to fall through...
669 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08 X", 746 fprintf(stderr, "TABLE IS INCOMPLETE: load_store_word_byte could not parse %08 X",
670 insn.Bits()); 747 insn.Bits());
671 return Forbidden_None_instance_; 748 return Forbidden_None_instance_;
672 } 749 }
673 750
674 751
675 /* 752 /*
(...skipping 1242 matching lines...) Expand 10 before | Expand all | Expand 10 after
1918 decode_named(const nacl_arm_dec::Instruction insn) const { 1995 decode_named(const nacl_arm_dec::Instruction insn) const {
1919 return decode_ARMv7(insn); 1996 return decode_ARMv7(insn);
1920 } 1997 }
1921 1998
1922 const nacl_arm_dec::ClassDecoder& NamedArm32DecoderState:: 1999 const nacl_arm_dec::ClassDecoder& NamedArm32DecoderState::
1923 decode(const nacl_arm_dec::Instruction insn) const { 2000 decode(const nacl_arm_dec::Instruction insn) const {
1924 return decode_named(insn).named_decoder(); 2001 return decode_named(insn).named_decoder();
1925 } 2002 }
1926 2003
1927 } // namespace nacl_arm_test 2004 } // namespace nacl_arm_test
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698