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

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 517 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 NACL_DISALLOW_COPY_AND_ASSIGN( 528 NACL_DISALLOW_COPY_AND_ASSIGN(
529 STC_cccc110pudw0nnnnddddcccciiiiiiii_case_0); 529 STC_cccc110pudw0nnnnddddcccciiiiiiii_case_0);
530 }; 530 };
531 531
532 // STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0: 532 // STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0:
533 // 533 //
534 // {None: 32, 534 // {None: 32,
535 // Pc: 15, 535 // Pc: 15,
536 // Rn: Rn(19:16), 536 // Rn: Rn(19:16),
537 // W: W(21), 537 // W: W(21),
538 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
538 // base: Rn, 539 // base: Rn,
539 // baseline: StoreRegisterList, 540 // baseline: StoreRegisterList,
540 // cond: cond(31:28), 541 // cond: cond(31:28),
541 // constraints: , 542 // constraints: ,
542 // defs: {Rn 543 // defs: {Rn
543 // if wback 544 // if wback
544 // else None}, 545 // else None},
545 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 546 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
546 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0, 547 // generated_baseline: STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0,
547 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr, 548 // pattern: cccc100000w0nnnnrrrrrrrrrrrrrrrr,
548 // register_list: register_list(15:0), 549 // register_list: register_list(15:0),
549 // registers: RegisterList(register_list), 550 // registers: RegisterList(register_list),
550 // rule: STMDA_STMED, 551 // rule: STMDA_STMED,
551 // safety: [Rn == 552 // safety: [Rn ==
552 // Pc || 553 // Pc ||
553 // NumGPRs(registers) < 554 // NumGPRs(registers) <
554 // 1 => UNPREDICTABLE, 555 // 1 => UNPREDICTABLE,
555 // wback && 556 // wback &&
556 // Contains(registers, Rn) && 557 // Contains(registers, Rn) &&
557 // Rn != 558 // Rn !=
558 // SmallestGPR(registers) => UNKNOWN], 559 // SmallestGPR(registers) => UNKNOWN],
559 // small_imm_base_wb: true, 560 // small_imm_base_wb: wback,
560 // true: true,
561 // uses: Union({Rn}, registers), 561 // uses: Union({Rn}, registers),
562 // wback: W(21)=1} 562 // wback: W(21)=1}
563 class STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0 563 class STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0
564 : public ClassDecoder { 564 : public ClassDecoder {
565 public: 565 public:
566 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0() 566 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0()
567 : ClassDecoder() {} 567 : ClassDecoder() {}
568 virtual Register base_address_register(Instruction i) const; 568 virtual Register base_address_register(Instruction i) const;
569 virtual RegisterList defs(Instruction inst) const; 569 virtual RegisterList defs(Instruction inst) const;
570 virtual SafetyLevel safety(Instruction i) const; 570 virtual SafetyLevel safety(Instruction i) const;
571 virtual bool base_address_register_writeback_small_immediate( 571 virtual bool base_address_register_writeback_small_immediate(
572 Instruction i) const; 572 Instruction i) const;
573 virtual RegisterList uses(Instruction i) const; 573 virtual RegisterList uses(Instruction i) const;
574 private: 574 private:
575 NACL_DISALLOW_COPY_AND_ASSIGN( 575 NACL_DISALLOW_COPY_AND_ASSIGN(
576 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0); 576 STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_0);
577 }; 577 };
578 578
579 // STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0: 579 // STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0:
580 // 580 //
581 // {None: 32, 581 // {None: 32,
582 // Pc: 15, 582 // Pc: 15,
583 // Rn: Rn(19:16), 583 // Rn: Rn(19:16),
584 // W: W(21), 584 // W: W(21),
585 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
585 // base: Rn, 586 // base: Rn,
586 // baseline: StoreRegisterList, 587 // baseline: StoreRegisterList,
587 // cond: cond(31:28), 588 // cond: cond(31:28),
588 // constraints: , 589 // constraints: ,
589 // defs: {Rn 590 // defs: {Rn
590 // if wback 591 // if wback
591 // else None}, 592 // else None},
592 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 593 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
593 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0, 594 // generated_baseline: STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0,
594 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr, 595 // pattern: cccc100100w0nnnnrrrrrrrrrrrrrrrr,
595 // register_list: register_list(15:0), 596 // register_list: register_list(15:0),
596 // registers: RegisterList(register_list), 597 // registers: RegisterList(register_list),
597 // rule: STMDB_STMFD, 598 // rule: STMDB_STMFD,
598 // safety: [Rn == 599 // safety: [Rn ==
599 // Pc || 600 // Pc ||
600 // NumGPRs(registers) < 601 // NumGPRs(registers) <
601 // 1 => UNPREDICTABLE, 602 // 1 => UNPREDICTABLE,
602 // wback && 603 // wback &&
603 // Contains(registers, Rn) && 604 // Contains(registers, Rn) &&
604 // Rn != 605 // Rn !=
605 // SmallestGPR(registers) => UNKNOWN], 606 // SmallestGPR(registers) => UNKNOWN],
606 // small_imm_base_wb: true, 607 // small_imm_base_wb: wback,
607 // true: true,
608 // uses: Union({Rn}, registers), 608 // uses: Union({Rn}, registers),
609 // wback: W(21)=1} 609 // wback: W(21)=1}
610 class STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0 610 class STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0
611 : public ClassDecoder { 611 : public ClassDecoder {
612 public: 612 public:
613 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0() 613 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0()
614 : ClassDecoder() {} 614 : ClassDecoder() {}
615 virtual Register base_address_register(Instruction i) const; 615 virtual Register base_address_register(Instruction i) const;
616 virtual RegisterList defs(Instruction inst) const; 616 virtual RegisterList defs(Instruction inst) const;
617 virtual SafetyLevel safety(Instruction i) const; 617 virtual SafetyLevel safety(Instruction i) const;
618 virtual bool base_address_register_writeback_small_immediate( 618 virtual bool base_address_register_writeback_small_immediate(
619 Instruction i) const; 619 Instruction i) const;
620 virtual RegisterList uses(Instruction i) const; 620 virtual RegisterList uses(Instruction i) const;
621 private: 621 private:
622 NACL_DISALLOW_COPY_AND_ASSIGN( 622 NACL_DISALLOW_COPY_AND_ASSIGN(
623 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0); 623 STMDB_STMFD_cccc100100w0nnnnrrrrrrrrrrrrrrrr_case_0);
624 }; 624 };
625 625
626 // STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0: 626 // STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0:
627 // 627 //
628 // {None: 32, 628 // {None: 32,
629 // Pc: 15, 629 // Pc: 15,
630 // Rn: Rn(19:16), 630 // Rn: Rn(19:16),
631 // W: W(21), 631 // W: W(21),
632 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
632 // base: Rn, 633 // base: Rn,
633 // baseline: StoreRegisterList, 634 // baseline: StoreRegisterList,
634 // cond: cond(31:28), 635 // cond: cond(31:28),
635 // constraints: , 636 // constraints: ,
636 // defs: {Rn 637 // defs: {Rn
637 // if wback 638 // if wback
638 // else None}, 639 // else None},
639 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 640 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
640 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0, 641 // generated_baseline: STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0,
641 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr, 642 // pattern: cccc100110w0nnnnrrrrrrrrrrrrrrrr,
642 // register_list: register_list(15:0), 643 // register_list: register_list(15:0),
643 // registers: RegisterList(register_list), 644 // registers: RegisterList(register_list),
644 // rule: STMIB_STMFA, 645 // rule: STMIB_STMFA,
645 // safety: [Rn == 646 // safety: [Rn ==
646 // Pc || 647 // Pc ||
647 // NumGPRs(registers) < 648 // NumGPRs(registers) <
648 // 1 => UNPREDICTABLE, 649 // 1 => UNPREDICTABLE,
649 // wback && 650 // wback &&
650 // Contains(registers, Rn) && 651 // Contains(registers, Rn) &&
651 // Rn != 652 // Rn !=
652 // SmallestGPR(registers) => UNKNOWN], 653 // SmallestGPR(registers) => UNKNOWN],
653 // small_imm_base_wb: true, 654 // small_imm_base_wb: wback,
654 // true: true,
655 // uses: Union({Rn}, registers), 655 // uses: Union({Rn}, registers),
656 // wback: W(21)=1} 656 // wback: W(21)=1}
657 class STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0 657 class STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0
658 : public ClassDecoder { 658 : public ClassDecoder {
659 public: 659 public:
660 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0() 660 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0()
661 : ClassDecoder() {} 661 : ClassDecoder() {}
662 virtual Register base_address_register(Instruction i) const; 662 virtual Register base_address_register(Instruction i) const;
663 virtual RegisterList defs(Instruction inst) const; 663 virtual RegisterList defs(Instruction inst) const;
664 virtual SafetyLevel safety(Instruction i) const; 664 virtual SafetyLevel safety(Instruction i) const;
665 virtual bool base_address_register_writeback_small_immediate( 665 virtual bool base_address_register_writeback_small_immediate(
666 Instruction i) const; 666 Instruction i) const;
667 virtual RegisterList uses(Instruction i) const; 667 virtual RegisterList uses(Instruction i) const;
668 private: 668 private:
669 NACL_DISALLOW_COPY_AND_ASSIGN( 669 NACL_DISALLOW_COPY_AND_ASSIGN(
670 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0); 670 STMIB_STMFA_cccc100110w0nnnnrrrrrrrrrrrrrrrr_case_0);
671 }; 671 };
672 672
673 // STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0: 673 // STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0:
674 // 674 //
675 // {None: 32, 675 // {None: 32,
676 // Pc: 15, 676 // Pc: 15,
677 // Rn: Rn(19:16), 677 // Rn: Rn(19:16),
678 // W: W(21), 678 // W: W(21),
679 // actual: Actual_STMDA_STMED_cccc100000w0nnnnrrrrrrrrrrrrrrrr_case_1,
679 // base: Rn, 680 // base: Rn,
680 // baseline: StoreRegisterList, 681 // baseline: StoreRegisterList,
681 // cond: cond(31:28), 682 // cond: cond(31:28),
682 // constraints: , 683 // constraints: ,
683 // defs: {Rn 684 // defs: {Rn
684 // if wback 685 // if wback
685 // else None}, 686 // else None},
686 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)], 687 // fields: [cond(31:28), W(21), Rn(19:16), register_list(15:0)],
687 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_ 0, 688 // generated_baseline: STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_ 0,
688 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr, 689 // pattern: cccc100010w0nnnnrrrrrrrrrrrrrrrr,
689 // register_list: register_list(15:0), 690 // register_list: register_list(15:0),
690 // registers: RegisterList(register_list), 691 // registers: RegisterList(register_list),
691 // rule: STM_STMIA_STMEA, 692 // rule: STM_STMIA_STMEA,
692 // safety: [Rn == 693 // safety: [Rn ==
693 // Pc || 694 // Pc ||
694 // NumGPRs(registers) < 695 // NumGPRs(registers) <
695 // 1 => UNPREDICTABLE, 696 // 1 => UNPREDICTABLE,
696 // wback && 697 // wback &&
697 // Contains(registers, Rn) && 698 // Contains(registers, Rn) &&
698 // Rn != 699 // Rn !=
699 // SmallestGPR(registers) => UNKNOWN], 700 // SmallestGPR(registers) => UNKNOWN],
700 // small_imm_base_wb: true, 701 // small_imm_base_wb: wback,
701 // true: true,
702 // uses: Union({Rn}, registers), 702 // uses: Union({Rn}, registers),
703 // wback: W(21)=1} 703 // wback: W(21)=1}
704 class STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0 704 class STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0
705 : public ClassDecoder { 705 : public ClassDecoder {
706 public: 706 public:
707 STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0() 707 STM_STMIA_STMEA_cccc100010w0nnnnrrrrrrrrrrrrrrrr_case_0()
708 : ClassDecoder() {} 708 : ClassDecoder() {}
709 virtual Register base_address_register(Instruction i) const; 709 virtual Register base_address_register(Instruction i) const;
710 virtual RegisterList defs(Instruction inst) const; 710 virtual RegisterList defs(Instruction inst) const;
711 virtual SafetyLevel safety(Instruction i) const; 711 virtual SafetyLevel safety(Instruction i) const;
(...skipping 5647 matching lines...) Expand 10 before | Expand all | Expand 10 after
6359 virtual SafetyLevel safety(Instruction i) const; 6359 virtual SafetyLevel safety(Instruction i) const;
6360 virtual RegisterList uses(Instruction i) const; 6360 virtual RegisterList uses(Instruction i) const;
6361 private: 6361 private:
6362 NACL_DISALLOW_COPY_AND_ASSIGN( 6362 NACL_DISALLOW_COPY_AND_ASSIGN(
6363 VHSUB_1111001u0dssnnnndddd0010nqm0mmmm_case_0); 6363 VHSUB_1111001u0dssnnnndddd0010nqm0mmmm_case_0);
6364 }; 6364 };
6365 6365
6366 } // namespace nacl_arm_test 6366 } // namespace nacl_arm_test
6367 6367
6368 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_ H_ 6368 #endif // NATIVE_CLIENT_SRC_TRUSTED_VALIDATOR_ARM_GEN_ARM32_DECODE_BASELINES_2_ H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698