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

Side by Side Diff: src/trusted/validator_arm/gen/arm32_decode_baselines_2.h

Issue 12223046: Use generated actual decoders for ARM table: (Closed) Base URL: svn://svn.chromium.org/native_client/trunk/src/native_client/
Patch Set: Created 7 years, 10 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 2013 The Native Client Authors. All rights reserved. 2 * Copyright 2013 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 NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_H_ 9 #ifndef NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_H_
10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_H_ 10 #define NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_H_
(...skipping 527 matching lines...) Expand 10 before | Expand all | Expand 10 after
538 NACL_DISALLOW_COPY_AND_ASSIGN( 538 NACL_DISALLOW_COPY_AND_ASSIGN(
539 STC_cccc110pudw0nnnnddddcccciiiiiiii_case_0); 539 STC_cccc110pudw0nnnnddddcccciiiiiiii_case_0);
540 }; 540 };
541 541
542 // STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0: 542 // STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0:
543 // 543 //
544 // {None: 32, 544 // {None: 32,
545 // Pc: 15, 545 // Pc: 15,
546 // Rn: Rn(19:16), 546 // Rn: Rn(19:16),
547 // W: W(21), 547 // W: W(21),
548 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
548 // base: Rn, 549 // base: Rn,
549 // baseline: StoreRegisterList, 550 // baseline: StoreRegisterList,
550 // cond: cond(31:28), 551 // cond: cond(31:28),
551 // constraints: , 552 // constraints: ,
552 // defs: {Rn 553 // defs: {Rn
553 // if wback 554 // if wback
554 // else None}, 555 // else None},
555 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 556 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
556 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, 557 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0,
557 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, 558 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr,
558 // register_list: register_list(15:0), 559 // register_list: register_list(15:0),
559 // registers: RegisterList(register_list), 560 // registers: RegisterList(register_list),
560 // rule: STMDA_STMED, 561 // rule: STMDA_STMED,
561 // safety: [Rn == 562 // safety: [Rn ==
562 // Pc || 563 // Pc ||
563 // NumGPRs(registers) < 564 // NumGPRs(registers) <
564 // 1 => UNPREDICTABLE, 565 // 1 => UNPREDICTABLE,
565 // wback && 566 // wback &&
566 // Contains(registers, Rn) && 567 // Contains(registers, Rn) &&
567 // Rn != 568 // Rn !=
568 // SmallestGPR(registers) => UNKNOWN], 569 // SmallestGPR(registers) => UNKNOWN],
569 // small_imm_base_wb: true, 570 // small_imm_base_wb: wback,
570 // true: true,
571 // uses: Union({Rn}, registers), 571 // uses: Union({Rn}, registers),
572 // wback: W(21)=1} 572 // wback: W(21)=1}
573 class STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0 573 class STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0
574 : public ClassDecoder { 574 : public ClassDecoder {
575 public: 575 public:
576 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0() 576 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0()
577 : ClassDecoder() {} 577 : ClassDecoder() {}
578 virtual Register base_address_register(Instruction i) const; 578 virtual Register base_address_register(Instruction i) const;
579 virtual RegisterList defs(Instruction inst) const; 579 virtual RegisterList defs(Instruction inst) const;
580 virtual SafetyLevel safety(Instruction i) const; 580 virtual SafetyLevel safety(Instruction i) const;
581 virtual bool base_address_register_writeback_small_immediate( 581 virtual bool base_address_register_writeback_small_immediate(
582 Instruction i) const; 582 Instruction i) const;
583 virtual RegisterList uses(Instruction i) const; 583 virtual RegisterList uses(Instruction i) const;
584 private: 584 private:
585 NACL_DISALLOW_COPY_AND_ASSIGN( 585 NACL_DISALLOW_COPY_AND_ASSIGN(
586 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0); 586 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0);
587 }; 587 };
588 588
589 // STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0: 589 // STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0:
590 // 590 //
591 // {None: 32, 591 // {None: 32,
592 // Pc: 15, 592 // Pc: 15,
593 // Rn: Rn(19:16), 593 // Rn: Rn(19:16),
594 // W: W(21), 594 // W: W(21),
595 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
595 // base: Rn, 596 // base: Rn,
596 // baseline: StoreRegisterList, 597 // baseline: StoreRegisterList,
597 // cond: cond(31:28), 598 // cond: cond(31:28),
598 // constraints: , 599 // constraints: ,
599 // defs: {Rn 600 // defs: {Rn
600 // if wback 601 // if wback
601 // else None}, 602 // else None},
602 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 603 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
603 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, 604 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0,
604 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, 605 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr,
605 // register_list: register_list(15:0), 606 // register_list: register_list(15:0),
606 // registers: RegisterList(register_list), 607 // registers: RegisterList(register_list),
607 // rule: STMDB_STMFD, 608 // rule: STMDB_STMFD,
608 // safety: [Rn == 609 // safety: [Rn ==
609 // Pc || 610 // Pc ||
610 // NumGPRs(registers) < 611 // NumGPRs(registers) <
611 // 1 => UNPREDICTABLE, 612 // 1 => UNPREDICTABLE,
612 // wback && 613 // wback &&
613 // Contains(registers, Rn) && 614 // Contains(registers, Rn) &&
614 // Rn != 615 // Rn !=
615 // SmallestGPR(registers) => UNKNOWN], 616 // SmallestGPR(registers) => UNKNOWN],
616 // small_imm_base_wb: true, 617 // small_imm_base_wb: wback,
617 // true: true,
618 // uses: Union({Rn}, registers), 618 // uses: Union({Rn}, registers),
619 // wback: W(21)=1} 619 // wback: W(21)=1}
620 class STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0 620 class STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0
621 : public ClassDecoder { 621 : public ClassDecoder {
622 public: 622 public:
623 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0() 623 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0()
624 : ClassDecoder() {} 624 : ClassDecoder() {}
625 virtual Register base_address_register(Instruction i) const; 625 virtual Register base_address_register(Instruction i) const;
626 virtual RegisterList defs(Instruction inst) const; 626 virtual RegisterList defs(Instruction inst) const;
627 virtual SafetyLevel safety(Instruction i) const; 627 virtual SafetyLevel safety(Instruction i) const;
628 virtual bool base_address_register_writeback_small_immediate( 628 virtual bool base_address_register_writeback_small_immediate(
629 Instruction i) const; 629 Instruction i) const;
630 virtual RegisterList uses(Instruction i) const; 630 virtual RegisterList uses(Instruction i) const;
631 private: 631 private:
632 NACL_DISALLOW_COPY_AND_ASSIGN( 632 NACL_DISALLOW_COPY_AND_ASSIGN(
633 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0); 633 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0);
634 }; 634 };
635 635
636 // STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0: 636 // STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0:
637 // 637 //
638 // {None: 32, 638 // {None: 32,
639 // Pc: 15, 639 // Pc: 15,
640 // Rn: Rn(19:16), 640 // Rn: Rn(19:16),
641 // W: W(21), 641 // W: W(21),
642 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
642 // base: Rn, 643 // base: Rn,
643 // baseline: StoreRegisterList, 644 // baseline: StoreRegisterList,
644 // cond: cond(31:28), 645 // cond: cond(31:28),
645 // constraints: , 646 // constraints: ,
646 // defs: {Rn 647 // defs: {Rn
647 // if wback 648 // if wback
648 // else None}, 649 // else None},
649 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 650 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
650 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, 651 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0,
651 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, 652 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr,
652 // register_list: register_list(15:0), 653 // register_list: register_list(15:0),
653 // registers: RegisterList(register_list), 654 // registers: RegisterList(register_list),
654 // rule: STMIB_STMFA, 655 // rule: STMIB_STMFA,
655 // safety: [Rn == 656 // safety: [Rn ==
656 // Pc || 657 // Pc ||
657 // NumGPRs(registers) < 658 // NumGPRs(registers) <
658 // 1 => UNPREDICTABLE, 659 // 1 => UNPREDICTABLE,
659 // wback && 660 // wback &&
660 // Contains(registers, Rn) && 661 // Contains(registers, Rn) &&
661 // Rn != 662 // Rn !=
662 // SmallestGPR(registers) => UNKNOWN], 663 // SmallestGPR(registers) => UNKNOWN],
663 // small_imm_base_wb: true, 664 // small_imm_base_wb: wback,
664 // true: true,
665 // uses: Union({Rn}, registers), 665 // uses: Union({Rn}, registers),
666 // wback: W(21)=1} 666 // wback: W(21)=1}
667 class STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0 667 class STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0
668 : public ClassDecoder { 668 : public ClassDecoder {
669 public: 669 public:
670 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0() 670 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0()
671 : ClassDecoder() {} 671 : ClassDecoder() {}
672 virtual Register base_address_register(Instruction i) const; 672 virtual Register base_address_register(Instruction i) const;
673 virtual RegisterList defs(Instruction inst) const; 673 virtual RegisterList defs(Instruction inst) const;
674 virtual SafetyLevel safety(Instruction i) const; 674 virtual SafetyLevel safety(Instruction i) const;
675 virtual bool base_address_register_writeback_small_immediate( 675 virtual bool base_address_register_writeback_small_immediate(
676 Instruction i) const; 676 Instruction i) const;
677 virtual RegisterList uses(Instruction i) const; 677 virtual RegisterList uses(Instruction i) const;
678 private: 678 private:
679 NACL_DISALLOW_COPY_AND_ASSIGN( 679 NACL_DISALLOW_COPY_AND_ASSIGN(
680 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0); 680 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0);
681 }; 681 };
682 682
683 // STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0: 683 // STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0:
684 // 684 //
685 // {None: 32, 685 // {None: 32,
686 // Pc: 15, 686 // Pc: 15,
687 // Rn: Rn(19:16), 687 // Rn: Rn(19:16),
688 // W: W(21), 688 // W: W(21),
689 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
689 // base: Rn, 690 // base: Rn,
690 // baseline: StoreRegisterList, 691 // baseline: StoreRegisterList,
691 // cond: cond(31:28), 692 // cond: cond(31:28),
692 // constraints: , 693 // constraints: ,
693 // defs: {Rn 694 // defs: {Rn
694 // if wback 695 // if wback
695 // else None}, 696 // else None},
696 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 697 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
697 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_ 0, 698 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_ 0,
698 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, 699 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr,
699 // register_list: register_list(15:0), 700 // register_list: register_list(15:0),
700 // registers: RegisterList(register_list), 701 // registers: RegisterList(register_list),
701 // rule: STM_STMIA_STMEA, 702 // rule: STM_STMIA_STMEA,
702 // safety: [Rn == 703 // safety: [Rn ==
703 // Pc || 704 // Pc ||
704 // NumGPRs(registers) < 705 // NumGPRs(registers) <
705 // 1 => UNPREDICTABLE, 706 // 1 => UNPREDICTABLE,
706 // wback && 707 // wback &&
707 // Contains(registers, Rn) && 708 // Contains(registers, Rn) &&
708 // Rn != 709 // Rn !=
709 // SmallestGPR(registers) => UNKNOWN], 710 // SmallestGPR(registers) => UNKNOWN],
710 // small_imm_base_wb: true, 711 // small_imm_base_wb: wback,
711 // true: true,
712 // uses: Union({Rn}, registers), 712 // uses: Union({Rn}, registers),
713 // wback: W(21)=1} 713 // wback: W(21)=1}
714 class STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0 714 class STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0
715 : public ClassDecoder { 715 : public ClassDecoder {
716 public: 716 public:
717 STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0() 717 STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0()
718 : ClassDecoder() {} 718 : ClassDecoder() {}
719 virtual Register base_address_register(Instruction i) const; 719 virtual Register base_address_register(Instruction i) const;
720 virtual RegisterList defs(Instruction inst) const; 720 virtual RegisterList defs(Instruction inst) const;
721 virtual SafetyLevel safety(Instruction i) const; 721 virtual SafetyLevel safety(Instruction i) const;
(...skipping 5690 matching lines...) Expand 10 before | Expand all | Expand 10 after
6412 virtual SafetyLevel safety(Instruction i) const; 6412 virtual SafetyLevel safety(Instruction i) const;
6413 virtual RegisterList uses(Instruction i) const; 6413 virtual RegisterList uses(Instruction i) const;
6414 private: 6414 private:
6415 NACL_DISALLOW_COPY_AND_ASSIGN( 6415 NACL_DISALLOW_COPY_AND_ASSIGN(
6416 VHSUB_1111001u0dssnnnndddd0010nqm0mmmm_case_0); 6416 VHSUB_1111001u0dssnnnndddd0010nqm0mmmm_case_0);
6417 }; 6417 };
6418 6418
6419 } // namespace nacl_arm_test 6419 } // namespace nacl_arm_test
6420 6420
6421 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_ H_ 6421 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_ H_
OLDNEW
« no previous file with comments | « src/trusted/validator_arm/gen/arm32_decode_baselines_1.cc ('k') | src/trusted/validator_arm/gen/arm32_decode_baselines_2.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698