summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Lioncash2015-05-14 11:51:46 -0400
committerGravatar Lioncash2015-05-14 11:51:46 -0400
commitf3c4de4ce4effbc121d7cc96f12ae18ab9d9b043 (patch)
treeb536fcf7df3b3e1da2ef704a4cebf4f3a7ffa9e1 /src
parentdyncom: Remove unused structs (diff)
downloadyuzu-f3c4de4ce4effbc121d7cc96f12ae18ab9d9b043.tar.gz
yuzu-f3c4de4ce4effbc121d7cc96f12ae18ab9d9b043.tar.xz
yuzu-f3c4de4ce4effbc121d7cc96f12ae18ab9d9b043.zip
dyncom: Remove unnecessary typedefs
Diffstat (limited to 'src')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp265
-rw-r--r--src/core/arm/skyeye_common/vfp/vfpinstr.cpp128
2 files changed, 197 insertions, 196 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index aeb1bb929..ebc1b96b9 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -224,10 +224,10 @@ static unsigned int DPO(RotateRightByRegister)(ARMul_State* cpu, unsigned int sh
224 224
225typedef void (*get_addr_fp_t)(ARMul_State *cpu, unsigned int inst, unsigned int &virt_addr, unsigned int rw); 225typedef void (*get_addr_fp_t)(ARMul_State *cpu, unsigned int inst, unsigned int &virt_addr, unsigned int rw);
226 226
227typedef struct _ldst_inst { 227struct ldst_inst {
228 unsigned int inst; 228 unsigned int inst;
229 get_addr_fp_t get_addr; 229 get_addr_fp_t get_addr;
230} ldst_inst; 230};
231#define DEBUG_MSG LOG_DEBUG(Core_ARM11, "inst is %x", inst); CITRA_IGNORE_EXIT(0) 231#define DEBUG_MSG LOG_DEBUG(Core_ARM11, "inst is %x", inst); CITRA_IGNORE_EXIT(0)
232 232
233int CondPassed(ARMul_State* cpu, unsigned int cond); 233int CondPassed(ARMul_State* cpu, unsigned int cond);
@@ -647,247 +647,248 @@ static void LnSWoUB(ScaledRegisterOffset)(ARMul_State* cpu, unsigned int inst, u
647 virt_addr = addr; 647 virt_addr = addr;
648} 648}
649 649
650typedef struct _arm_inst { 650struct arm_inst {
651 unsigned int idx; 651 unsigned int idx;
652 unsigned int cond; 652 unsigned int cond;
653 int br; 653 int br;
654 int load_r15; 654 int load_r15;
655 char component[0]; 655 char component[0];
656} arm_inst; 656};
657 657
658typedef struct generic_arm_inst { 658struct generic_arm_inst {
659 u32 Ra; 659 u32 Ra;
660 u32 Rm; 660 u32 Rm;
661 u32 Rn; 661 u32 Rn;
662 u32 Rd; 662 u32 Rd;
663 u8 op1; 663 u8 op1;
664 u8 op2; 664 u8 op2;
665} generic_arm_inst; 665};
666 666
667typedef struct _adc_inst { 667struct adc_inst {
668 unsigned int I; 668 unsigned int I;
669 unsigned int S; 669 unsigned int S;
670 unsigned int Rn; 670 unsigned int Rn;
671 unsigned int Rd; 671 unsigned int Rd;
672 unsigned int shifter_operand; 672 unsigned int shifter_operand;
673 shtop_fp_t shtop_func; 673 shtop_fp_t shtop_func;
674} adc_inst; 674};
675 675
676typedef struct _add_inst { 676struct add_inst {
677 unsigned int I; 677 unsigned int I;
678 unsigned int S; 678 unsigned int S;
679 unsigned int Rn; 679 unsigned int Rn;
680 unsigned int Rd; 680 unsigned int Rd;
681 unsigned int shifter_operand; 681 unsigned int shifter_operand;
682 shtop_fp_t shtop_func; 682 shtop_fp_t shtop_func;
683} add_inst; 683};
684 684
685typedef struct _orr_inst { 685struct orr_inst {
686 unsigned int I; 686 unsigned int I;
687 unsigned int S; 687 unsigned int S;
688 unsigned int Rn; 688 unsigned int Rn;
689 unsigned int Rd; 689 unsigned int Rd;
690 unsigned int shifter_operand; 690 unsigned int shifter_operand;
691 shtop_fp_t shtop_func; 691 shtop_fp_t shtop_func;
692} orr_inst; 692};
693 693
694typedef struct _and_inst { 694struct and_inst {
695 unsigned int I; 695 unsigned int I;
696 unsigned int S; 696 unsigned int S;
697 unsigned int Rn; 697 unsigned int Rn;
698 unsigned int Rd; 698 unsigned int Rd;
699 unsigned int shifter_operand; 699 unsigned int shifter_operand;
700 shtop_fp_t shtop_func; 700 shtop_fp_t shtop_func;
701} and_inst; 701};
702 702
703typedef struct _eor_inst { 703struct eor_inst {
704 unsigned int I; 704 unsigned int I;
705 unsigned int S; 705 unsigned int S;
706 unsigned int Rn; 706 unsigned int Rn;
707 unsigned int Rd; 707 unsigned int Rd;
708 unsigned int shifter_operand; 708 unsigned int shifter_operand;
709 shtop_fp_t shtop_func; 709 shtop_fp_t shtop_func;
710} eor_inst; 710};
711 711
712typedef struct _bbl_inst { 712struct bbl_inst {
713 unsigned int L; 713 unsigned int L;
714 int signed_immed_24; 714 int signed_immed_24;
715 unsigned int next_addr; 715 unsigned int next_addr;
716 unsigned int jmp_addr; 716 unsigned int jmp_addr;
717} bbl_inst; 717};
718 718
719typedef struct _bx_inst { 719struct bx_inst {
720 unsigned int Rm; 720 unsigned int Rm;
721} bx_inst; 721};
722 722
723typedef struct _blx_inst { 723struct blx_inst {
724 union { 724 union {
725 int32_t signed_immed_24; 725 int32_t signed_immed_24;
726 uint32_t Rm; 726 uint32_t Rm;
727 } val; 727 } val;
728 unsigned int inst; 728 unsigned int inst;
729} blx_inst; 729};
730 730
731typedef struct _clz_inst { 731struct clz_inst {
732 unsigned int Rm; 732 unsigned int Rm;
733 unsigned int Rd; 733 unsigned int Rd;
734} clz_inst; 734};
735 735
736typedef struct _cps_inst { 736struct cps_inst {
737 unsigned int imod0; 737 unsigned int imod0;
738 unsigned int imod1; 738 unsigned int imod1;
739 unsigned int mmod; 739 unsigned int mmod;
740 unsigned int A, I, F; 740 unsigned int A, I, F;
741 unsigned int mode; 741 unsigned int mode;
742} cps_inst; 742};
743 743
744typedef struct _clrex_inst { 744struct clrex_inst {
745} clrex_inst; 745};
746 746
747typedef struct _cpy_inst { 747struct cpy_inst {
748 unsigned int Rm; 748 unsigned int Rm;
749 unsigned int Rd; 749 unsigned int Rd;
750} cpy_inst; 750};
751 751
752typedef struct _bic_inst { 752struct bic_inst {
753 unsigned int I; 753 unsigned int I;
754 unsigned int S; 754 unsigned int S;
755 unsigned int Rn; 755 unsigned int Rn;
756 unsigned int Rd; 756 unsigned int Rd;
757 unsigned int shifter_operand; 757 unsigned int shifter_operand;
758 shtop_fp_t shtop_func; 758 shtop_fp_t shtop_func;
759} bic_inst; 759};
760 760
761typedef struct _sub_inst { 761struct sub_inst {
762 unsigned int I; 762 unsigned int I;
763 unsigned int S; 763 unsigned int S;
764 unsigned int Rn; 764 unsigned int Rn;
765 unsigned int Rd; 765 unsigned int Rd;
766 unsigned int shifter_operand; 766 unsigned int shifter_operand;
767 shtop_fp_t shtop_func; 767 shtop_fp_t shtop_func;
768} sub_inst; 768};
769 769
770typedef struct _tst_inst { 770struct tst_inst {
771 unsigned int I; 771 unsigned int I;
772 unsigned int S; 772 unsigned int S;
773 unsigned int Rn; 773 unsigned int Rn;
774 unsigned int Rd; 774 unsigned int Rd;
775 unsigned int shifter_operand; 775 unsigned int shifter_operand;
776 shtop_fp_t shtop_func; 776 shtop_fp_t shtop_func;
777} tst_inst; 777};
778 778
779typedef struct _cmn_inst { 779struct cmn_inst {
780 unsigned int I; 780 unsigned int I;
781 unsigned int Rn; 781 unsigned int Rn;
782 unsigned int shifter_operand; 782 unsigned int shifter_operand;
783 shtop_fp_t shtop_func; 783 shtop_fp_t shtop_func;
784} cmn_inst; 784};
785 785
786typedef struct _teq_inst { 786struct teq_inst {
787 unsigned int I; 787 unsigned int I;
788 unsigned int Rn; 788 unsigned int Rn;
789 unsigned int shifter_operand; 789 unsigned int shifter_operand;
790 shtop_fp_t shtop_func; 790 shtop_fp_t shtop_func;
791} teq_inst; 791};
792 792
793typedef struct _stm_inst { 793struct stm_inst {
794 unsigned int inst; 794 unsigned int inst;
795} stm_inst; 795};
796 796
797struct bkpt_inst { 797struct bkpt_inst {
798 u32 imm; 798 u32 imm;
799}; 799};
800 800
801typedef struct _stc_inst { 801struct stc_inst {
802} stc_inst; 802};
803 803
804typedef struct _ldc_inst { 804struct ldc_inst {
805} ldc_inst; 805};
806 806
807typedef struct _swi_inst { 807struct swi_inst {
808 unsigned int num; 808 unsigned int num;
809} swi_inst; 809};
810 810
811typedef struct _cmp_inst { 811struct cmp_inst {
812 unsigned int I; 812 unsigned int I;
813 unsigned int Rn; 813 unsigned int Rn;
814 unsigned int shifter_operand; 814 unsigned int shifter_operand;
815 shtop_fp_t shtop_func; 815 shtop_fp_t shtop_func;
816} cmp_inst; 816};
817 817
818typedef struct _mov_inst { 818struct mov_inst {
819 unsigned int I; 819 unsigned int I;
820 unsigned int S; 820 unsigned int S;
821 unsigned int Rd; 821 unsigned int Rd;
822 unsigned int shifter_operand; 822 unsigned int shifter_operand;
823 shtop_fp_t shtop_func; 823 shtop_fp_t shtop_func;
824} mov_inst; 824};
825 825
826typedef struct _mvn_inst { 826struct mvn_inst {
827 unsigned int I; 827 unsigned int I;
828 unsigned int S; 828 unsigned int S;
829 unsigned int Rd; 829 unsigned int Rd;
830 unsigned int shifter_operand; 830 unsigned int shifter_operand;
831 shtop_fp_t shtop_func; 831 shtop_fp_t shtop_func;
832} mvn_inst; 832};
833 833
834typedef struct _rev_inst { 834struct rev_inst {
835 unsigned int Rd; 835 unsigned int Rd;
836 unsigned int Rm; 836 unsigned int Rm;
837 unsigned int op1; 837 unsigned int op1;
838 unsigned int op2; 838 unsigned int op2;
839} rev_inst; 839};
840 840
841typedef struct _rsb_inst { 841struct rsb_inst {
842 unsigned int I; 842 unsigned int I;
843 unsigned int S; 843 unsigned int S;
844 unsigned int Rn; 844 unsigned int Rn;
845 unsigned int Rd; 845 unsigned int Rd;
846 unsigned int shifter_operand; 846 unsigned int shifter_operand;
847 shtop_fp_t shtop_func; 847 shtop_fp_t shtop_func;
848} rsb_inst; 848};
849 849
850typedef struct _rsc_inst { 850struct rsc_inst {
851 unsigned int I; 851 unsigned int I;
852 unsigned int S; 852 unsigned int S;
853 unsigned int Rn; 853 unsigned int Rn;
854 unsigned int Rd; 854 unsigned int Rd;
855 unsigned int shifter_operand; 855 unsigned int shifter_operand;
856 shtop_fp_t shtop_func; 856 shtop_fp_t shtop_func;
857} rsc_inst; 857};
858 858
859typedef struct _sbc_inst { 859struct sbc_inst {
860 unsigned int I; 860 unsigned int I;
861 unsigned int S; 861 unsigned int S;
862 unsigned int Rn; 862 unsigned int Rn;
863 unsigned int Rd; 863 unsigned int Rd;
864 unsigned int shifter_operand; 864 unsigned int shifter_operand;
865 shtop_fp_t shtop_func; 865 shtop_fp_t shtop_func;
866} sbc_inst; 866};
867 867
868typedef struct _mul_inst { 868struct mul_inst {
869 unsigned int S; 869 unsigned int S;
870 unsigned int Rd; 870 unsigned int Rd;
871 unsigned int Rs; 871 unsigned int Rs;
872 unsigned int Rm; 872 unsigned int Rm;
873} mul_inst; 873};
874 874
875typedef struct _smul_inst { 875struct smul_inst {
876 unsigned int Rd; 876 unsigned int Rd;
877 unsigned int Rs; 877 unsigned int Rs;
878 unsigned int Rm; 878 unsigned int Rm;
879 unsigned int x; 879 unsigned int x;
880 unsigned int y; 880 unsigned int y;
881} smul_inst; 881};
882 882
883typedef struct _umull_inst { 883struct umull_inst {
884 unsigned int S; 884 unsigned int S;
885 unsigned int RdHi; 885 unsigned int RdHi;
886 unsigned int RdLo; 886 unsigned int RdLo;
887 unsigned int Rs; 887 unsigned int Rs;
888 unsigned int Rm; 888 unsigned int Rm;
889} umull_inst; 889};
890typedef struct _smlad_inst { 890
891struct smlad_inst {
891 unsigned int m; 892 unsigned int m;
892 unsigned int Rm; 893 unsigned int Rm;
893 unsigned int Rd; 894 unsigned int Rd;
@@ -895,58 +896,58 @@ typedef struct _smlad_inst {
895 unsigned int Rn; 896 unsigned int Rn;
896 unsigned int op1; 897 unsigned int op1;
897 unsigned int op2; 898 unsigned int op2;
898} smlad_inst; 899};
899 900
900typedef struct _smla_inst { 901struct smla_inst {
901 unsigned int x; 902 unsigned int x;
902 unsigned int y; 903 unsigned int y;
903 unsigned int Rm; 904 unsigned int Rm;
904 unsigned int Rd; 905 unsigned int Rd;
905 unsigned int Rs; 906 unsigned int Rs;
906 unsigned int Rn; 907 unsigned int Rn;
907} smla_inst; 908};
908 909
909typedef struct smlalxy_inst { 910struct smlalxy_inst {
910 unsigned int x; 911 unsigned int x;
911 unsigned int y; 912 unsigned int y;
912 unsigned int RdLo; 913 unsigned int RdLo;
913 unsigned int RdHi; 914 unsigned int RdHi;
914 unsigned int Rm; 915 unsigned int Rm;
915 unsigned int Rn; 916 unsigned int Rn;
916} smlalxy_inst; 917};
917 918
918typedef struct ssat_inst { 919struct ssat_inst {
919 unsigned int Rn; 920 unsigned int Rn;
920 unsigned int Rd; 921 unsigned int Rd;
921 unsigned int imm5; 922 unsigned int imm5;
922 unsigned int sat_imm; 923 unsigned int sat_imm;
923 unsigned int shift_type; 924 unsigned int shift_type;
924} ssat_inst; 925};
925 926
926typedef struct umaal_inst { 927struct umaal_inst {
927 unsigned int Rn; 928 unsigned int Rn;
928 unsigned int Rm; 929 unsigned int Rm;
929 unsigned int RdHi; 930 unsigned int RdHi;
930 unsigned int RdLo; 931 unsigned int RdLo;
931} umaal_inst; 932};
932 933
933typedef struct _umlal_inst { 934struct umlal_inst {
934 unsigned int S; 935 unsigned int S;
935 unsigned int Rm; 936 unsigned int Rm;
936 unsigned int Rs; 937 unsigned int Rs;
937 unsigned int RdHi; 938 unsigned int RdHi;
938 unsigned int RdLo; 939 unsigned int RdLo;
939} umlal_inst; 940};
940 941
941typedef struct _smlal_inst { 942struct smlal_inst {
942 unsigned int S; 943 unsigned int S;
943 unsigned int Rm; 944 unsigned int Rm;
944 unsigned int Rs; 945 unsigned int Rs;
945 unsigned int RdHi; 946 unsigned int RdHi;
946 unsigned int RdLo; 947 unsigned int RdLo;
947} smlal_inst; 948};
948 949
949typedef struct smlald_inst { 950struct smlald_inst {
950 unsigned int RdLo; 951 unsigned int RdLo;
951 unsigned int RdHi; 952 unsigned int RdHi;
952 unsigned int Rm; 953 unsigned int Rm;
@@ -954,17 +955,17 @@ typedef struct smlald_inst {
954 unsigned int swap; 955 unsigned int swap;
955 unsigned int op1; 956 unsigned int op1;
956 unsigned int op2; 957 unsigned int op2;
957} smlald_inst; 958};
958 959
959typedef struct _mla_inst { 960struct mla_inst {
960 unsigned int S; 961 unsigned int S;
961 unsigned int Rn; 962 unsigned int Rn;
962 unsigned int Rd; 963 unsigned int Rd;
963 unsigned int Rs; 964 unsigned int Rs;
964 unsigned int Rm; 965 unsigned int Rm;
965} mla_inst; 966};
966 967
967typedef struct _mrc_inst { 968struct mrc_inst {
968 unsigned int opcode_1; 969 unsigned int opcode_1;
969 unsigned int opcode_2; 970 unsigned int opcode_2;
970 unsigned int cp_num; 971 unsigned int cp_num;
@@ -972,9 +973,9 @@ typedef struct _mrc_inst {
972 unsigned int crm; 973 unsigned int crm;
973 unsigned int Rd; 974 unsigned int Rd;
974 unsigned int inst; 975 unsigned int inst;
975} mrc_inst; 976};
976 977
977typedef struct _mcr_inst { 978struct mcr_inst {
978 unsigned int opcode_1; 979 unsigned int opcode_1;
979 unsigned int opcode_2; 980 unsigned int opcode_2;
980 unsigned int cp_num; 981 unsigned int cp_num;
@@ -982,77 +983,77 @@ typedef struct _mcr_inst {
982 unsigned int crm; 983 unsigned int crm;
983 unsigned int Rd; 984 unsigned int Rd;
984 unsigned int inst; 985 unsigned int inst;
985} mcr_inst; 986};
986 987
987typedef struct mcrr_inst { 988struct mcrr_inst {
988 unsigned int opcode_1; 989 unsigned int opcode_1;
989 unsigned int cp_num; 990 unsigned int cp_num;
990 unsigned int crm; 991 unsigned int crm;
991 unsigned int rt; 992 unsigned int rt;
992 unsigned int rt2; 993 unsigned int rt2;
993} mcrr_inst; 994};
994 995
995typedef struct _mrs_inst { 996struct mrs_inst {
996 unsigned int R; 997 unsigned int R;
997 unsigned int Rd; 998 unsigned int Rd;
998} mrs_inst; 999};
999 1000
1000typedef struct _msr_inst { 1001struct msr_inst {
1001 unsigned int field_mask; 1002 unsigned int field_mask;
1002 unsigned int R; 1003 unsigned int R;
1003 unsigned int inst; 1004 unsigned int inst;
1004} msr_inst; 1005};
1005 1006
1006typedef struct _pld_inst { 1007struct pld_inst {
1007} pld_inst; 1008};
1008 1009
1009typedef struct _sxtb_inst { 1010struct sxtb_inst {
1010 unsigned int Rd; 1011 unsigned int Rd;
1011 unsigned int Rm; 1012 unsigned int Rm;
1012 unsigned int rotate; 1013 unsigned int rotate;
1013} sxtb_inst; 1014};
1014 1015
1015typedef struct _sxtab_inst { 1016struct sxtab_inst {
1016 unsigned int Rd; 1017 unsigned int Rd;
1017 unsigned int Rn; 1018 unsigned int Rn;
1018 unsigned int Rm; 1019 unsigned int Rm;
1019 unsigned rotate; 1020 unsigned rotate;
1020} sxtab_inst; 1021};
1021 1022
1022typedef struct _sxtah_inst { 1023struct sxtah_inst {
1023 unsigned int Rd; 1024 unsigned int Rd;
1024 unsigned int Rn; 1025 unsigned int Rn;
1025 unsigned int Rm; 1026 unsigned int Rm;
1026 unsigned int rotate; 1027 unsigned int rotate;
1027} sxtah_inst; 1028};
1028 1029
1029typedef struct _sxth_inst { 1030struct sxth_inst {
1030 unsigned int Rd; 1031 unsigned int Rd;
1031 unsigned int Rm; 1032 unsigned int Rm;
1032 unsigned int rotate; 1033 unsigned int rotate;
1033} sxth_inst; 1034};
1034 1035
1035typedef struct _uxtab_inst { 1036struct uxtab_inst {
1036 unsigned int Rn; 1037 unsigned int Rn;
1037 unsigned int Rd; 1038 unsigned int Rd;
1038 unsigned int rotate; 1039 unsigned int rotate;
1039 unsigned int Rm; 1040 unsigned int Rm;
1040} uxtab_inst; 1041};
1041 1042
1042typedef struct _uxtah_inst { 1043struct uxtah_inst {
1043 unsigned int Rn; 1044 unsigned int Rn;
1044 unsigned int Rd; 1045 unsigned int Rd;
1045 unsigned int rotate; 1046 unsigned int rotate;
1046 unsigned int Rm; 1047 unsigned int Rm;
1047} uxtah_inst; 1048};
1048 1049
1049typedef struct _uxth_inst { 1050struct uxth_inst {
1050 unsigned int Rd; 1051 unsigned int Rd;
1051 unsigned int Rm; 1052 unsigned int Rm;
1052 unsigned int rotate; 1053 unsigned int rotate;
1053} uxth_inst; 1054};
1054 1055
1055typedef struct _cdp_inst { 1056struct cdp_inst {
1056 unsigned int opcode_1; 1057 unsigned int opcode_1;
1057 unsigned int CRn; 1058 unsigned int CRn;
1058 unsigned int CRd; 1059 unsigned int CRd;
@@ -1060,49 +1061,49 @@ typedef struct _cdp_inst {
1060 unsigned int opcode_2; 1061 unsigned int opcode_2;
1061 unsigned int CRm; 1062 unsigned int CRm;
1062 unsigned int inst; 1063 unsigned int inst;
1063}cdp_inst; 1064};
1064 1065
1065typedef struct _uxtb_inst { 1066struct uxtb_inst {
1066 unsigned int Rd; 1067 unsigned int Rd;
1067 unsigned int Rm; 1068 unsigned int Rm;
1068 unsigned int rotate; 1069 unsigned int rotate;
1069} uxtb_inst; 1070};
1070 1071
1071typedef struct _swp_inst { 1072struct swp_inst {
1072 unsigned int Rn; 1073 unsigned int Rn;
1073 unsigned int Rd; 1074 unsigned int Rd;
1074 unsigned int Rm; 1075 unsigned int Rm;
1075} swp_inst; 1076};
1076 1077
1077typedef struct setend_inst { 1078struct setend_inst {
1078 unsigned int set_bigend; 1079 unsigned int set_bigend;
1079} setend_inst; 1080};
1080 1081
1081typedef struct _b_2_thumb { 1082struct b_2_thumb {
1082 unsigned int imm; 1083 unsigned int imm;
1083}b_2_thumb; 1084};
1084typedef struct _b_cond_thumb { 1085struct b_cond_thumb {
1085 unsigned int imm; 1086 unsigned int imm;
1086 unsigned int cond; 1087 unsigned int cond;
1087}b_cond_thumb; 1088};
1088 1089
1089typedef struct _bl_1_thumb { 1090struct bl_1_thumb {
1090 unsigned int imm; 1091 unsigned int imm;
1091}bl_1_thumb; 1092};
1092typedef struct _bl_2_thumb { 1093struct bl_2_thumb {
1093 unsigned int imm; 1094 unsigned int imm;
1094}bl_2_thumb; 1095};
1095typedef struct _blx_1_thumb { 1096struct blx_1_thumb {
1096 unsigned int imm; 1097 unsigned int imm;
1097 unsigned int instr; 1098 unsigned int instr;
1098}blx_1_thumb; 1099};
1099 1100
1100typedef struct _pkh_inst { 1101struct pkh_inst {
1101 unsigned int Rm; 1102 unsigned int Rm;
1102 unsigned int Rn; 1103 unsigned int Rn;
1103 unsigned int Rd; 1104 unsigned int Rd;
1104 unsigned char imm; 1105 unsigned char imm;
1105} pkh_inst; 1106};
1106 1107
1107typedef arm_inst * ARM_INST_PTR; 1108typedef arm_inst * ARM_INST_PTR;
1108 1109
diff --git a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
index 72afe2164..a04bf915c 100644
--- a/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
+++ b/src/core/arm/skyeye_common/vfp/vfpinstr.cpp
@@ -13,10 +13,10 @@
13/* VMLA */ 13/* VMLA */
14/* cond 1110 0D00 Vn-- Vd-- 101X N0M0 Vm-- */ 14/* cond 1110 0D00 Vn-- Vd-- 101X N0M0 Vm-- */
15#ifdef VFP_INTERPRETER_STRUCT 15#ifdef VFP_INTERPRETER_STRUCT
16typedef struct _vmla_inst { 16struct vmla_inst {
17 unsigned int instr; 17 unsigned int instr;
18 unsigned int dp_operation; 18 unsigned int dp_operation;
19} vmla_inst; 19};
20#endif 20#endif
21#ifdef VFP_INTERPRETER_TRANS 21#ifdef VFP_INTERPRETER_TRANS
22static ARM_INST_PTR INTERPRETER_TRANSLATE(vmla)(unsigned int inst, int index) 22static ARM_INST_PTR INTERPRETER_TRANSLATE(vmla)(unsigned int inst, int index)
@@ -63,10 +63,10 @@ VMLA_INST:
63/* VNMLS */ 63/* VNMLS */
64/* cond 1110 0D00 Vn-- Vd-- 101X N1M0 Vm-- */ 64/* cond 1110 0D00 Vn-- Vd-- 101X N1M0 Vm-- */
65#ifdef VFP_INTERPRETER_STRUCT 65#ifdef VFP_INTERPRETER_STRUCT
66typedef struct _vmls_inst { 66struct vmls_inst {
67 unsigned int instr; 67 unsigned int instr;
68 unsigned int dp_operation; 68 unsigned int dp_operation;
69} vmls_inst; 69};
70#endif 70#endif
71#ifdef VFP_INTERPRETER_TRANS 71#ifdef VFP_INTERPRETER_TRANS
72static ARM_INST_PTR INTERPRETER_TRANSLATE(vmls)(unsigned int inst, int index) 72static ARM_INST_PTR INTERPRETER_TRANSLATE(vmls)(unsigned int inst, int index)
@@ -113,10 +113,10 @@ VMLS_INST:
113/* VNMLA */ 113/* VNMLA */
114/* cond 1110 0D01 Vn-- Vd-- 101X N1M0 Vm-- */ 114/* cond 1110 0D01 Vn-- Vd-- 101X N1M0 Vm-- */
115#ifdef VFP_INTERPRETER_STRUCT 115#ifdef VFP_INTERPRETER_STRUCT
116typedef struct _vnmla_inst { 116struct vnmla_inst {
117 unsigned int instr; 117 unsigned int instr;
118 unsigned int dp_operation; 118 unsigned int dp_operation;
119} vnmla_inst; 119};
120#endif 120#endif
121#ifdef VFP_INTERPRETER_TRANS 121#ifdef VFP_INTERPRETER_TRANS
122static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmla)(unsigned int inst, int index) 122static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmla)(unsigned int inst, int index)
@@ -164,10 +164,10 @@ VNMLA_INST:
164/* cond 1110 0D01 Vn-- Vd-- 101X N0M0 Vm-- */ 164/* cond 1110 0D01 Vn-- Vd-- 101X N0M0 Vm-- */
165 165
166#ifdef VFP_INTERPRETER_STRUCT 166#ifdef VFP_INTERPRETER_STRUCT
167typedef struct _vnmls_inst { 167struct vnmls_inst {
168 unsigned int instr; 168 unsigned int instr;
169 unsigned int dp_operation; 169 unsigned int dp_operation;
170} vnmls_inst; 170};
171#endif 171#endif
172#ifdef VFP_INTERPRETER_TRANS 172#ifdef VFP_INTERPRETER_TRANS
173static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmls)(unsigned int inst, int index) 173static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmls)(unsigned int inst, int index)
@@ -214,10 +214,10 @@ VNMLS_INST:
214/* VNMUL */ 214/* VNMUL */
215/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */ 215/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */
216#ifdef VFP_INTERPRETER_STRUCT 216#ifdef VFP_INTERPRETER_STRUCT
217typedef struct _vnmul_inst { 217struct vnmul_inst {
218 unsigned int instr; 218 unsigned int instr;
219 unsigned int dp_operation; 219 unsigned int dp_operation;
220} vnmul_inst; 220};
221#endif 221#endif
222#ifdef VFP_INTERPRETER_TRANS 222#ifdef VFP_INTERPRETER_TRANS
223static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmul)(unsigned int inst, int index) 223static ARM_INST_PTR INTERPRETER_TRANSLATE(vnmul)(unsigned int inst, int index)
@@ -264,10 +264,10 @@ VNMUL_INST:
264/* VMUL */ 264/* VMUL */
265/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */ 265/* cond 1110 0D10 Vn-- Vd-- 101X N0M0 Vm-- */
266#ifdef VFP_INTERPRETER_STRUCT 266#ifdef VFP_INTERPRETER_STRUCT
267typedef struct _vmul_inst { 267struct vmul_inst {
268 unsigned int instr; 268 unsigned int instr;
269 unsigned int dp_operation; 269 unsigned int dp_operation;
270} vmul_inst; 270};
271#endif 271#endif
272#ifdef VFP_INTERPRETER_TRANS 272#ifdef VFP_INTERPRETER_TRANS
273static ARM_INST_PTR INTERPRETER_TRANSLATE(vmul)(unsigned int inst, int index) 273static ARM_INST_PTR INTERPRETER_TRANSLATE(vmul)(unsigned int inst, int index)
@@ -314,10 +314,10 @@ VMUL_INST:
314/* VADD */ 314/* VADD */
315/* cond 1110 0D11 Vn-- Vd-- 101X N0M0 Vm-- */ 315/* cond 1110 0D11 Vn-- Vd-- 101X N0M0 Vm-- */
316#ifdef VFP_INTERPRETER_STRUCT 316#ifdef VFP_INTERPRETER_STRUCT
317typedef struct _vadd_inst { 317struct vadd_inst {
318 unsigned int instr; 318 unsigned int instr;
319 unsigned int dp_operation; 319 unsigned int dp_operation;
320} vadd_inst; 320};
321#endif 321#endif
322#ifdef VFP_INTERPRETER_TRANS 322#ifdef VFP_INTERPRETER_TRANS
323static ARM_INST_PTR INTERPRETER_TRANSLATE(vadd)(unsigned int inst, int index) 323static ARM_INST_PTR INTERPRETER_TRANSLATE(vadd)(unsigned int inst, int index)
@@ -364,10 +364,10 @@ VADD_INST:
364/* VSUB */ 364/* VSUB */
365/* cond 1110 0D11 Vn-- Vd-- 101X N1M0 Vm-- */ 365/* cond 1110 0D11 Vn-- Vd-- 101X N1M0 Vm-- */
366#ifdef VFP_INTERPRETER_STRUCT 366#ifdef VFP_INTERPRETER_STRUCT
367typedef struct _vsub_inst { 367struct vsub_inst {
368 unsigned int instr; 368 unsigned int instr;
369 unsigned int dp_operation; 369 unsigned int dp_operation;
370} vsub_inst; 370};
371#endif 371#endif
372#ifdef VFP_INTERPRETER_TRANS 372#ifdef VFP_INTERPRETER_TRANS
373static ARM_INST_PTR INTERPRETER_TRANSLATE(vsub)(unsigned int inst, int index) 373static ARM_INST_PTR INTERPRETER_TRANSLATE(vsub)(unsigned int inst, int index)
@@ -414,10 +414,10 @@ VSUB_INST:
414/* VDIV */ 414/* VDIV */
415/* cond 1110 1D00 Vn-- Vd-- 101X N0M0 Vm-- */ 415/* cond 1110 1D00 Vn-- Vd-- 101X N0M0 Vm-- */
416#ifdef VFP_INTERPRETER_STRUCT 416#ifdef VFP_INTERPRETER_STRUCT
417typedef struct _vdiv_inst { 417struct vdiv_inst {
418 unsigned int instr; 418 unsigned int instr;
419 unsigned int dp_operation; 419 unsigned int dp_operation;
420} vdiv_inst; 420};
421#endif 421#endif
422#ifdef VFP_INTERPRETER_TRANS 422#ifdef VFP_INTERPRETER_TRANS
423static ARM_INST_PTR INTERPRETER_TRANSLATE(vdiv)(unsigned int inst, int index) 423static ARM_INST_PTR INTERPRETER_TRANSLATE(vdiv)(unsigned int inst, int index)
@@ -465,11 +465,11 @@ VDIV_INST:
465/* cond 1110 1D11 im4H Vd-- 101X 0000 im4L */ 465/* cond 1110 1D11 im4H Vd-- 101X 0000 im4L */
466/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */ 466/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */
467#ifdef VFP_INTERPRETER_STRUCT 467#ifdef VFP_INTERPRETER_STRUCT
468typedef struct _vmovi_inst { 468struct vmovi_inst {
469 unsigned int single; 469 unsigned int single;
470 unsigned int d; 470 unsigned int d;
471 unsigned int imm; 471 unsigned int imm;
472} vmovi_inst; 472};
473#endif 473#endif
474#ifdef VFP_INTERPRETER_TRANS 474#ifdef VFP_INTERPRETER_TRANS
475static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovi)(unsigned int inst, int index) 475static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovi)(unsigned int inst, int index)
@@ -514,11 +514,11 @@ VMOVI_INST:
514/* cond 1110 1D11 0000 Vd-- 101X 01M0 Vm-- */ 514/* cond 1110 1D11 0000 Vd-- 101X 01M0 Vm-- */
515/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */ 515/* cond 1110 opc1 CRn- CRd- copr op20 CRm- CDP */
516#ifdef VFP_INTERPRETER_STRUCT 516#ifdef VFP_INTERPRETER_STRUCT
517typedef struct _vmovr_inst { 517struct vmovr_inst {
518 unsigned int single; 518 unsigned int single;
519 unsigned int d; 519 unsigned int d;
520 unsigned int m; 520 unsigned int m;
521} vmovr_inst; 521};
522#endif 522#endif
523#ifdef VFP_INTERPRETER_TRANS 523#ifdef VFP_INTERPRETER_TRANS
524static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovr)(unsigned int inst, int index) 524static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovr)(unsigned int inst, int index)
@@ -609,10 +609,10 @@ VABS_INST:
609/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */ 609/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */
610 610
611#ifdef VFP_INTERPRETER_STRUCT 611#ifdef VFP_INTERPRETER_STRUCT
612typedef struct _vneg_inst { 612struct vneg_inst {
613 unsigned int instr; 613 unsigned int instr;
614 unsigned int dp_operation; 614 unsigned int dp_operation;
615} vneg_inst; 615};
616#endif 616#endif
617#ifdef VFP_INTERPRETER_TRANS 617#ifdef VFP_INTERPRETER_TRANS
618static ARM_INST_PTR INTERPRETER_TRANSLATE(vneg)(unsigned int inst, int index) 618static ARM_INST_PTR INTERPRETER_TRANSLATE(vneg)(unsigned int inst, int index)
@@ -659,10 +659,10 @@ VNEG_INST:
659/* VSQRT */ 659/* VSQRT */
660/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */ 660/* cond 1110 1D11 0001 Vd-- 101X 11M0 Vm-- */
661#ifdef VFP_INTERPRETER_STRUCT 661#ifdef VFP_INTERPRETER_STRUCT
662typedef struct _vsqrt_inst { 662struct vsqrt_inst {
663 unsigned int instr; 663 unsigned int instr;
664 unsigned int dp_operation; 664 unsigned int dp_operation;
665} vsqrt_inst; 665};
666#endif 666#endif
667#ifdef VFP_INTERPRETER_TRANS 667#ifdef VFP_INTERPRETER_TRANS
668static ARM_INST_PTR INTERPRETER_TRANSLATE(vsqrt)(unsigned int inst, int index) 668static ARM_INST_PTR INTERPRETER_TRANSLATE(vsqrt)(unsigned int inst, int index)
@@ -709,10 +709,10 @@ VSQRT_INST:
709/* VCMP VCMPE */ 709/* VCMP VCMPE */
710/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 1 */ 710/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 1 */
711#ifdef VFP_INTERPRETER_STRUCT 711#ifdef VFP_INTERPRETER_STRUCT
712typedef struct _vcmp_inst { 712struct vcmp_inst {
713 unsigned int instr; 713 unsigned int instr;
714 unsigned int dp_operation; 714 unsigned int dp_operation;
715} vcmp_inst; 715};
716#endif 716#endif
717#ifdef VFP_INTERPRETER_TRANS 717#ifdef VFP_INTERPRETER_TRANS
718static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp)(unsigned int inst, int index) 718static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp)(unsigned int inst, int index)
@@ -759,10 +759,10 @@ VCMP_INST:
759/* VCMP VCMPE */ 759/* VCMP VCMPE */
760/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 2 */ 760/* cond 1110 1D11 0100 Vd-- 101X E1M0 Vm-- Encoding 2 */
761#ifdef VFP_INTERPRETER_STRUCT 761#ifdef VFP_INTERPRETER_STRUCT
762typedef struct _vcmp2_inst { 762struct vcmp2_inst {
763 unsigned int instr; 763 unsigned int instr;
764 unsigned int dp_operation; 764 unsigned int dp_operation;
765} vcmp2_inst; 765};
766#endif 766#endif
767#ifdef VFP_INTERPRETER_TRANS 767#ifdef VFP_INTERPRETER_TRANS
768static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp2)(unsigned int inst, int index) 768static ARM_INST_PTR INTERPRETER_TRANSLATE(vcmp2)(unsigned int inst, int index)
@@ -809,10 +809,10 @@ VCMP2_INST:
809/* VCVTBDS between double and single */ 809/* VCVTBDS between double and single */
810/* cond 1110 1D11 0111 Vd-- 101X 11M0 Vm-- */ 810/* cond 1110 1D11 0111 Vd-- 101X 11M0 Vm-- */
811#ifdef VFP_INTERPRETER_STRUCT 811#ifdef VFP_INTERPRETER_STRUCT
812typedef struct _vcvtbds_inst { 812struct vcvtbds_inst {
813 unsigned int instr; 813 unsigned int instr;
814 unsigned int dp_operation; 814 unsigned int dp_operation;
815} vcvtbds_inst; 815};
816#endif 816#endif
817#ifdef VFP_INTERPRETER_TRANS 817#ifdef VFP_INTERPRETER_TRANS
818static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbds)(unsigned int inst, int index) 818static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbds)(unsigned int inst, int index)
@@ -859,10 +859,10 @@ VCVTBDS_INST:
859/* VCVTBFF between floating point and fixed point */ 859/* VCVTBFF between floating point and fixed point */
860/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */ 860/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */
861#ifdef VFP_INTERPRETER_STRUCT 861#ifdef VFP_INTERPRETER_STRUCT
862typedef struct _vcvtbff_inst { 862struct vcvtbff_inst {
863 unsigned int instr; 863 unsigned int instr;
864 unsigned int dp_operation; 864 unsigned int dp_operation;
865} vcvtbff_inst; 865};
866#endif 866#endif
867#ifdef VFP_INTERPRETER_TRANS 867#ifdef VFP_INTERPRETER_TRANS
868static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbff)(unsigned int inst, int index) 868static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbff)(unsigned int inst, int index)
@@ -911,10 +911,10 @@ VCVTBFF_INST:
911/* VCVTBFI between floating point and integer */ 911/* VCVTBFI between floating point and integer */
912/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */ 912/* cond 1110 1D11 1op2 Vd-- 101X X1M0 Vm-- */
913#ifdef VFP_INTERPRETER_STRUCT 913#ifdef VFP_INTERPRETER_STRUCT
914typedef struct _vcvtbfi_inst { 914struct vcvtbfi_inst {
915 unsigned int instr; 915 unsigned int instr;
916 unsigned int dp_operation; 916 unsigned int dp_operation;
917} vcvtbfi_inst; 917};
918#endif 918#endif
919#ifdef VFP_INTERPRETER_TRANS 919#ifdef VFP_INTERPRETER_TRANS
920static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbfi)(unsigned int inst, int index) 920static ARM_INST_PTR INTERPRETER_TRANSLATE(vcvtbfi)(unsigned int inst, int index)
@@ -967,11 +967,11 @@ VCVTBFI_INST:
967/* cond 1110 000o Vn-- Rt-- 1010 N001 0000 */ 967/* cond 1110 000o Vn-- Rt-- 1010 N001 0000 */
968/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */ 968/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */
969#ifdef VFP_INTERPRETER_STRUCT 969#ifdef VFP_INTERPRETER_STRUCT
970typedef struct _vmovbrs_inst { 970struct vmovbrs_inst {
971 unsigned int to_arm; 971 unsigned int to_arm;
972 unsigned int t; 972 unsigned int t;
973 unsigned int n; 973 unsigned int n;
974} vmovbrs_inst; 974};
975#endif 975#endif
976#ifdef VFP_INTERPRETER_TRANS 976#ifdef VFP_INTERPRETER_TRANS
977static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrs)(unsigned int inst, int index) 977static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrs)(unsigned int inst, int index)
@@ -1013,10 +1013,10 @@ VMOVBRS_INST:
1013/* cond 1110 1110 reg- Rt-- 1010 0001 0000 */ 1013/* cond 1110 1110 reg- Rt-- 1010 0001 0000 */
1014/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */ 1014/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */
1015#ifdef VFP_INTERPRETER_STRUCT 1015#ifdef VFP_INTERPRETER_STRUCT
1016typedef struct _vmsr_inst { 1016struct vmsr_inst {
1017 unsigned int reg; 1017 unsigned int reg;
1018 unsigned int Rd; 1018 unsigned int Rd;
1019} vmsr_inst; 1019};
1020#endif 1020#endif
1021#ifdef VFP_INTERPRETER_TRANS 1021#ifdef VFP_INTERPRETER_TRANS
1022static ARM_INST_PTR INTERPRETER_TRANSLATE(vmsr)(unsigned int inst, int index) 1022static ARM_INST_PTR INTERPRETER_TRANSLATE(vmsr)(unsigned int inst, int index)
@@ -1040,7 +1040,7 @@ VMSR_INST:
1040{ 1040{
1041 if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { 1041 if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) {
1042 /* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled , 1042 /* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled ,
1043 and in privilegied mode */ 1043 and in privileged mode */
1044 /* Exceptions must be checked, according to v7 ref manual */ 1044 /* Exceptions must be checked, according to v7 ref manual */
1045 CHECK_VFP_ENABLED; 1045 CHECK_VFP_ENABLED;
1046 1046
@@ -1060,12 +1060,12 @@ VMSR_INST:
1060/* cond 1110 0XX0 Vd-- Rt-- 1011 DXX1 0000 */ 1060/* cond 1110 0XX0 Vd-- Rt-- 1011 DXX1 0000 */
1061/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */ 1061/* cond 1110 op10 CRn- Rt-- copr op21 CRm- MCR */
1062#ifdef VFP_INTERPRETER_STRUCT 1062#ifdef VFP_INTERPRETER_STRUCT
1063typedef struct _vmovbrc_inst { 1063struct vmovbrc_inst {
1064 unsigned int esize; 1064 unsigned int esize;
1065 unsigned int index; 1065 unsigned int index;
1066 unsigned int d; 1066 unsigned int d;
1067 unsigned int t; 1067 unsigned int t;
1068} vmovbrc_inst; 1068};
1069#endif 1069#endif
1070#ifdef VFP_INTERPRETER_TRANS 1070#ifdef VFP_INTERPRETER_TRANS
1071static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index) 1071static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrc)(unsigned int inst, int index)
@@ -1109,10 +1109,10 @@ VMOVBRC_INST:
1109/* cond 1110 1111 CRn- Rt-- 1010 0001 0000 */ 1109/* cond 1110 1111 CRn- Rt-- 1010 0001 0000 */
1110/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */ 1110/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MRC */
1111#ifdef VFP_INTERPRETER_STRUCT 1111#ifdef VFP_INTERPRETER_STRUCT
1112typedef struct _vmrs_inst { 1112struct vmrs_inst {
1113 unsigned int reg; 1113 unsigned int reg;
1114 unsigned int Rt; 1114 unsigned int Rt;
1115} vmrs_inst; 1115};
1116#endif 1116#endif
1117#ifdef VFP_INTERPRETER_TRANS 1117#ifdef VFP_INTERPRETER_TRANS
1118static ARM_INST_PTR INTERPRETER_TRANSLATE(vmrs)(unsigned int inst, int index) 1118static ARM_INST_PTR INTERPRETER_TRANSLATE(vmrs)(unsigned int inst, int index)
@@ -1136,7 +1136,7 @@ VMRS_INST:
1136{ 1136{
1137 if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) { 1137 if ((inst_base->cond == 0xe) || CondPassed(cpu, inst_base->cond)) {
1138 /* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled, 1138 /* FIXME: special case for access to FPSID and FPEXC, VFP must be disabled,
1139 and in privilegied mode */ 1139 and in privileged mode */
1140 /* Exceptions must be checked, according to v7 ref manual */ 1140 /* Exceptions must be checked, according to v7 ref manual */
1141 CHECK_VFP_ENABLED; 1141 CHECK_VFP_ENABLED;
1142 1142
@@ -1191,12 +1191,12 @@ VMRS_INST:
1191/* cond 1110 XXX1 Vd-- Rt-- 1011 NXX1 0000 */ 1191/* cond 1110 XXX1 Vd-- Rt-- 1011 NXX1 0000 */
1192/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MCR */ 1192/* cond 1110 op11 CRn- Rt-- copr op21 CRm- MCR */
1193#ifdef VFP_INTERPRETER_STRUCT 1193#ifdef VFP_INTERPRETER_STRUCT
1194typedef struct _vmovbcr_inst { 1194struct vmovbcr_inst {
1195 unsigned int esize; 1195 unsigned int esize;
1196 unsigned int index; 1196 unsigned int index;
1197 unsigned int d; 1197 unsigned int d;
1198 unsigned int t; 1198 unsigned int t;
1199} vmovbcr_inst; 1199};
1200#endif 1200#endif
1201#ifdef VFP_INTERPRETER_TRANS 1201#ifdef VFP_INTERPRETER_TRANS
1202static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index) 1202static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbcr)(unsigned int inst, int index)
@@ -1245,12 +1245,12 @@ VMOVBCR_INST:
1245/* cond 1100 010X Rt2- Rt-- 1010 00X1 Vm-- */ 1245/* cond 1100 010X Rt2- Rt-- 1010 00X1 Vm-- */
1246/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */ 1246/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */
1247#ifdef VFP_INTERPRETER_STRUCT 1247#ifdef VFP_INTERPRETER_STRUCT
1248typedef struct _vmovbrrss_inst { 1248struct vmovbrrss_inst {
1249 unsigned int to_arm; 1249 unsigned int to_arm;
1250 unsigned int t; 1250 unsigned int t;
1251 unsigned int t2; 1251 unsigned int t2;
1252 unsigned int m; 1252 unsigned int m;
1253} vmovbrrss_inst; 1253};
1254#endif 1254#endif
1255#ifdef VFP_INTERPRETER_TRANS 1255#ifdef VFP_INTERPRETER_TRANS
1256static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrss)(unsigned int inst, int index) 1256static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrss)(unsigned int inst, int index)
@@ -1294,12 +1294,12 @@ VMOVBRRSS_INST:
1294/* cond 1100 010X Rt2- Rt-- 1011 00X1 Vm-- */ 1294/* cond 1100 010X Rt2- Rt-- 1011 00X1 Vm-- */
1295/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */ 1295/* cond 1100 0101 Rt2- Rt-- copr opc1 CRm- MRRC */
1296#ifdef VFP_INTERPRETER_STRUCT 1296#ifdef VFP_INTERPRETER_STRUCT
1297typedef struct _vmovbrrd_inst { 1297struct vmovbrrd_inst {
1298 unsigned int to_arm; 1298 unsigned int to_arm;
1299 unsigned int t; 1299 unsigned int t;
1300 unsigned int t2; 1300 unsigned int t2;
1301 unsigned int m; 1301 unsigned int m;
1302} vmovbrrd_inst; 1302};
1303#endif 1303#endif
1304#ifdef VFP_INTERPRETER_TRANS 1304#ifdef VFP_INTERPRETER_TRANS
1305static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrd)(unsigned int inst, int index) 1305static ARM_INST_PTR INTERPRETER_TRANSLATE(vmovbrrd)(unsigned int inst, int index)
@@ -1347,13 +1347,13 @@ VMOVBRRD_INST:
1347/* VSTR */ 1347/* VSTR */
1348/* cond 1101 UD00 Rn-- Vd-- 101X imm8 imm8 */ 1348/* cond 1101 UD00 Rn-- Vd-- 101X imm8 imm8 */
1349#ifdef VFP_INTERPRETER_STRUCT 1349#ifdef VFP_INTERPRETER_STRUCT
1350typedef struct _vstr_inst { 1350struct vstr_inst {
1351 unsigned int single; 1351 unsigned int single;
1352 unsigned int n; 1352 unsigned int n;
1353 unsigned int d; 1353 unsigned int d;
1354 unsigned int imm32; 1354 unsigned int imm32;
1355 unsigned int add; 1355 unsigned int add;
1356} vstr_inst; 1356};
1357#endif 1357#endif
1358#ifdef VFP_INTERPRETER_TRANS 1358#ifdef VFP_INTERPRETER_TRANS
1359static ARM_INST_PTR INTERPRETER_TRANSLATE(vstr)(unsigned int inst, int index) 1359static ARM_INST_PTR INTERPRETER_TRANSLATE(vstr)(unsigned int inst, int index)
@@ -1415,12 +1415,12 @@ VSTR_INST:
1415/* VPUSH */ 1415/* VPUSH */
1416/* cond 1101 0D10 1101 Vd-- 101X imm8 imm8 */ 1416/* cond 1101 0D10 1101 Vd-- 101X imm8 imm8 */
1417#ifdef VFP_INTERPRETER_STRUCT 1417#ifdef VFP_INTERPRETER_STRUCT
1418typedef struct _vpush_inst { 1418struct vpush_inst {
1419 unsigned int single; 1419 unsigned int single;
1420 unsigned int d; 1420 unsigned int d;
1421 unsigned int imm32; 1421 unsigned int imm32;
1422 unsigned int regs; 1422 unsigned int regs;
1423} vpush_inst; 1423};
1424#endif 1424#endif
1425#ifdef VFP_INTERPRETER_TRANS 1425#ifdef VFP_INTERPRETER_TRANS
1426static ARM_INST_PTR INTERPRETER_TRANSLATE(vpush)(unsigned int inst, int index) 1426static ARM_INST_PTR INTERPRETER_TRANSLATE(vpush)(unsigned int inst, int index)
@@ -1488,7 +1488,7 @@ VPUSH_INST:
1488/* VSTM */ 1488/* VSTM */
1489/* cond 110P UDW0 Rn-- Vd-- 101X imm8 imm8 */ 1489/* cond 110P UDW0 Rn-- Vd-- 101X imm8 imm8 */
1490#ifdef VFP_INTERPRETER_STRUCT 1490#ifdef VFP_INTERPRETER_STRUCT
1491typedef struct _vstm_inst { 1491struct vstm_inst {
1492 unsigned int single; 1492 unsigned int single;
1493 unsigned int add; 1493 unsigned int add;
1494 unsigned int wback; 1494 unsigned int wback;
@@ -1496,7 +1496,7 @@ typedef struct _vstm_inst {
1496 unsigned int n; 1496 unsigned int n;
1497 unsigned int imm32; 1497 unsigned int imm32;
1498 unsigned int regs; 1498 unsigned int regs;
1499} vstm_inst; 1499};
1500#endif 1500#endif
1501#ifdef VFP_INTERPRETER_TRANS 1501#ifdef VFP_INTERPRETER_TRANS
1502static ARM_INST_PTR INTERPRETER_TRANSLATE(vstm)(unsigned int inst, int index) 1502static ARM_INST_PTR INTERPRETER_TRANSLATE(vstm)(unsigned int inst, int index)
@@ -1570,12 +1570,12 @@ VSTM_INST: /* encoding 1 */
1570/* VPOP */ 1570/* VPOP */
1571/* cond 1100 1D11 1101 Vd-- 101X imm8 imm8 */ 1571/* cond 1100 1D11 1101 Vd-- 101X imm8 imm8 */
1572#ifdef VFP_INTERPRETER_STRUCT 1572#ifdef VFP_INTERPRETER_STRUCT
1573typedef struct _vpop_inst { 1573struct vpop_inst {
1574 unsigned int single; 1574 unsigned int single;
1575 unsigned int d; 1575 unsigned int d;
1576 unsigned int imm32; 1576 unsigned int imm32;
1577 unsigned int regs; 1577 unsigned int regs;
1578} vpop_inst; 1578};
1579#endif 1579#endif
1580#ifdef VFP_INTERPRETER_TRANS 1580#ifdef VFP_INTERPRETER_TRANS
1581static ARM_INST_PTR INTERPRETER_TRANSLATE(vpop)(unsigned int inst, int index) 1581static ARM_INST_PTR INTERPRETER_TRANSLATE(vpop)(unsigned int inst, int index)
@@ -1643,13 +1643,13 @@ VPOP_INST:
1643/* VLDR */ 1643/* VLDR */
1644/* cond 1101 UD01 Rn-- Vd-- 101X imm8 imm8 */ 1644/* cond 1101 UD01 Rn-- Vd-- 101X imm8 imm8 */
1645#ifdef VFP_INTERPRETER_STRUCT 1645#ifdef VFP_INTERPRETER_STRUCT
1646typedef struct _vldr_inst { 1646struct vldr_inst {
1647 unsigned int single; 1647 unsigned int single;
1648 unsigned int n; 1648 unsigned int n;
1649 unsigned int d; 1649 unsigned int d;
1650 unsigned int imm32; 1650 unsigned int imm32;
1651 unsigned int add; 1651 unsigned int add;
1652} vldr_inst; 1652};
1653#endif 1653#endif
1654#ifdef VFP_INTERPRETER_TRANS 1654#ifdef VFP_INTERPRETER_TRANS
1655static ARM_INST_PTR INTERPRETER_TRANSLATE(vldr)(unsigned int inst, int index) 1655static ARM_INST_PTR INTERPRETER_TRANSLATE(vldr)(unsigned int inst, int index)
@@ -1711,7 +1711,7 @@ VLDR_INST:
1711/* VLDM */ 1711/* VLDM */
1712/* cond 110P UDW1 Rn-- Vd-- 101X imm8 imm8 */ 1712/* cond 110P UDW1 Rn-- Vd-- 101X imm8 imm8 */
1713#ifdef VFP_INTERPRETER_STRUCT 1713#ifdef VFP_INTERPRETER_STRUCT
1714typedef struct _vldm_inst { 1714struct vldm_inst {
1715 unsigned int single; 1715 unsigned int single;
1716 unsigned int add; 1716 unsigned int add;
1717 unsigned int wback; 1717 unsigned int wback;
@@ -1719,7 +1719,7 @@ typedef struct _vldm_inst {
1719 unsigned int n; 1719 unsigned int n;
1720 unsigned int imm32; 1720 unsigned int imm32;
1721 unsigned int regs; 1721 unsigned int regs;
1722} vldm_inst; 1722};
1723#endif 1723#endif
1724#ifdef VFP_INTERPRETER_TRANS 1724#ifdef VFP_INTERPRETER_TRANS
1725static ARM_INST_PTR INTERPRETER_TRANSLATE(vldm)(unsigned int inst, int index) 1725static ARM_INST_PTR INTERPRETER_TRANSLATE(vldm)(unsigned int inst, int index)