Commit 3a6078548d3abf01ea24df75eae794d078194481
1 parent
c55e9aef
Cleanup and add more PowerPC core definitions.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2684 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
1120 additions
and
1116 deletions
target-ppc/translate_init.c
... | ... | @@ -1875,7 +1875,7 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def) |
1875 | 1875 | def->pvr); |
1876 | 1876 | printf("%s: PVR %08x mask %08x => %08x\n", __func__, |
1877 | 1877 | def->pvr, def->pvr_mask, def->pvr & def->pvr_mask); |
1878 | - switch (def->pvr & def->pvr_mask) { | |
1878 | + switch (def->pvr) { | |
1879 | 1879 | /* Embedded PowerPC from IBM */ |
1880 | 1880 | case CPU_PPC_401A1: /* 401 A1 family */ |
1881 | 1881 | case CPU_PPC_401B2: /* 401 B2 family */ |
... | ... | @@ -2715,1174 +2715,1178 @@ int cpu_ppc_register (CPUPPCState *env, ppc_def_t *def) |
2715 | 2715 | |
2716 | 2716 | /*****************************************************************************/ |
2717 | 2717 | /* PowerPC CPU definitions */ |
2718 | -static ppc_def_t ppc_defs[] = | |
2719 | - { | |
2720 | - /* Embedded PowerPC */ | |
2721 | -#if defined (TODO) | |
2722 | - /* PowerPC 401 */ | |
2723 | - { | |
2724 | - .name = "401", | |
2725 | - .pvr = CPU_PPC_401, | |
2726 | - .pvr_mask = 0xFFFF0000, | |
2727 | - .insns_flags = PPC_INSNS_401, | |
2728 | - .flags = PPC_FLAGS_401, | |
2729 | - .msr_mask = xxx, | |
2730 | - }, | |
2731 | -#endif | |
2732 | -#if defined (TODO) | |
2733 | - /* IOP480 (401 microcontroler) */ | |
2734 | - { | |
2735 | - .name = "iop480", | |
2736 | - .pvr = CPU_PPC_IOP480, | |
2737 | - .pvr_mask = 0xFFFF0000, | |
2738 | - .insns_flags = PPC_INSNS_401, | |
2739 | - .flags = PPC_FLAGS_401, | |
2740 | - .msr_mask = xxx, | |
2741 | - }, | |
2742 | -#endif | |
2743 | -#if defined (TODO) | |
2744 | - /* IBM Processor for Network Resources */ | |
2745 | - { | |
2746 | - .name = "Cobra", | |
2747 | - .pvr = CPU_PPC_COBRA, | |
2748 | - .pvr_mask = 0xFFFF0000, | |
2749 | - .insns_flags = PPC_INSNS_401, | |
2750 | - .flags = PPC_FLAGS_401, | |
2751 | - .msr_mask = xxx, | |
2752 | - }, | |
2753 | -#endif | |
2754 | -#if defined (TODO) | |
2755 | - /* Generic PowerPC 403 */ | |
2756 | - { | |
2757 | - .name = "403", | |
2758 | - .pvr = CPU_PPC_403, | |
2759 | - .pvr_mask = 0xFFFFFF00, | |
2760 | - .insns_flags = PPC_INSNS_403, | |
2761 | - .flags = PPC_FLAGS_403, | |
2762 | - .msr_mask = 0x000000000007D23D, | |
2763 | - }, | |
2764 | -#endif | |
2765 | -#if defined (TODO) | |
2766 | - /* PowerPC 403 GA */ | |
2767 | - { | |
2768 | - .name = "403ga", | |
2769 | - .pvr = CPU_PPC_403GA, | |
2770 | - .pvr_mask = 0xFFFFFF00, | |
2771 | - .insns_flags = PPC_INSNS_403, | |
2772 | - .flags = PPC_FLAGS_403, | |
2773 | - .msr_mask = 0x000000000007D23D, | |
2774 | - }, | |
2775 | -#endif | |
2776 | -#if defined (TODO) | |
2777 | - /* PowerPC 403 GB */ | |
2778 | - { | |
2779 | - .name = "403gb", | |
2780 | - .pvr = CPU_PPC_403GB, | |
2781 | - .pvr_mask = 0xFFFFFF00, | |
2782 | - .insns_flags = PPC_INSNS_403, | |
2783 | - .flags = PPC_FLAGS_403, | |
2784 | - .msr_mask = 0x000000000007D23D, | |
2785 | - }, | |
2786 | -#endif | |
2787 | -#if defined (TODO) | |
2788 | - /* PowerPC 403 GC */ | |
2789 | - { | |
2790 | - .name = "403gc", | |
2791 | - .pvr = CPU_PPC_403GC, | |
2792 | - .pvr_mask = 0xFFFFFF00, | |
2793 | - .insns_flags = PPC_INSNS_403, | |
2794 | - .flags = PPC_FLAGS_403, | |
2795 | - .msr_mask = 0x000000000007D23D, | |
2796 | - }, | |
2797 | -#endif | |
2798 | -#if defined (TODO) | |
2799 | - /* PowerPC 403 GCX */ | |
2800 | - { | |
2801 | - .name = "403gcx", | |
2802 | - .pvr = CPU_PPC_403GCX, | |
2803 | - .pvr_mask = 0xFFFFFF00, | |
2804 | - .insns_flags = PPC_INSNS_403, | |
2805 | - .flags = PPC_FLAGS_403, | |
2806 | - .msr_mask = 0x000000000007D23D, | |
2807 | - }, | |
2808 | -#endif | |
2809 | -#if defined (TODO) | |
2810 | - /* Generic PowerPC 405 */ | |
2811 | - { | |
2812 | - .name = "405", | |
2813 | - .pvr = CPU_PPC_405, | |
2814 | - .pvr_mask = 0xFFFF0000, | |
2815 | - .insns_flags = PPC_INSNS_405, | |
2816 | - .flags = PPC_FLAGS_405, | |
2817 | - .msr_mask = 0x00000000020EFF30, | |
2818 | - }, | |
2718 | +static ppc_def_t ppc_defs[] = { | |
2719 | + /* Embedded PowerPC */ | |
2720 | +#if defined (TODO) | |
2721 | + /* PowerPC 401 */ | |
2722 | + { | |
2723 | + .name = "401", | |
2724 | + .pvr = CPU_PPC_401, | |
2725 | + .pvr_mask = 0xFFFF0000, | |
2726 | + .insns_flags = PPC_INSNS_401, | |
2727 | + .flags = PPC_FLAGS_401, | |
2728 | + .msr_mask = xxx, | |
2729 | + }, | |
2819 | 2730 | #endif |
2820 | 2731 | #if defined (TODO) |
2821 | - /* PowerPC 405 CR */ | |
2822 | - { | |
2823 | - .name = "405cr", | |
2824 | - .pvr = CPU_PPC_405, | |
2825 | - .pvr_mask = 0xFFFF0000, | |
2826 | - .insns_flags = PPC_INSNS_405, | |
2827 | - .flags = PPC_FLAGS_405, | |
2828 | - .msr_mask = 0x00000000020EFF30, | |
2829 | - }, | |
2732 | + /* IOP480 (401 microcontroler) */ | |
2733 | + { | |
2734 | + .name = "iop480", | |
2735 | + .pvr = CPU_PPC_IOP480, | |
2736 | + .pvr_mask = 0xFFFF0000, | |
2737 | + .insns_flags = PPC_INSNS_401, | |
2738 | + .flags = PPC_FLAGS_401, | |
2739 | + .msr_mask = xxx, | |
2740 | + }, | |
2830 | 2741 | #endif |
2831 | 2742 | #if defined (TODO) |
2832 | - /* PowerPC 405 GP */ | |
2833 | - { | |
2834 | - .name = "405gp", | |
2835 | - .pvr = CPU_PPC_405, | |
2836 | - .pvr_mask = 0xFFFF0000, | |
2837 | - .insns_flags = PPC_INSNS_405, | |
2838 | - .flags = PPC_FLAGS_405, | |
2839 | - .msr_mask = 0x00000000020EFF30, | |
2840 | - }, | |
2743 | + /* IBM Processor for Network Resources */ | |
2744 | + { | |
2745 | + .name = "Cobra", | |
2746 | + .pvr = CPU_PPC_COBRA, | |
2747 | + .pvr_mask = 0xFFFF0000, | |
2748 | + .insns_flags = PPC_INSNS_401, | |
2749 | + .flags = PPC_FLAGS_401, | |
2750 | + .msr_mask = xxx, | |
2751 | + }, | |
2841 | 2752 | #endif |
2842 | 2753 | #if defined (TODO) |
2843 | - /* PowerPC 405 EP */ | |
2844 | - { | |
2845 | - .name = "405ep", | |
2846 | - .pvr = CPU_PPC_405EP, | |
2847 | - .pvr_mask = 0xFFFF0000, | |
2848 | - .insns_flags = PPC_INSNS_405, | |
2849 | - .flags = PPC_FLAGS_405, | |
2850 | - .msr_mask = 0x00000000020EFF30, | |
2851 | - }, | |
2754 | + /* Generic PowerPC 403 */ | |
2755 | + { | |
2756 | + .name = "403", | |
2757 | + .pvr = CPU_PPC_403, | |
2758 | + .pvr_mask = 0xFFFFFF00, | |
2759 | + .insns_flags = PPC_INSNS_403, | |
2760 | + .flags = PPC_FLAGS_403, | |
2761 | + .msr_mask = 0x000000000007D23D, | |
2762 | + }, | |
2852 | 2763 | #endif |
2853 | 2764 | #if defined (TODO) |
2854 | - /* PowerPC 405 GPR */ | |
2855 | - { | |
2856 | - .name = "405gpr", | |
2857 | - .pvr = CPU_PPC_405GPR, | |
2858 | - .pvr_mask = 0xFFFF0000, | |
2859 | - .insns_flags = PPC_INSNS_405, | |
2860 | - .flags = PPC_FLAGS_405, | |
2861 | - .msr_mask = 0x00000000020EFF30, | |
2862 | - }, | |
2765 | + /* PowerPC 403 GA */ | |
2766 | + { | |
2767 | + .name = "403ga", | |
2768 | + .pvr = CPU_PPC_403GA, | |
2769 | + .pvr_mask = 0xFFFFFF00, | |
2770 | + .insns_flags = PPC_INSNS_403, | |
2771 | + .flags = PPC_FLAGS_403, | |
2772 | + .msr_mask = 0x000000000007D23D, | |
2773 | + }, | |
2863 | 2774 | #endif |
2864 | 2775 | #if defined (TODO) |
2865 | - /* PowerPC 405 D2 */ | |
2866 | - { | |
2867 | - .name = "405d2", | |
2868 | - .pvr = CPU_PPC_405D2, | |
2869 | - .pvr_mask = 0xFFFF0000, | |
2870 | - .insns_flags = PPC_INSNS_405, | |
2871 | - .flags = PPC_FLAGS_405, | |
2872 | - .msr_mask = 0x00000000020EFF30, | |
2873 | - }, | |
2776 | + /* PowerPC 403 GB */ | |
2777 | + { | |
2778 | + .name = "403gb", | |
2779 | + .pvr = CPU_PPC_403GB, | |
2780 | + .pvr_mask = 0xFFFFFF00, | |
2781 | + .insns_flags = PPC_INSNS_403, | |
2782 | + .flags = PPC_FLAGS_403, | |
2783 | + .msr_mask = 0x000000000007D23D, | |
2784 | + }, | |
2874 | 2785 | #endif |
2875 | 2786 | #if defined (TODO) |
2876 | - /* PowerPC 405 D4 */ | |
2877 | - { | |
2878 | - .name = "405d4", | |
2879 | - .pvr = CPU_PPC_405D4, | |
2880 | - .pvr_mask = 0xFFFF0000, | |
2881 | - .insns_flags = PPC_INSNS_405, | |
2882 | - .flags = PPC_FLAGS_405, | |
2883 | - .msr_mask = 0x00000000020EFF30, | |
2884 | - }, | |
2787 | + /* PowerPC 403 GC */ | |
2788 | + { | |
2789 | + .name = "403gc", | |
2790 | + .pvr = CPU_PPC_403GC, | |
2791 | + .pvr_mask = 0xFFFFFF00, | |
2792 | + .insns_flags = PPC_INSNS_403, | |
2793 | + .flags = PPC_FLAGS_403, | |
2794 | + .msr_mask = 0x000000000007D23D, | |
2795 | + }, | |
2885 | 2796 | #endif |
2886 | 2797 | #if defined (TODO) |
2887 | - /* Npe405 H */ | |
2888 | - { | |
2889 | - .name = "Npe405H", | |
2890 | - .pvr = CPU_PPC_NPE405H, | |
2891 | - .pvr_mask = 0xFFFF0000, | |
2892 | - .insns_flags = PPC_INSNS_405, | |
2893 | - .flags = PPC_FLAGS_405, | |
2894 | - .msr_mask = 0x00000000020EFF30, | |
2895 | - }, | |
2798 | + /* PowerPC 403 GCX */ | |
2799 | + { | |
2800 | + .name = "403gcx", | |
2801 | + .pvr = CPU_PPC_403GCX, | |
2802 | + .pvr_mask = 0xFFFFFF00, | |
2803 | + .insns_flags = PPC_INSNS_403, | |
2804 | + .flags = PPC_FLAGS_403, | |
2805 | + .msr_mask = 0x000000000007D23D, | |
2806 | + }, | |
2807 | +#endif | |
2808 | + /* Generic PowerPC 405 */ | |
2809 | + { | |
2810 | + .name = "405", | |
2811 | + .pvr = CPU_PPC_405, | |
2812 | + .pvr_mask = 0xFFFF0000, | |
2813 | + .insns_flags = PPC_INSNS_405, | |
2814 | + .flags = PPC_FLAGS_405, | |
2815 | + .msr_mask = 0x00000000020EFF30, | |
2816 | + }, | |
2817 | + /* PowerPC 405 CR */ | |
2818 | + { | |
2819 | + .name = "405cr", | |
2820 | + .pvr = CPU_PPC_405, | |
2821 | + .pvr_mask = 0xFFFFFFFF, | |
2822 | + .insns_flags = PPC_INSNS_405, | |
2823 | + .flags = PPC_FLAGS_405, | |
2824 | + .msr_mask = 0x00000000020EFF30, | |
2825 | + }, | |
2826 | +#if defined (TODO) | |
2827 | + /* PowerPC 405 GP */ | |
2828 | + { | |
2829 | + .name = "405gp", | |
2830 | + .pvr = CPU_PPC_405, | |
2831 | + .pvr_mask = 0xFFFFFFFF, | |
2832 | + .insns_flags = PPC_INSNS_405, | |
2833 | + .flags = PPC_FLAGS_405, | |
2834 | + .msr_mask = 0x00000000020EFF30, | |
2835 | + }, | |
2836 | +#endif | |
2837 | + /* PowerPC 405 EP */ | |
2838 | + { | |
2839 | + .name = "405ep", | |
2840 | + .pvr = CPU_PPC_405EP, | |
2841 | + .pvr_mask = 0xFFFFFFFF, | |
2842 | + .insns_flags = PPC_INSNS_405, | |
2843 | + .flags = PPC_FLAGS_405, | |
2844 | + .msr_mask = 0x00000000020EFF30, | |
2845 | + }, | |
2846 | +#if defined (TODO) | |
2847 | + /* PowerPC 405 EZ */ | |
2848 | + { | |
2849 | + .name = "405ez", | |
2850 | + .pvr = CPU_PPC_405EZ, | |
2851 | + .pvr_mask = 0xFFFFFFFF, | |
2852 | + .insns_flags = PPC_INSNS_405, | |
2853 | + .flags = PPC_FLAGS_405, | |
2854 | + .msr_mask = 0x00000000020EFF30, | |
2855 | + }, | |
2896 | 2856 | #endif |
2897 | 2857 | #if defined (TODO) |
2898 | - /* Npe405 L */ | |
2899 | - { | |
2900 | - .name = "Npe405L", | |
2901 | - .pvr = CPU_PPC_NPE405L, | |
2902 | - .pvr_mask = 0xFFFF0000, | |
2903 | - .insns_flags = PPC_INSNS_405, | |
2904 | - .flags = PPC_FLAGS_405, | |
2905 | - .msr_mask = 0x00000000020EFF30, | |
2906 | - }, | |
2858 | + /* PowerPC 405 GPR */ | |
2859 | + { | |
2860 | + .name = "405gpr", | |
2861 | + .pvr = CPU_PPC_405GPR, | |
2862 | + .pvr_mask = 0xFFFFFFFF, | |
2863 | + .insns_flags = PPC_INSNS_405, | |
2864 | + .flags = PPC_FLAGS_405, | |
2865 | + .msr_mask = 0x00000000020EFF30, | |
2866 | + }, | |
2907 | 2867 | #endif |
2908 | 2868 | #if defined (TODO) |
2909 | - /* STB010000 */ | |
2910 | - { | |
2911 | - .name = "STB01000", | |
2912 | - .pvr = CPU_PPC_STB01000, | |
2913 | - .pvr_mask = 0xFFFF0000, | |
2914 | - .insns_flags = PPC_INSNS_405, | |
2915 | - .flags = PPC_FLAGS_405, | |
2916 | - .msr_mask = 0x00000000020EFF30, | |
2917 | - }, | |
2869 | + /* PowerPC 405 D2 */ | |
2870 | + { | |
2871 | + .name = "405d2", | |
2872 | + .pvr = CPU_PPC_405D2, | |
2873 | + .pvr_mask = 0xFFFFFFFF, | |
2874 | + .insns_flags = PPC_INSNS_405, | |
2875 | + .flags = PPC_FLAGS_405, | |
2876 | + .msr_mask = 0x00000000020EFF30, | |
2877 | + }, | |
2918 | 2878 | #endif |
2919 | 2879 | #if defined (TODO) |
2920 | - /* STB01010 */ | |
2921 | - { | |
2922 | - .name = "STB01010", | |
2923 | - .pvr = CPU_PPC_STB01010, | |
2924 | - .pvr_mask = 0xFFFF0000, | |
2925 | - .insns_flags = PPC_INSNS_405, | |
2926 | - .flags = PPC_FLAGS_405, | |
2927 | - .msr_mask = 0x00000000020EFF30, | |
2928 | - }, | |
2880 | + /* PowerPC 405 D4 */ | |
2881 | + { | |
2882 | + .name = "405d4", | |
2883 | + .pvr = CPU_PPC_405D4, | |
2884 | + .pvr_mask = 0xFFFFFFFF, | |
2885 | + .insns_flags = PPC_INSNS_405, | |
2886 | + .flags = PPC_FLAGS_405, | |
2887 | + .msr_mask = 0x00000000020EFF30, | |
2888 | + }, | |
2929 | 2889 | #endif |
2930 | 2890 | #if defined (TODO) |
2931 | - /* STB0210 */ | |
2932 | - { | |
2933 | - .name = "STB0210", | |
2934 | - .pvr = CPU_PPC_STB0210, | |
2935 | - .pvr_mask = 0xFFFF0000, | |
2891 | + /* Npe405 H */ | |
2892 | + { | |
2893 | + .name = "Npe405H", | |
2894 | + .pvr = CPU_PPC_NPE405H, | |
2895 | + .pvr_mask = 0xFFFFFFFF, | |
2936 | 2896 | .insns_flags = PPC_INSNS_405, |
2937 | - .flags = PPC_FLAGS_405, | |
2938 | - .msr_mask = 0x00000000020EFF30, | |
2939 | - }, | |
2897 | + .flags = PPC_FLAGS_405, | |
2898 | + .msr_mask = 0x00000000020EFF30, | |
2899 | + }, | |
2940 | 2900 | #endif |
2941 | 2901 | #if defined (TODO) |
2942 | - /* STB03xx */ | |
2943 | - { | |
2944 | - .name = "STB03", | |
2945 | - .pvr = CPU_PPC_STB03, | |
2946 | - .pvr_mask = 0xFFFF0000, | |
2947 | - .insns_flags = PPC_INSNS_405, | |
2948 | - .flags = PPC_FLAGS_405, | |
2949 | - .msr_mask = 0x00000000020EFF30, | |
2950 | - }, | |
2902 | + /* Npe405 L */ | |
2903 | + { | |
2904 | + .name = "Npe405L", | |
2905 | + .pvr = CPU_PPC_NPE405L, | |
2906 | + .pvr_mask = 0xFFFFFFFF, | |
2907 | + .insns_flags = PPC_INSNS_405, | |
2908 | + .flags = PPC_FLAGS_405, | |
2909 | + .msr_mask = 0x00000000020EFF30, | |
2910 | + }, | |
2951 | 2911 | #endif |
2952 | 2912 | #if defined (TODO) |
2953 | - /* STB043x */ | |
2954 | - { | |
2955 | - .name = "STB043", | |
2956 | - .pvr = CPU_PPC_STB043, | |
2957 | - .pvr_mask = 0xFFFF0000, | |
2958 | - .insns_flags = PPC_INSNS_405, | |
2959 | - .flags = PPC_FLAGS_405, | |
2960 | - .msr_mask = 0x00000000020EFF30, | |
2961 | - }, | |
2913 | + /* STB010000 */ | |
2914 | + { | |
2915 | + .name = "STB01000", | |
2916 | + .pvr = CPU_PPC_STB01000, | |
2917 | + .pvr_mask = 0xFFFFFFFF, | |
2918 | + .insns_flags = PPC_INSNS_405, | |
2919 | + .flags = PPC_FLAGS_405, | |
2920 | + .msr_mask = 0x00000000020EFF30, | |
2921 | + }, | |
2962 | 2922 | #endif |
2963 | 2923 | #if defined (TODO) |
2964 | - /* STB045x */ | |
2965 | - { | |
2966 | - .name = "STB045", | |
2967 | - .pvr = CPU_PPC_STB045, | |
2968 | - .pvr_mask = 0xFFFF0000, | |
2969 | - .insns_flags = PPC_INSNS_405, | |
2970 | - .flags = PPC_FLAGS_405, | |
2971 | - .msr_mask = 0x00000000020EFF30, | |
2972 | - }, | |
2924 | + /* STB01010 */ | |
2925 | + { | |
2926 | + .name = "STB01010", | |
2927 | + .pvr = CPU_PPC_STB01010, | |
2928 | + .pvr_mask = 0xFFFFFFFF, | |
2929 | + .insns_flags = PPC_INSNS_405, | |
2930 | + .flags = PPC_FLAGS_405, | |
2931 | + .msr_mask = 0x00000000020EFF30, | |
2932 | + }, | |
2973 | 2933 | #endif |
2974 | 2934 | #if defined (TODO) |
2975 | - /* STB25xx */ | |
2976 | - { | |
2977 | - .name = "STB25", | |
2978 | - .pvr = CPU_PPC_STB25, | |
2979 | - .pvr_mask = 0xFFFF0000, | |
2980 | - .insns_flags = PPC_INSNS_405, | |
2981 | - .flags = PPC_FLAGS_405, | |
2982 | - .msr_mask = 0x00000000020EFF30, | |
2983 | - }, | |
2935 | + /* STB0210 */ | |
2936 | + { | |
2937 | + .name = "STB0210", | |
2938 | + .pvr = CPU_PPC_STB0210, | |
2939 | + .pvr_mask = 0xFFFFFFFF, | |
2940 | + .insns_flags = PPC_INSNS_405, | |
2941 | + .flags = PPC_FLAGS_405, | |
2942 | + .msr_mask = 0x00000000020EFF30, | |
2943 | + }, | |
2944 | +#endif | |
2945 | +#if defined (TODO) || 1 | |
2946 | + /* STB03xx */ | |
2947 | + { | |
2948 | + .name = "STB03", | |
2949 | + .pvr = CPU_PPC_STB03, | |
2950 | + .pvr_mask = 0xFFFFFFFF, | |
2951 | + .insns_flags = PPC_INSNS_405, | |
2952 | + .flags = PPC_FLAGS_405, | |
2953 | + .msr_mask = 0x00000000020EFF30, | |
2954 | + }, | |
2984 | 2955 | #endif |
2985 | 2956 | #if defined (TODO) |
2986 | - /* STB130 */ | |
2987 | - { | |
2988 | - .name = "STB130", | |
2989 | - .pvr = CPU_PPC_STB130, | |
2990 | - .pvr_mask = 0xFFFF0000, | |
2991 | - .insns_flags = PPC_INSNS_405, | |
2992 | - .flags = PPC_FLAGS_405, | |
2993 | - .msr_mask = 0x00000000020EFF30, | |
2994 | - }, | |
2957 | + /* STB043x */ | |
2958 | + { | |
2959 | + .name = "STB043", | |
2960 | + .pvr = CPU_PPC_STB043, | |
2961 | + .pvr_mask = 0xFFFFFFFF, | |
2962 | + .insns_flags = PPC_INSNS_405, | |
2963 | + .flags = PPC_FLAGS_405, | |
2964 | + .msr_mask = 0x00000000020EFF30, | |
2965 | + }, | |
2966 | +#endif | |
2967 | +#if defined (TODO) | |
2968 | + /* STB045x */ | |
2969 | + { | |
2970 | + .name = "STB045", | |
2971 | + .pvr = CPU_PPC_STB045, | |
2972 | + .pvr_mask = 0xFFFFFFFF, | |
2973 | + .insns_flags = PPC_INSNS_405, | |
2974 | + .flags = PPC_FLAGS_405, | |
2975 | + .msr_mask = 0x00000000020EFF30, | |
2976 | + }, | |
2977 | +#endif | |
2978 | +#if defined (TODO) || 1 | |
2979 | + /* STB25xx */ | |
2980 | + { | |
2981 | + .name = "STB25", | |
2982 | + .pvr = CPU_PPC_STB25, | |
2983 | + .pvr_mask = 0xFFFFFFFF, | |
2984 | + .insns_flags = PPC_INSNS_405, | |
2985 | + .flags = PPC_FLAGS_405, | |
2986 | + .msr_mask = 0x00000000020EFF30, | |
2987 | + }, | |
2988 | +#endif | |
2989 | +#if defined (TODO) | |
2990 | + /* STB130 */ | |
2991 | + { | |
2992 | + .name = "STB130", | |
2993 | + .pvr = CPU_PPC_STB130, | |
2994 | + .pvr_mask = 0xFFFFFFFF, | |
2995 | + .insns_flags = PPC_INSNS_405, | |
2996 | + .flags = PPC_FLAGS_405, | |
2997 | + .msr_mask = 0x00000000020EFF30, | |
2998 | + }, | |
2995 | 2999 | #endif |
2996 | 3000 | /* Xilinx PowerPC 405 cores */ |
2997 | 3001 | #if defined (TODO) |
2998 | - { | |
2999 | - .name = "x2vp4", | |
3000 | - .pvr = CPU_PPC_X2VP4, | |
3001 | - .pvr_mask = 0xFFFF0000, | |
3002 | - .insns_flags = PPC_INSNS_405, | |
3003 | - .flags = PPC_FLAGS_405, | |
3004 | - .msr_mask = 0x00000000020EFF30, | |
3005 | - }, | |
3006 | - { | |
3007 | - .name = "x2vp7", | |
3008 | - .pvr = CPU_PPC_X2VP7, | |
3009 | - .pvr_mask = 0xFFFF0000, | |
3010 | - .insns_flags = PPC_INSNS_405, | |
3011 | - .flags = PPC_FLAGS_405, | |
3012 | - .msr_mask = 0x00000000020EFF30, | |
3013 | - }, | |
3014 | - { | |
3015 | - .name = "x2vp20", | |
3016 | - .pvr = CPU_PPC_X2VP20, | |
3017 | - .pvr_mask = 0xFFFF0000, | |
3018 | - .insns_flags = PPC_INSNS_405, | |
3019 | - .flags = PPC_FLAGS_405, | |
3020 | - .msr_mask = 0x00000000020EFF30, | |
3021 | - }, | |
3022 | - { | |
3023 | - .name = "x2vp50", | |
3024 | - .pvr = CPU_PPC_X2VP50, | |
3025 | - .pvr_mask = 0xFFFF0000, | |
3026 | - .insns_flags = PPC_INSNS_405, | |
3027 | - .flags = PPC_FLAGS_405, | |
3028 | - .msr_mask = 0x00000000020EFF30, | |
3029 | - }, | |
3030 | -#endif | |
3031 | -#if defined (TODO) | |
3032 | - /* PowerPC 440 EP */ | |
3033 | - { | |
3034 | - .name = "440ep", | |
3035 | - .pvr = CPU_PPC_440EP, | |
3036 | - .pvr_mask = 0xFFFF0000, | |
3037 | - .insns_flags = PPC_INSNS_440, | |
3038 | - .flags = PPC_FLAGS_440, | |
3039 | - .msr_mask = 0x000000000006D630, | |
3040 | - }, | |
3041 | -#endif | |
3042 | -#if defined (TODO) | |
3043 | - /* PowerPC 440 GR */ | |
3044 | - { | |
3045 | - .name = "440gr", | |
3046 | - .pvr = CPU_PPC_440GR, | |
3047 | - .pvr_mask = 0xFFFF0000, | |
3048 | - .insns_flags = PPC_INSNS_440, | |
3049 | - .flags = PPC_FLAGS_440, | |
3050 | - .msr_mask = 0x000000000006D630, | |
3051 | - }, | |
3052 | -#endif | |
3053 | -#if defined (TODO) | |
3054 | - /* PowerPC 440 GP */ | |
3055 | - { | |
3056 | - .name = "440gp", | |
3057 | - .pvr = CPU_PPC_440GP, | |
3058 | - .pvr_mask = 0xFFFFFF00, | |
3059 | - .insns_flags = PPC_INSNS_440, | |
3060 | - .flags = PPC_FLAGS_440, | |
3061 | - .msr_mask = 0x000000000006D630, | |
3062 | - }, | |
3063 | -#endif | |
3064 | -#if defined (TODO) | |
3065 | - /* PowerPC 440 GX */ | |
3066 | - { | |
3067 | - .name = "440gx", | |
3068 | - .pvr = CPU_PPC_440GX, | |
3069 | - .pvr_mask = 0xFFFF0000, | |
3070 | - .insns_flags = PPC_INSNS_405, | |
3071 | - .flags = PPC_FLAGS_440, | |
3072 | - .msr_mask = 0x000000000006D630, | |
3073 | - }, | |
3002 | + { | |
3003 | + .name = "x2vp4", | |
3004 | + .pvr = CPU_PPC_X2VP4, | |
3005 | + .pvr_mask = 0xFFFFFFFF, | |
3006 | + .insns_flags = PPC_INSNS_405, | |
3007 | + .flags = PPC_FLAGS_405, | |
3008 | + .msr_mask = 0x00000000020EFF30, | |
3009 | + }, | |
3010 | + { | |
3011 | + .name = "x2vp7", | |
3012 | + .pvr = CPU_PPC_X2VP7, | |
3013 | + .pvr_mask = 0xFFFFFFFF, | |
3014 | + .insns_flags = PPC_INSNS_405, | |
3015 | + .flags = PPC_FLAGS_405, | |
3016 | + .msr_mask = 0x00000000020EFF30, | |
3017 | + }, | |
3018 | + { | |
3019 | + .name = "x2vp20", | |
3020 | + .pvr = CPU_PPC_X2VP20, | |
3021 | + .pvr_mask = 0xFFFFFFFF, | |
3022 | + .insns_flags = PPC_INSNS_405, | |
3023 | + .flags = PPC_FLAGS_405, | |
3024 | + .msr_mask = 0x00000000020EFF30, | |
3025 | + }, | |
3026 | + { | |
3027 | + .name = "x2vp50", | |
3028 | + .pvr = CPU_PPC_X2VP50, | |
3029 | + .pvr_mask = 0xFFFFFFFF, | |
3030 | + .insns_flags = PPC_INSNS_405, | |
3031 | + .flags = PPC_FLAGS_405, | |
3032 | + .msr_mask = 0x00000000020EFF30, | |
3033 | + }, | |
3074 | 3034 | #endif |
3075 | 3035 | #if defined (TODO) |
3076 | - /* PowerPC 440 GXc */ | |
3077 | - { | |
3078 | - .name = "440gxc", | |
3079 | - .pvr = CPU_PPC_440GXC, | |
3080 | - .pvr_mask = 0xFFFF0000, | |
3081 | - .insns_flags = PPC_INSNS_405, | |
3082 | - .flags = PPC_FLAGS_440, | |
3083 | - .msr_mask = 0x000000000006D630, | |
3084 | - }, | |
3036 | + /* PowerPC 440 EP */ | |
3037 | + { | |
3038 | + .name = "440ep", | |
3039 | + .pvr = CPU_PPC_440EP, | |
3040 | + .pvr_mask = 0xFFFF0000, | |
3041 | + .insns_flags = PPC_INSNS_440, | |
3042 | + .flags = PPC_FLAGS_440, | |
3043 | + .msr_mask = 0x000000000006D630, | |
3044 | + }, | |
3085 | 3045 | #endif |
3086 | 3046 | #if defined (TODO) |
3087 | - /* PowerPC 440 GXf */ | |
3088 | - { | |
3089 | - .name = "440gxf", | |
3090 | - .pvr = CPU_PPC_440GXF, | |
3091 | - .pvr_mask = 0xFFFF0000, | |
3092 | - .insns_flags = PPC_INSNS_405, | |
3093 | - .flags = PPC_FLAGS_440, | |
3094 | - .msr_mask = 0x000000000006D630, | |
3095 | - }, | |
3047 | + /* PowerPC 440 GR */ | |
3048 | + { | |
3049 | + .name = "440gr", | |
3050 | + .pvr = CPU_PPC_440GR, | |
3051 | + .pvr_mask = 0xFFFF0000, | |
3052 | + .insns_flags = PPC_INSNS_440, | |
3053 | + .flags = PPC_FLAGS_440, | |
3054 | + .msr_mask = 0x000000000006D630, | |
3055 | + }, | |
3096 | 3056 | #endif |
3097 | 3057 | #if defined (TODO) |
3098 | - /* PowerPC 440 SP */ | |
3099 | - { | |
3100 | - .name = "440sp", | |
3101 | - .pvr = CPU_PPC_440SP, | |
3102 | - .pvr_mask = 0xFFFF0000, | |
3103 | - .insns_flags = PPC_INSNS_405, | |
3104 | - .flags = PPC_FLAGS_440, | |
3105 | - .msr_mask = 0x000000000006D630, | |
3106 | - }, | |
3058 | + /* PowerPC 440 GP */ | |
3059 | + { | |
3060 | + .name = "440gp", | |
3061 | + .pvr = CPU_PPC_440GP, | |
3062 | + .pvr_mask = 0xFFFFFF00, | |
3063 | + .insns_flags = PPC_INSNS_440, | |
3064 | + .flags = PPC_FLAGS_440, | |
3065 | + .msr_mask = 0x000000000006D630, | |
3066 | + }, | |
3107 | 3067 | #endif |
3108 | 3068 | #if defined (TODO) |
3109 | - /* PowerPC 440 SP2 */ | |
3110 | - { | |
3111 | - .name = "440sp2", | |
3112 | - .pvr = CPU_PPC_440SP2, | |
3113 | - .pvr_mask = 0xFFFF0000, | |
3114 | - .insns_flags = PPC_INSNS_405, | |
3115 | - .flags = PPC_FLAGS_440, | |
3116 | - .msr_mask = 0x000000000006D630, | |
3117 | - }, | |
3069 | + /* PowerPC 440 GX */ | |
3070 | + { | |
3071 | + .name = "440gx", | |
3072 | + .pvr = CPU_PPC_440GX, | |
3073 | + .pvr_mask = 0xFFFF0000, | |
3074 | + .insns_flags = PPC_INSNS_405, | |
3075 | + .flags = PPC_FLAGS_440, | |
3076 | + .msr_mask = 0x000000000006D630, | |
3077 | + }, | |
3118 | 3078 | #endif |
3119 | 3079 | #if defined (TODO) |
3120 | - /* PowerPC 440 SPE */ | |
3121 | - { | |
3122 | - .name = "440spe", | |
3123 | - .pvr = CPU_PPC_440SPE, | |
3124 | - .pvr_mask = 0xFFFF0000, | |
3125 | - .insns_flags = PPC_INSNS_405, | |
3126 | - .flags = PPC_FLAGS_440, | |
3127 | - .msr_mask = 0x000000000006D630, | |
3128 | - }, | |
3129 | -#endif | |
3130 | - /* Fake generic BookE PowerPC */ | |
3131 | - { | |
3132 | - .name = "BookE", | |
3133 | - .pvr = CPU_PPC_e500, | |
3134 | - .pvr_mask = 0xFFFFFFFF, | |
3135 | - .insns_flags = PPC_INSNS_BOOKE, | |
3136 | - .flags = PPC_FLAGS_BOOKE, | |
3137 | - .msr_mask = 0x000000000006D630, | |
3138 | - }, | |
3139 | - /* PowerPC 460 cores - TODO */ | |
3140 | - /* PowerPC MPC 5xx cores - TODO */ | |
3141 | - /* PowerPC MPC 8xx cores - TODO */ | |
3142 | - /* PowerPC MPC 8xxx cores - TODO */ | |
3143 | - /* e200 cores - TODO */ | |
3144 | - /* e500 cores - TODO */ | |
3145 | - /* e600 cores - TODO */ | |
3146 | - | |
3147 | - /* 32 bits "classic" PowerPC */ | |
3148 | -#if defined (TODO) | |
3149 | - /* PowerPC 601 */ | |
3150 | - { | |
3151 | - .name = "601", | |
3152 | - .pvr = CPU_PPC_601, | |
3153 | - .pvr_mask = 0xFFFF0000, | |
3154 | - .insns_flags = PPC_INSNS_601, | |
3155 | - .flags = PPC_FLAGS_601, | |
3156 | - .msr_mask = 0x000000000000FD70, | |
3157 | - }, | |
3158 | -#endif | |
3159 | -#if defined (TODO) | |
3160 | - /* PowerPC 602 */ | |
3161 | - { | |
3162 | - .name = "602", | |
3163 | - .pvr = CPU_PPC_602, | |
3164 | - .pvr_mask = 0xFFFF0000, | |
3165 | - .insns_flags = PPC_INSNS_602, | |
3166 | - .flags = PPC_FLAGS_602, | |
3167 | - .msr_mask = 0x0000000000C7FF73, | |
3168 | - }, | |
3169 | -#endif | |
3170 | - /* PowerPC 603 */ | |
3171 | - { | |
3172 | - .name = "603", | |
3173 | - .pvr = CPU_PPC_603, | |
3174 | - .pvr_mask = 0xFFFFFFFF, | |
3175 | - .insns_flags = PPC_INSNS_603, | |
3176 | - .flags = PPC_FLAGS_603, | |
3177 | - .msr_mask = 0x000000000007FF73, | |
3178 | - }, | |
3179 | - /* PowerPC 603e */ | |
3180 | - { | |
3181 | - .name = "603e", | |
3182 | - .pvr = CPU_PPC_603E, | |
3183 | - .pvr_mask = 0xFFFFFFFF, | |
3184 | - .insns_flags = PPC_INSNS_603, | |
3185 | - .flags = PPC_FLAGS_603, | |
3186 | - .msr_mask = 0x000000000007FF73, | |
3187 | - }, | |
3188 | - { | |
3189 | - .name = "Stretch", | |
3190 | - .pvr = CPU_PPC_603E, | |
3191 | - .pvr_mask = 0xFFFFFFFF, | |
3192 | - .insns_flags = PPC_INSNS_603, | |
3193 | - .flags = PPC_FLAGS_603, | |
3194 | - .msr_mask = 0x000000000007FF73, | |
3195 | - }, | |
3196 | - /* PowerPC 603p */ | |
3197 | - { | |
3198 | - .name = "603p", | |
3199 | - .pvr = CPU_PPC_603P, | |
3200 | - .pvr_mask = 0xFFFFFFFF, | |
3201 | - .insns_flags = PPC_INSNS_603, | |
3202 | - .flags = PPC_FLAGS_603, | |
3203 | - .msr_mask = 0x000000000007FF73, | |
3204 | - }, | |
3205 | - /* PowerPC 603e7 */ | |
3206 | - { | |
3207 | - .name = "603e7", | |
3208 | - .pvr = CPU_PPC_603E7, | |
3209 | - .pvr_mask = 0xFFFFFFFF, | |
3210 | - .insns_flags = PPC_INSNS_603, | |
3211 | - .flags = PPC_FLAGS_603, | |
3212 | - .msr_mask = 0x000000000007FF73, | |
3213 | - }, | |
3214 | - /* PowerPC 603e7v */ | |
3215 | - { | |
3216 | - .name = "603e7v", | |
3217 | - .pvr = CPU_PPC_603E7v, | |
3218 | - .pvr_mask = 0xFFFFFFFF, | |
3219 | - .insns_flags = PPC_INSNS_603, | |
3220 | - .flags = PPC_FLAGS_603, | |
3221 | - .msr_mask = 0x000000000007FF73, | |
3222 | - }, | |
3223 | - /* PowerPC 603e7v2 */ | |
3224 | - { | |
3225 | - .name = "603e7v2", | |
3226 | - .pvr = CPU_PPC_603E7v2, | |
3227 | - .pvr_mask = 0xFFFFFFFF, | |
3228 | - .insns_flags = PPC_INSNS_603, | |
3229 | - .flags = PPC_FLAGS_603, | |
3230 | - .msr_mask = 0x000000000007FF73, | |
3231 | - }, | |
3232 | - /* PowerPC 603r */ | |
3233 | - { | |
3234 | - .name = "603r", | |
3235 | - .pvr = CPU_PPC_603R, | |
3236 | - .pvr_mask = 0xFFFFFFFF, | |
3237 | - .insns_flags = PPC_INSNS_603, | |
3238 | - .flags = PPC_FLAGS_603, | |
3239 | - .msr_mask = 0x000000000007FF73, | |
3240 | - }, | |
3241 | - { | |
3242 | - .name = "Goldeneye", | |
3243 | - .pvr = CPU_PPC_603R, | |
3244 | - .pvr_mask = 0xFFFFFFFF, | |
3245 | - .insns_flags = PPC_INSNS_603, | |
3246 | - .flags = PPC_FLAGS_603, | |
3247 | - .msr_mask = 0x000000000007FF73, | |
3248 | - }, | |
3249 | -#if defined (TODO) | |
3250 | - /* XXX: TODO: according to Motorola UM, this is a derivative to 603e */ | |
3251 | - { | |
3252 | - .name = "G2", | |
3253 | - .pvr = CPU_PPC_G2, | |
3254 | - .pvr_mask = 0xFFFF0000, | |
3255 | - .insns_flags = PPC_INSNS_G2, | |
3256 | - .flags = PPC_FLAGS_G2, | |
3257 | - .msr_mask = 0x000000000006FFF2, | |
3258 | - }, | |
3259 | - { | |
3260 | - .name = "G2h4", | |
3261 | - .pvr = CPU_PPC_G2H4, | |
3262 | - .pvr_mask = 0xFFFF0000, | |
3263 | - .insns_flags = PPC_INSNS_G2, | |
3264 | - .flags = PPC_FLAGS_G2, | |
3265 | - .msr_mask = 0x000000000006FFF2, | |
3266 | - }, | |
3267 | - { | |
3268 | - .name = "G2gp", | |
3269 | - .pvr = CPU_PPC_G2gp, | |
3270 | - .pvr_mask = 0xFFFF0000, | |
3271 | - .insns_flags = PPC_INSNS_G2, | |
3272 | - .flags = PPC_FLAGS_G2, | |
3273 | - .msr_mask = 0x000000000006FFF2, | |
3274 | - }, | |
3275 | - { | |
3276 | - .name = "G2ls", | |
3277 | - .pvr = CPU_PPC_G2ls, | |
3278 | - .pvr_mask = 0xFFFF0000, | |
3279 | - .insns_flags = PPC_INSNS_G2, | |
3280 | - .flags = PPC_FLAGS_G2, | |
3281 | - .msr_mask = 0x000000000006FFF2, | |
3282 | - }, | |
3283 | - { /* Same as G2, with LE mode support */ | |
3284 | - .name = "G2le", | |
3285 | - .pvr = CPU_PPC_G2LE, | |
3286 | - .pvr_mask = 0xFFFF0000, | |
3287 | - .insns_flags = PPC_INSNS_G2, | |
3288 | - .flags = PPC_FLAGS_G2, | |
3289 | - .msr_mask = 0x000000000007FFF3, | |
3290 | - }, | |
3291 | - { | |
3292 | - .name = "G2legp", | |
3293 | - .pvr = CPU_PPC_G2LEgp, | |
3294 | - .pvr_mask = 0xFFFF0000, | |
3295 | - .insns_flags = PPC_INSNS_G2, | |
3296 | - .flags = PPC_FLAGS_G2, | |
3297 | - .msr_mask = 0x000000000007FFF3, | |
3298 | - }, | |
3299 | - { | |
3300 | - .name = "G2lels", | |
3301 | - .pvr = CPU_PPC_G2LEls, | |
3302 | - .pvr_mask = 0xFFFF0000, | |
3303 | - .insns_flags = PPC_INSNS_G2, | |
3304 | - .flags = PPC_FLAGS_G2, | |
3305 | - .msr_mask = 0x000000000007FFF3, | |
3306 | - }, | |
3307 | -#endif | |
3308 | - /* PowerPC 604 */ | |
3309 | - { | |
3310 | - .name = "604", | |
3311 | - .pvr = CPU_PPC_604, | |
3312 | - .pvr_mask = 0xFFFFFFFF, | |
3313 | - .insns_flags = PPC_INSNS_604, | |
3314 | - .flags = PPC_FLAGS_604, | |
3315 | - .msr_mask = 0x000000000005FF77, | |
3316 | - }, | |
3317 | - /* PowerPC 604e */ | |
3318 | - { | |
3319 | - .name = "604e", | |
3320 | - .pvr = CPU_PPC_604E, | |
3321 | - .pvr_mask = 0xFFFFFFFF, | |
3322 | - .insns_flags = PPC_INSNS_604, | |
3323 | - .flags = PPC_FLAGS_604, | |
3324 | - .msr_mask = 0x000000000005FF77, | |
3325 | - }, | |
3326 | - /* PowerPC 604r */ | |
3327 | - { | |
3328 | - .name = "604r", | |
3329 | - .pvr = CPU_PPC_604R, | |
3330 | - .pvr_mask = 0xFFFFFFFF, | |
3331 | - .insns_flags = PPC_INSNS_604, | |
3332 | - .flags = PPC_FLAGS_604, | |
3333 | - .msr_mask = 0x000000000005FF77, | |
3334 | - }, | |
3335 | - /* generic G3 */ | |
3336 | - { | |
3337 | - .name = "G3", | |
3338 | - .pvr = CPU_PPC_74x, | |
3339 | - .pvr_mask = 0xFFFFFFFF, | |
3340 | - .insns_flags = PPC_INSNS_7x0, | |
3341 | - .flags = PPC_FLAGS_7x0, | |
3342 | - .msr_mask = 0x000000000007FF77, | |
3343 | - }, | |
3344 | - /* MPC740 (G3) */ | |
3345 | - { | |
3346 | - .name = "740", | |
3347 | - .pvr = CPU_PPC_74x, | |
3348 | - .pvr_mask = 0xFFFFFFFF, | |
3349 | - .insns_flags = PPC_INSNS_7x0, | |
3350 | - .flags = PPC_FLAGS_7x0, | |
3351 | - .msr_mask = 0x000000000007FF77, | |
3352 | - }, | |
3353 | - { | |
3354 | - .name = "Arthur", | |
3355 | - .pvr = CPU_PPC_74x, | |
3356 | - .pvr_mask = 0xFFFFFFFF, | |
3357 | - .insns_flags = PPC_INSNS_7x0, | |
3358 | - .flags = PPC_FLAGS_7x0, | |
3359 | - .msr_mask = 0x000000000007FF77, | |
3360 | - }, | |
3361 | -#if defined (TODO) | |
3362 | - /* MPC745 (G3) */ | |
3363 | - { | |
3364 | - .name = "745", | |
3365 | - .pvr = CPU_PPC_74x, | |
3366 | - .pvr_mask = 0xFFFFF000, | |
3367 | - .insns_flags = PPC_INSNS_7x5, | |
3368 | - .flags = PPC_FLAGS_7x5, | |
3369 | - .msr_mask = 0x000000000007FF77, | |
3370 | - }, | |
3371 | - { | |
3372 | - .name = "Goldfinger", | |
3373 | - .pvr = CPU_PPC_74x, | |
3374 | - .pvr_mask = 0xFFFFF000, | |
3375 | - .insns_flags = PPC_INSNS_7x5, | |
3376 | - .flags = PPC_FLAGS_7x5, | |
3377 | - .msr_mask = 0x000000000007FF77, | |
3378 | - }, | |
3379 | -#endif | |
3380 | - /* MPC750 (G3) */ | |
3381 | - { | |
3382 | - .name = "750", | |
3383 | - .pvr = CPU_PPC_74x, | |
3384 | - .pvr_mask = 0xFFFFFFFF, | |
3385 | - .insns_flags = PPC_INSNS_7x0, | |
3386 | - .flags = PPC_FLAGS_7x0, | |
3387 | - .msr_mask = 0x000000000007FF77, | |
3388 | - }, | |
3389 | -#if defined (TODO) | |
3390 | - /* MPC755 (G3) */ | |
3391 | - { | |
3392 | - .name = "755", | |
3393 | - .pvr = CPU_PPC_755, | |
3394 | - .pvr_mask = 0xFFFFF000, | |
3395 | - .insns_flags = PPC_INSNS_7x5, | |
3396 | - .flags = PPC_FLAGS_7x5, | |
3397 | - .msr_mask = 0x000000000007FF77, | |
3398 | - }, | |
3399 | -#endif | |
3400 | - /* MPC740P (G3) */ | |
3401 | - { | |
3402 | - .name = "740p", | |
3403 | - .pvr = CPU_PPC_74xP, | |
3404 | - .pvr_mask = 0xFFFFFFFF, | |
3405 | - .insns_flags = PPC_INSNS_7x0, | |
3406 | - .flags = PPC_FLAGS_7x0, | |
3407 | - .msr_mask = 0x000000000007FF77, | |
3408 | - }, | |
3409 | - { | |
3410 | - .name = "Conan/Doyle", | |
3411 | - .pvr = CPU_PPC_74xP, | |
3412 | - .pvr_mask = 0xFFFFFFFF, | |
3413 | - .insns_flags = PPC_INSNS_7x0, | |
3414 | - .flags = PPC_FLAGS_7x0, | |
3415 | - .msr_mask = 0x000000000007FF77, | |
3416 | - }, | |
3417 | -#if defined (TODO) | |
3418 | - /* MPC745P (G3) */ | |
3419 | - { | |
3420 | - .name = "745p", | |
3421 | - .pvr = CPU_PPC_74xP, | |
3422 | - .pvr_mask = 0xFFFFF000, | |
3423 | - .insns_flags = PPC_INSNS_7x5, | |
3424 | - .flags = PPC_FLAGS_7x5, | |
3425 | - .msr_mask = 0x000000000007FF77, | |
3426 | - }, | |
3427 | -#endif | |
3428 | - /* MPC750P (G3) */ | |
3429 | - { | |
3430 | - .name = "750p", | |
3431 | - .pvr = CPU_PPC_74xP, | |
3432 | - .pvr_mask = 0xFFFFFFFF, | |
3433 | - .insns_flags = PPC_INSNS_7x0, | |
3434 | - .flags = PPC_FLAGS_7x0, | |
3435 | - .msr_mask = 0x000000000007FF77, | |
3436 | - }, | |
3437 | -#if defined (TODO) | |
3438 | - /* MPC755P (G3) */ | |
3439 | - { | |
3440 | - .name = "755p", | |
3441 | - .pvr = CPU_PPC_74xP, | |
3442 | - .pvr_mask = 0xFFFFF000, | |
3443 | - .insns_flags = PPC_INSNS_7x5, | |
3444 | - .flags = PPC_FLAGS_7x5, | |
3445 | - .msr_mask = 0x000000000007FF77, | |
3446 | - }, | |
3447 | -#endif | |
3448 | - /* IBM 750CXe (G3 embedded) */ | |
3449 | - { | |
3450 | - .name = "750cxe", | |
3451 | - .pvr = CPU_PPC_750CXE, | |
3452 | - .pvr_mask = 0xFFFFFFFF, | |
3453 | - .insns_flags = PPC_INSNS_7x0, | |
3454 | - .flags = PPC_FLAGS_7x0, | |
3455 | - .msr_mask = 0x000000000007FF77, | |
3456 | - }, | |
3457 | - /* IBM 750FX (G3 embedded) */ | |
3458 | - { | |
3459 | - .name = "750fx", | |
3460 | - .pvr = CPU_PPC_750FX, | |
3461 | - .pvr_mask = 0xFFFFFFFF, | |
3462 | - .insns_flags = PPC_INSNS_7x0, | |
3463 | - .flags = PPC_FLAGS_7x0, | |
3464 | - .msr_mask = 0x000000000007FF77, | |
3465 | - }, | |
3466 | - /* IBM 750GX (G3 embedded) */ | |
3467 | - { | |
3468 | - .name = "750gx", | |
3469 | - .pvr = CPU_PPC_750GX, | |
3470 | - .pvr_mask = 0xFFFFFFFF, | |
3471 | - .insns_flags = PPC_INSNS_7x0, | |
3472 | - .flags = PPC_FLAGS_7x0, | |
3473 | - .msr_mask = 0x000000000007FF77, | |
3474 | - }, | |
3475 | -#if defined (TODO) | |
3476 | - /* generic G4 */ | |
3477 | - { | |
3478 | - .name = "G4", | |
3479 | - .pvr = CPU_PPC_7400, | |
3480 | - .pvr_mask = 0xFFFF0000, | |
3481 | - .insns_flags = PPC_INSNS_74xx, | |
3482 | - .flags = PPC_FLAGS_74xx, | |
3483 | - .msr_mask = 0x000000000205FF77, | |
3484 | - }, | |
3485 | -#endif | |
3486 | -#if defined (TODO) | |
3487 | - /* PowerPC 7400 (G4) */ | |
3488 | - { | |
3489 | - .name = "7400", | |
3490 | - .pvr = CPU_PPC_7400, | |
3491 | - .pvr_mask = 0xFFFF0000, | |
3492 | - .insns_flags = PPC_INSNS_74xx, | |
3493 | - .flags = PPC_FLAGS_74xx, | |
3494 | - .msr_mask = 0x000000000205FF77, | |
3495 | - }, | |
3496 | - { | |
3497 | - .name = "Max", | |
3498 | - .pvr = CPU_PPC_7400, | |
3499 | - .pvr_mask = 0xFFFF0000, | |
3500 | - .insns_flags = PPC_INSNS_74xx, | |
3501 | - .flags = PPC_FLAGS_74xx, | |
3502 | - .msr_mask = 0x000000000205FF77, | |
3503 | - }, | |
3504 | -#endif | |
3505 | -#if defined (TODO) | |
3506 | - /* PowerPC 7410 (G4) */ | |
3507 | - { | |
3508 | - .name = "7410", | |
3509 | - .pvr = CPU_PPC_7410, | |
3510 | - .pvr_mask = 0xFFFF0000, | |
3511 | - .insns_flags = PPC_INSNS_74xx, | |
3512 | - .flags = PPC_FLAGS_74xx, | |
3513 | - .msr_mask = 0x000000000205FF77, | |
3514 | - }, | |
3515 | - { | |
3516 | - .name = "Nitro", | |
3517 | - .pvr = CPU_PPC_7410, | |
3518 | - .pvr_mask = 0xFFFF0000, | |
3519 | - .insns_flags = PPC_INSNS_74xx, | |
3520 | - .flags = PPC_FLAGS_74xx, | |
3521 | - .msr_mask = 0x000000000205FF77, | |
3522 | - }, | |
3523 | -#endif | |
3524 | - /* XXX: 7441 */ | |
3525 | - /* XXX: 7445 */ | |
3526 | - /* XXX: 7447 */ | |
3527 | - /* XXX: 7447A */ | |
3528 | -#if defined (TODO) | |
3529 | - /* PowerPC 7450 (G4) */ | |
3530 | - { | |
3531 | - .name = "7450", | |
3532 | - .pvr = CPU_PPC_7450, | |
3533 | - .pvr_mask = 0xFFFF0000, | |
3534 | - .insns_flags = PPC_INSNS_74xx, | |
3535 | - .flags = PPC_FLAGS_74xx, | |
3536 | - .msr_mask = 0x000000000205FF77, | |
3537 | - }, | |
3538 | - { | |
3539 | - .name = "Vger", | |
3540 | - .pvr = CPU_PPC_7450, | |
3541 | - .pvr_mask = 0xFFFF0000, | |
3542 | - .insns_flags = PPC_INSNS_74xx, | |
3543 | - .flags = PPC_FLAGS_74xx, | |
3544 | - .msr_mask = 0x000000000205FF77, | |
3545 | - }, | |
3546 | -#endif | |
3547 | - /* XXX: 7451 */ | |
3548 | -#if defined (TODO) | |
3549 | - /* PowerPC 7455 (G4) */ | |
3550 | - { | |
3551 | - .name = "7455", | |
3552 | - .pvr = CPU_PPC_7455, | |
3553 | - .pvr_mask = 0xFFFF0000, | |
3554 | - .insns_flags = PPC_INSNS_74xx, | |
3555 | - .flags = PPC_FLAGS_74xx, | |
3556 | - .msr_mask = 0x000000000205FF77, | |
3557 | - }, | |
3558 | - { | |
3559 | - .name = "Apollo 6", | |
3560 | - .pvr = CPU_PPC_7455, | |
3561 | - .pvr_mask = 0xFFFF0000, | |
3562 | - .insns_flags = PPC_INSNS_74xx, | |
3563 | - .flags = PPC_FLAGS_74xx, | |
3564 | - .msr_mask = 0x000000000205FF77, | |
3565 | - }, | |
3566 | -#endif | |
3567 | -#if defined (TODO) | |
3568 | - /* PowerPC 7457 (G4) */ | |
3569 | - { | |
3570 | - .name = "7457", | |
3571 | - .pvr = CPU_PPC_7457, | |
3572 | - .pvr_mask = 0xFFFF0000, | |
3573 | - .insns_flags = PPC_INSNS_74xx, | |
3574 | - .flags = PPC_FLAGS_74xx, | |
3575 | - .msr_mask = 0x000000000205FF77, | |
3576 | - }, | |
3577 | - { | |
3578 | - .name = "Apollo 7", | |
3579 | - .pvr = CPU_PPC_7457, | |
3580 | - .pvr_mask = 0xFFFF0000, | |
3581 | - .insns_flags = PPC_INSNS_74xx, | |
3582 | - .flags = PPC_FLAGS_74xx, | |
3583 | - .msr_mask = 0x000000000205FF77, | |
3584 | - }, | |
3585 | -#endif | |
3586 | -#if defined (TODO) | |
3587 | - /* PowerPC 7457A (G4) */ | |
3588 | - { | |
3589 | - .name = "7457A", | |
3590 | - .pvr = CPU_PPC_7457A, | |
3591 | - .pvr_mask = 0xFFFF0000, | |
3592 | - .insns_flags = PPC_INSNS_74xx, | |
3593 | - .flags = PPC_FLAGS_74xx, | |
3594 | - .msr_mask = 0x000000000205FF77, | |
3595 | - }, | |
3596 | - { | |
3597 | - .name = "Apollo 7 PM", | |
3598 | - .pvr = CPU_PPC_7457A, | |
3599 | - .pvr_mask = 0xFFFF0000, | |
3600 | - .insns_flags = PPC_INSNS_74xx, | |
3601 | - .flags = PPC_FLAGS_74xx, | |
3602 | - .msr_mask = 0x000000000205FF77, | |
3603 | - }, | |
3604 | -#endif | |
3605 | - /* 64 bits PowerPC */ | |
3080 | + /* PowerPC 440 GXc */ | |
3081 | + { | |
3082 | + .name = "440gxc", | |
3083 | + .pvr = CPU_PPC_440GXC, | |
3084 | + .pvr_mask = 0xFFFF0000, | |
3085 | + .insns_flags = PPC_INSNS_405, | |
3086 | + .flags = PPC_FLAGS_440, | |
3087 | + .msr_mask = 0x000000000006D630, | |
3088 | + }, | |
3089 | +#endif | |
3090 | +#if defined (TODO) | |
3091 | + /* PowerPC 440 GXf */ | |
3092 | + { | |
3093 | + .name = "440gxf", | |
3094 | + .pvr = CPU_PPC_440GXF, | |
3095 | + .pvr_mask = 0xFFFF0000, | |
3096 | + .insns_flags = PPC_INSNS_405, | |
3097 | + .flags = PPC_FLAGS_440, | |
3098 | + .msr_mask = 0x000000000006D630, | |
3099 | + }, | |
3100 | +#endif | |
3101 | +#if defined (TODO) | |
3102 | + /* PowerPC 440 SP */ | |
3103 | + { | |
3104 | + .name = "440sp", | |
3105 | + .pvr = CPU_PPC_440SP, | |
3106 | + .pvr_mask = 0xFFFF0000, | |
3107 | + .insns_flags = PPC_INSNS_405, | |
3108 | + .flags = PPC_FLAGS_440, | |
3109 | + .msr_mask = 0x000000000006D630, | |
3110 | + }, | |
3111 | +#endif | |
3112 | +#if defined (TODO) | |
3113 | + /* PowerPC 440 SP2 */ | |
3114 | + { | |
3115 | + .name = "440sp2", | |
3116 | + .pvr = CPU_PPC_440SP2, | |
3117 | + .pvr_mask = 0xFFFF0000, | |
3118 | + .insns_flags = PPC_INSNS_405, | |
3119 | + .flags = PPC_FLAGS_440, | |
3120 | + .msr_mask = 0x000000000006D630, | |
3121 | + }, | |
3122 | +#endif | |
3123 | +#if defined (TODO) | |
3124 | + /* PowerPC 440 SPE */ | |
3125 | + { | |
3126 | + .name = "440spe", | |
3127 | + .pvr = CPU_PPC_440SPE, | |
3128 | + .pvr_mask = 0xFFFF0000, | |
3129 | + .insns_flags = PPC_INSNS_405, | |
3130 | + .flags = PPC_FLAGS_440, | |
3131 | + .msr_mask = 0x000000000006D630, | |
3132 | + }, | |
3133 | +#endif | |
3134 | + /* Fake generic BookE PowerPC */ | |
3135 | + { | |
3136 | + .name = "BookE", | |
3137 | + .pvr = CPU_PPC_e500, | |
3138 | + .pvr_mask = 0xFFFFFFFF, | |
3139 | + .insns_flags = PPC_INSNS_BOOKE, | |
3140 | + .flags = PPC_FLAGS_BOOKE, | |
3141 | + .msr_mask = 0x000000000006D630, | |
3142 | + }, | |
3143 | + /* PowerPC 460 cores - TODO */ | |
3144 | + /* PowerPC MPC 5xx cores - TODO */ | |
3145 | + /* PowerPC MPC 8xx cores - TODO */ | |
3146 | + /* PowerPC MPC 8xxx cores - TODO */ | |
3147 | + /* e200 cores - TODO */ | |
3148 | + /* e500 cores - TODO */ | |
3149 | + /* e600 cores - TODO */ | |
3150 | + | |
3151 | + /* 32 bits "classic" PowerPC */ | |
3152 | +#if defined (TODO) | |
3153 | + /* PowerPC 601 */ | |
3154 | + { | |
3155 | + .name = "601", | |
3156 | + .pvr = CPU_PPC_601, | |
3157 | + .pvr_mask = 0xFFFF0000, | |
3158 | + .insns_flags = PPC_INSNS_601, | |
3159 | + .flags = PPC_FLAGS_601, | |
3160 | + .msr_mask = 0x000000000000FD70, | |
3161 | + }, | |
3162 | +#endif | |
3163 | +#if defined (TODO) | |
3164 | + /* PowerPC 602 */ | |
3165 | + { | |
3166 | + .name = "602", | |
3167 | + .pvr = CPU_PPC_602, | |
3168 | + .pvr_mask = 0xFFFF0000, | |
3169 | + .insns_flags = PPC_INSNS_602, | |
3170 | + .flags = PPC_FLAGS_602, | |
3171 | + .msr_mask = 0x0000000000C7FF73, | |
3172 | + }, | |
3173 | +#endif | |
3174 | + /* PowerPC 603 */ | |
3175 | + { | |
3176 | + .name = "603", | |
3177 | + .pvr = CPU_PPC_603, | |
3178 | + .pvr_mask = 0xFFFFFFFF, | |
3179 | + .insns_flags = PPC_INSNS_603, | |
3180 | + .flags = PPC_FLAGS_603, | |
3181 | + .msr_mask = 0x000000000007FF73, | |
3182 | + }, | |
3183 | + /* PowerPC 603e */ | |
3184 | + { | |
3185 | + .name = "603e", | |
3186 | + .pvr = CPU_PPC_603E, | |
3187 | + .pvr_mask = 0xFFFFFFFF, | |
3188 | + .insns_flags = PPC_INSNS_603, | |
3189 | + .flags = PPC_FLAGS_603, | |
3190 | + .msr_mask = 0x000000000007FF73, | |
3191 | + }, | |
3192 | + { | |
3193 | + .name = "Stretch", | |
3194 | + .pvr = CPU_PPC_603E, | |
3195 | + .pvr_mask = 0xFFFFFFFF, | |
3196 | + .insns_flags = PPC_INSNS_603, | |
3197 | + .flags = PPC_FLAGS_603, | |
3198 | + .msr_mask = 0x000000000007FF73, | |
3199 | + }, | |
3200 | + /* PowerPC 603p */ | |
3201 | + { | |
3202 | + .name = "603p", | |
3203 | + .pvr = CPU_PPC_603P, | |
3204 | + .pvr_mask = 0xFFFFFFFF, | |
3205 | + .insns_flags = PPC_INSNS_603, | |
3206 | + .flags = PPC_FLAGS_603, | |
3207 | + .msr_mask = 0x000000000007FF73, | |
3208 | + }, | |
3209 | + /* PowerPC 603e7 */ | |
3210 | + { | |
3211 | + .name = "603e7", | |
3212 | + .pvr = CPU_PPC_603E7, | |
3213 | + .pvr_mask = 0xFFFFFFFF, | |
3214 | + .insns_flags = PPC_INSNS_603, | |
3215 | + .flags = PPC_FLAGS_603, | |
3216 | + .msr_mask = 0x000000000007FF73, | |
3217 | + }, | |
3218 | + /* PowerPC 603e7v */ | |
3219 | + { | |
3220 | + .name = "603e7v", | |
3221 | + .pvr = CPU_PPC_603E7v, | |
3222 | + .pvr_mask = 0xFFFFFFFF, | |
3223 | + .insns_flags = PPC_INSNS_603, | |
3224 | + .flags = PPC_FLAGS_603, | |
3225 | + .msr_mask = 0x000000000007FF73, | |
3226 | + }, | |
3227 | + /* PowerPC 603e7v2 */ | |
3228 | + { | |
3229 | + .name = "603e7v2", | |
3230 | + .pvr = CPU_PPC_603E7v2, | |
3231 | + .pvr_mask = 0xFFFFFFFF, | |
3232 | + .insns_flags = PPC_INSNS_603, | |
3233 | + .flags = PPC_FLAGS_603, | |
3234 | + .msr_mask = 0x000000000007FF73, | |
3235 | + }, | |
3236 | + /* PowerPC 603r */ | |
3237 | + { | |
3238 | + .name = "603r", | |
3239 | + .pvr = CPU_PPC_603R, | |
3240 | + .pvr_mask = 0xFFFFFFFF, | |
3241 | + .insns_flags = PPC_INSNS_603, | |
3242 | + .flags = PPC_FLAGS_603, | |
3243 | + .msr_mask = 0x000000000007FF73, | |
3244 | + }, | |
3245 | + { | |
3246 | + .name = "Goldeneye", | |
3247 | + .pvr = CPU_PPC_603R, | |
3248 | + .pvr_mask = 0xFFFFFFFF, | |
3249 | + .insns_flags = PPC_INSNS_603, | |
3250 | + .flags = PPC_FLAGS_603, | |
3251 | + .msr_mask = 0x000000000007FF73, | |
3252 | + }, | |
3253 | +#if defined (TODO) | |
3254 | + /* XXX: TODO: according to Motorola UM, this is a derivative to 603e */ | |
3255 | + { | |
3256 | + .name = "G2", | |
3257 | + .pvr = CPU_PPC_G2, | |
3258 | + .pvr_mask = 0xFFFF0000, | |
3259 | + .insns_flags = PPC_INSNS_G2, | |
3260 | + .flags = PPC_FLAGS_G2, | |
3261 | + .msr_mask = 0x000000000006FFF2, | |
3262 | + }, | |
3263 | + { | |
3264 | + .name = "G2h4", | |
3265 | + .pvr = CPU_PPC_G2H4, | |
3266 | + .pvr_mask = 0xFFFF0000, | |
3267 | + .insns_flags = PPC_INSNS_G2, | |
3268 | + .flags = PPC_FLAGS_G2, | |
3269 | + .msr_mask = 0x000000000006FFF2, | |
3270 | + }, | |
3271 | + { | |
3272 | + .name = "G2gp", | |
3273 | + .pvr = CPU_PPC_G2gp, | |
3274 | + .pvr_mask = 0xFFFF0000, | |
3275 | + .insns_flags = PPC_INSNS_G2, | |
3276 | + .flags = PPC_FLAGS_G2, | |
3277 | + .msr_mask = 0x000000000006FFF2, | |
3278 | + }, | |
3279 | + { | |
3280 | + .name = "G2ls", | |
3281 | + .pvr = CPU_PPC_G2ls, | |
3282 | + .pvr_mask = 0xFFFF0000, | |
3283 | + .insns_flags = PPC_INSNS_G2, | |
3284 | + .flags = PPC_FLAGS_G2, | |
3285 | + .msr_mask = 0x000000000006FFF2, | |
3286 | + }, | |
3287 | + { /* Same as G2, with LE mode support */ | |
3288 | + .name = "G2le", | |
3289 | + .pvr = CPU_PPC_G2LE, | |
3290 | + .pvr_mask = 0xFFFF0000, | |
3291 | + .insns_flags = PPC_INSNS_G2, | |
3292 | + .flags = PPC_FLAGS_G2, | |
3293 | + .msr_mask = 0x000000000007FFF3, | |
3294 | + }, | |
3295 | + { | |
3296 | + .name = "G2legp", | |
3297 | + .pvr = CPU_PPC_G2LEgp, | |
3298 | + .pvr_mask = 0xFFFF0000, | |
3299 | + .insns_flags = PPC_INSNS_G2, | |
3300 | + .flags = PPC_FLAGS_G2, | |
3301 | + .msr_mask = 0x000000000007FFF3, | |
3302 | + }, | |
3303 | + { | |
3304 | + .name = "G2lels", | |
3305 | + .pvr = CPU_PPC_G2LEls, | |
3306 | + .pvr_mask = 0xFFFF0000, | |
3307 | + .insns_flags = PPC_INSNS_G2, | |
3308 | + .flags = PPC_FLAGS_G2, | |
3309 | + .msr_mask = 0x000000000007FFF3, | |
3310 | + }, | |
3311 | +#endif | |
3312 | + /* PowerPC 604 */ | |
3313 | + { | |
3314 | + .name = "604", | |
3315 | + .pvr = CPU_PPC_604, | |
3316 | + .pvr_mask = 0xFFFFFFFF, | |
3317 | + .insns_flags = PPC_INSNS_604, | |
3318 | + .flags = PPC_FLAGS_604, | |
3319 | + .msr_mask = 0x000000000005FF77, | |
3320 | + }, | |
3321 | + /* PowerPC 604e */ | |
3322 | + { | |
3323 | + .name = "604e", | |
3324 | + .pvr = CPU_PPC_604E, | |
3325 | + .pvr_mask = 0xFFFFFFFF, | |
3326 | + .insns_flags = PPC_INSNS_604, | |
3327 | + .flags = PPC_FLAGS_604, | |
3328 | + .msr_mask = 0x000000000005FF77, | |
3329 | + }, | |
3330 | + /* PowerPC 604r */ | |
3331 | + { | |
3332 | + .name = "604r", | |
3333 | + .pvr = CPU_PPC_604R, | |
3334 | + .pvr_mask = 0xFFFFFFFF, | |
3335 | + .insns_flags = PPC_INSNS_604, | |
3336 | + .flags = PPC_FLAGS_604, | |
3337 | + .msr_mask = 0x000000000005FF77, | |
3338 | + }, | |
3339 | + /* generic G3 */ | |
3340 | + { | |
3341 | + .name = "G3", | |
3342 | + .pvr = CPU_PPC_74x, | |
3343 | + .pvr_mask = 0xFFFFFFFF, | |
3344 | + .insns_flags = PPC_INSNS_7x0, | |
3345 | + .flags = PPC_FLAGS_7x0, | |
3346 | + .msr_mask = 0x000000000007FF77, | |
3347 | + }, | |
3348 | + /* MPC740 (G3) */ | |
3349 | + { | |
3350 | + .name = "740", | |
3351 | + .pvr = CPU_PPC_74x, | |
3352 | + .pvr_mask = 0xFFFFFFFF, | |
3353 | + .insns_flags = PPC_INSNS_7x0, | |
3354 | + .flags = PPC_FLAGS_7x0, | |
3355 | + .msr_mask = 0x000000000007FF77, | |
3356 | + }, | |
3357 | + { | |
3358 | + .name = "Arthur", | |
3359 | + .pvr = CPU_PPC_74x, | |
3360 | + .pvr_mask = 0xFFFFFFFF, | |
3361 | + .insns_flags = PPC_INSNS_7x0, | |
3362 | + .flags = PPC_FLAGS_7x0, | |
3363 | + .msr_mask = 0x000000000007FF77, | |
3364 | + }, | |
3365 | +#if defined (TODO) | |
3366 | + /* MPC745 (G3) */ | |
3367 | + { | |
3368 | + .name = "745", | |
3369 | + .pvr = CPU_PPC_74x, | |
3370 | + .pvr_mask = 0xFFFFF000, | |
3371 | + .insns_flags = PPC_INSNS_7x5, | |
3372 | + .flags = PPC_FLAGS_7x5, | |
3373 | + .msr_mask = 0x000000000007FF77, | |
3374 | + }, | |
3375 | + { | |
3376 | + .name = "Goldfinger", | |
3377 | + .pvr = CPU_PPC_74x, | |
3378 | + .pvr_mask = 0xFFFFF000, | |
3379 | + .insns_flags = PPC_INSNS_7x5, | |
3380 | + .flags = PPC_FLAGS_7x5, | |
3381 | + .msr_mask = 0x000000000007FF77, | |
3382 | + }, | |
3383 | +#endif | |
3384 | + /* MPC750 (G3) */ | |
3385 | + { | |
3386 | + .name = "750", | |
3387 | + .pvr = CPU_PPC_74x, | |
3388 | + .pvr_mask = 0xFFFFFFFF, | |
3389 | + .insns_flags = PPC_INSNS_7x0, | |
3390 | + .flags = PPC_FLAGS_7x0, | |
3391 | + .msr_mask = 0x000000000007FF77, | |
3392 | + }, | |
3393 | +#if defined (TODO) | |
3394 | + /* MPC755 (G3) */ | |
3395 | + { | |
3396 | + .name = "755", | |
3397 | + .pvr = CPU_PPC_755, | |
3398 | + .pvr_mask = 0xFFFFF000, | |
3399 | + .insns_flags = PPC_INSNS_7x5, | |
3400 | + .flags = PPC_FLAGS_7x5, | |
3401 | + .msr_mask = 0x000000000007FF77, | |
3402 | + }, | |
3403 | +#endif | |
3404 | + /* MPC740P (G3) */ | |
3405 | + { | |
3406 | + .name = "740p", | |
3407 | + .pvr = CPU_PPC_74xP, | |
3408 | + .pvr_mask = 0xFFFFFFFF, | |
3409 | + .insns_flags = PPC_INSNS_7x0, | |
3410 | + .flags = PPC_FLAGS_7x0, | |
3411 | + .msr_mask = 0x000000000007FF77, | |
3412 | + }, | |
3413 | + { | |
3414 | + .name = "Conan/Doyle", | |
3415 | + .pvr = CPU_PPC_74xP, | |
3416 | + .pvr_mask = 0xFFFFFFFF, | |
3417 | + .insns_flags = PPC_INSNS_7x0, | |
3418 | + .flags = PPC_FLAGS_7x0, | |
3419 | + .msr_mask = 0x000000000007FF77, | |
3420 | + }, | |
3421 | +#if defined (TODO) | |
3422 | + /* MPC745P (G3) */ | |
3423 | + { | |
3424 | + .name = "745p", | |
3425 | + .pvr = CPU_PPC_74xP, | |
3426 | + .pvr_mask = 0xFFFFF000, | |
3427 | + .insns_flags = PPC_INSNS_7x5, | |
3428 | + .flags = PPC_FLAGS_7x5, | |
3429 | + .msr_mask = 0x000000000007FF77, | |
3430 | + }, | |
3431 | +#endif | |
3432 | + /* MPC750P (G3) */ | |
3433 | + { | |
3434 | + .name = "750p", | |
3435 | + .pvr = CPU_PPC_74xP, | |
3436 | + .pvr_mask = 0xFFFFFFFF, | |
3437 | + .insns_flags = PPC_INSNS_7x0, | |
3438 | + .flags = PPC_FLAGS_7x0, | |
3439 | + .msr_mask = 0x000000000007FF77, | |
3440 | + }, | |
3441 | +#if defined (TODO) | |
3442 | + /* MPC755P (G3) */ | |
3443 | + { | |
3444 | + .name = "755p", | |
3445 | + .pvr = CPU_PPC_74xP, | |
3446 | + .pvr_mask = 0xFFFFF000, | |
3447 | + .insns_flags = PPC_INSNS_7x5, | |
3448 | + .flags = PPC_FLAGS_7x5, | |
3449 | + .msr_mask = 0x000000000007FF77, | |
3450 | + }, | |
3451 | +#endif | |
3452 | + /* IBM 750CXe (G3 embedded) */ | |
3453 | + { | |
3454 | + .name = "750cxe", | |
3455 | + .pvr = CPU_PPC_750CXE, | |
3456 | + .pvr_mask = 0xFFFFFFFF, | |
3457 | + .insns_flags = PPC_INSNS_7x0, | |
3458 | + .flags = PPC_FLAGS_7x0, | |
3459 | + .msr_mask = 0x000000000007FF77, | |
3460 | + }, | |
3461 | + /* IBM 750FX (G3 embedded) */ | |
3462 | + { | |
3463 | + .name = "750fx", | |
3464 | + .pvr = CPU_PPC_750FX, | |
3465 | + .pvr_mask = 0xFFFFFFFF, | |
3466 | + .insns_flags = PPC_INSNS_7x0, | |
3467 | + .flags = PPC_FLAGS_7x0, | |
3468 | + .msr_mask = 0x000000000007FF77, | |
3469 | + }, | |
3470 | + /* IBM 750GX (G3 embedded) */ | |
3471 | + { | |
3472 | + .name = "750gx", | |
3473 | + .pvr = CPU_PPC_750GX, | |
3474 | + .pvr_mask = 0xFFFFFFFF, | |
3475 | + .insns_flags = PPC_INSNS_7x0, | |
3476 | + .flags = PPC_FLAGS_7x0, | |
3477 | + .msr_mask = 0x000000000007FF77, | |
3478 | + }, | |
3479 | +#if defined (TODO) | |
3480 | + /* generic G4 */ | |
3481 | + { | |
3482 | + .name = "G4", | |
3483 | + .pvr = CPU_PPC_7400, | |
3484 | + .pvr_mask = 0xFFFF0000, | |
3485 | + .insns_flags = PPC_INSNS_74xx, | |
3486 | + .flags = PPC_FLAGS_74xx, | |
3487 | + .msr_mask = 0x000000000205FF77, | |
3488 | + }, | |
3489 | +#endif | |
3490 | +#if defined (TODO) | |
3491 | + /* PowerPC 7400 (G4) */ | |
3492 | + { | |
3493 | + .name = "7400", | |
3494 | + .pvr = CPU_PPC_7400, | |
3495 | + .pvr_mask = 0xFFFF0000, | |
3496 | + .insns_flags = PPC_INSNS_74xx, | |
3497 | + .flags = PPC_FLAGS_74xx, | |
3498 | + .msr_mask = 0x000000000205FF77, | |
3499 | + }, | |
3500 | + { | |
3501 | + .name = "Max", | |
3502 | + .pvr = CPU_PPC_7400, | |
3503 | + .pvr_mask = 0xFFFF0000, | |
3504 | + .insns_flags = PPC_INSNS_74xx, | |
3505 | + .flags = PPC_FLAGS_74xx, | |
3506 | + .msr_mask = 0x000000000205FF77, | |
3507 | + }, | |
3508 | +#endif | |
3509 | +#if defined (TODO) | |
3510 | + /* PowerPC 7410 (G4) */ | |
3511 | + { | |
3512 | + .name = "7410", | |
3513 | + .pvr = CPU_PPC_7410, | |
3514 | + .pvr_mask = 0xFFFF0000, | |
3515 | + .insns_flags = PPC_INSNS_74xx, | |
3516 | + .flags = PPC_FLAGS_74xx, | |
3517 | + .msr_mask = 0x000000000205FF77, | |
3518 | + }, | |
3519 | + { | |
3520 | + .name = "Nitro", | |
3521 | + .pvr = CPU_PPC_7410, | |
3522 | + .pvr_mask = 0xFFFF0000, | |
3523 | + .insns_flags = PPC_INSNS_74xx, | |
3524 | + .flags = PPC_FLAGS_74xx, | |
3525 | + .msr_mask = 0x000000000205FF77, | |
3526 | + }, | |
3527 | +#endif | |
3528 | + /* XXX: 7441 */ | |
3529 | + /* XXX: 7445 */ | |
3530 | + /* XXX: 7447 */ | |
3531 | + /* XXX: 7447A */ | |
3532 | +#if defined (TODO) | |
3533 | + /* PowerPC 7450 (G4) */ | |
3534 | + { | |
3535 | + .name = "7450", | |
3536 | + .pvr = CPU_PPC_7450, | |
3537 | + .pvr_mask = 0xFFFF0000, | |
3538 | + .insns_flags = PPC_INSNS_74xx, | |
3539 | + .flags = PPC_FLAGS_74xx, | |
3540 | + .msr_mask = 0x000000000205FF77, | |
3541 | + }, | |
3542 | + { | |
3543 | + .name = "Vger", | |
3544 | + .pvr = CPU_PPC_7450, | |
3545 | + .pvr_mask = 0xFFFF0000, | |
3546 | + .insns_flags = PPC_INSNS_74xx, | |
3547 | + .flags = PPC_FLAGS_74xx, | |
3548 | + .msr_mask = 0x000000000205FF77, | |
3549 | + }, | |
3550 | +#endif | |
3551 | + /* XXX: 7451 */ | |
3552 | +#if defined (TODO) | |
3553 | + /* PowerPC 7455 (G4) */ | |
3554 | + { | |
3555 | + .name = "7455", | |
3556 | + .pvr = CPU_PPC_7455, | |
3557 | + .pvr_mask = 0xFFFF0000, | |
3558 | + .insns_flags = PPC_INSNS_74xx, | |
3559 | + .flags = PPC_FLAGS_74xx, | |
3560 | + .msr_mask = 0x000000000205FF77, | |
3561 | + }, | |
3562 | + { | |
3563 | + .name = "Apollo 6", | |
3564 | + .pvr = CPU_PPC_7455, | |
3565 | + .pvr_mask = 0xFFFF0000, | |
3566 | + .insns_flags = PPC_INSNS_74xx, | |
3567 | + .flags = PPC_FLAGS_74xx, | |
3568 | + .msr_mask = 0x000000000205FF77, | |
3569 | + }, | |
3570 | +#endif | |
3571 | +#if defined (TODO) | |
3572 | + /* PowerPC 7457 (G4) */ | |
3573 | + { | |
3574 | + .name = "7457", | |
3575 | + .pvr = CPU_PPC_7457, | |
3576 | + .pvr_mask = 0xFFFF0000, | |
3577 | + .insns_flags = PPC_INSNS_74xx, | |
3578 | + .flags = PPC_FLAGS_74xx, | |
3579 | + .msr_mask = 0x000000000205FF77, | |
3580 | + }, | |
3581 | + { | |
3582 | + .name = "Apollo 7", | |
3583 | + .pvr = CPU_PPC_7457, | |
3584 | + .pvr_mask = 0xFFFF0000, | |
3585 | + .insns_flags = PPC_INSNS_74xx, | |
3586 | + .flags = PPC_FLAGS_74xx, | |
3587 | + .msr_mask = 0x000000000205FF77, | |
3588 | + }, | |
3589 | +#endif | |
3590 | +#if defined (TODO) | |
3591 | + /* PowerPC 7457A (G4) */ | |
3592 | + { | |
3593 | + .name = "7457A", | |
3594 | + .pvr = CPU_PPC_7457A, | |
3595 | + .pvr_mask = 0xFFFF0000, | |
3596 | + .insns_flags = PPC_INSNS_74xx, | |
3597 | + .flags = PPC_FLAGS_74xx, | |
3598 | + .msr_mask = 0x000000000205FF77, | |
3599 | + }, | |
3600 | + { | |
3601 | + .name = "Apollo 7 PM", | |
3602 | + .pvr = CPU_PPC_7457A, | |
3603 | + .pvr_mask = 0xFFFF0000, | |
3604 | + .insns_flags = PPC_INSNS_74xx, | |
3605 | + .flags = PPC_FLAGS_74xx, | |
3606 | + .msr_mask = 0x000000000205FF77, | |
3607 | + }, | |
3608 | +#endif | |
3609 | + /* 64 bits PowerPC */ | |
3606 | 3610 | #if defined (TARGET_PPC64) |
3607 | 3611 | #if defined (TODO) |
3608 | - /* PowerPC 620 */ | |
3609 | - { | |
3610 | - .name = "620", | |
3611 | - .pvr = CPU_PPC_620, | |
3612 | - .pvr_mask = 0xFFFF0000, | |
3613 | - .insns_flags = PPC_INSNS_620, | |
3614 | - .flags = PPC_FLAGS_620, | |
3615 | - .msr_mask = 0x800000000005FF73, | |
3616 | - }, | |
3617 | -#endif | |
3618 | -#if defined (TODO) | |
3619 | - /* PowerPC 630 (POWER3) */ | |
3620 | - { | |
3621 | - .name = "630", | |
3622 | - .pvr = CPU_PPC_630, | |
3623 | - .pvr_mask = 0xFFFF0000, | |
3624 | - .insns_flags = PPC_INSNS_630, | |
3625 | - .flags = PPC_FLAGS_630, | |
3626 | - .msr_mask = xxx, | |
3627 | - } | |
3628 | - { | |
3629 | - .name = "POWER3", | |
3630 | - .pvr = CPU_PPC_630, | |
3631 | - .pvr_mask = 0xFFFF0000, | |
3632 | - .insns_flags = PPC_INSNS_630, | |
3633 | - .flags = PPC_FLAGS_630, | |
3634 | - .msr_mask = xxx, | |
3635 | - } | |
3612 | + /* PowerPC 620 */ | |
3613 | + { | |
3614 | + .name = "620", | |
3615 | + .pvr = CPU_PPC_620, | |
3616 | + .pvr_mask = 0xFFFF0000, | |
3617 | + .insns_flags = PPC_INSNS_620, | |
3618 | + .flags = PPC_FLAGS_620, | |
3619 | + .msr_mask = 0x800000000005FF73, | |
3620 | + }, | |
3636 | 3621 | #endif |
3637 | 3622 | #if defined (TODO) |
3638 | - /* PowerPC 631 (Power 3+)*/ | |
3639 | - { | |
3640 | - .name = "631", | |
3641 | - .pvr = CPU_PPC_631, | |
3642 | - .pvr_mask = 0xFFFF0000, | |
3643 | - .insns_flags = PPC_INSNS_631, | |
3644 | - .flags = PPC_FLAGS_631, | |
3645 | - .msr_mask = xxx, | |
3646 | - }, | |
3647 | - { | |
3648 | - .name = "POWER3+", | |
3649 | - .pvr = CPU_PPC_631, | |
3650 | - .pvr_mask = 0xFFFF0000, | |
3651 | - .insns_flags = PPC_INSNS_631, | |
3652 | - .flags = PPC_FLAGS_631, | |
3653 | - .msr_mask = xxx, | |
3654 | - }, | |
3655 | -#endif | |
3656 | -#if defined (TODO) | |
3657 | - /* POWER4 */ | |
3658 | - { | |
3659 | - .name = "POWER4", | |
3660 | - .pvr = CPU_PPC_POWER4, | |
3661 | - .pvr_mask = 0xFFFF0000, | |
3662 | - .insns_flags = PPC_INSNS_POWER4, | |
3663 | - .flags = PPC_FLAGS_POWER4, | |
3664 | - .msr_mask = xxx, | |
3665 | - }, | |
3666 | -#endif | |
3667 | -#if defined (TODO) | |
3668 | - /* POWER4p */ | |
3669 | - { | |
3670 | - .name = "POWER4+", | |
3671 | - .pvr = CPU_PPC_POWER4P, | |
3672 | - .pvr_mask = 0xFFFF0000, | |
3673 | - .insns_flags = PPC_INSNS_POWER4, | |
3674 | - .flags = PPC_FLAGS_POWER4, | |
3675 | - .msr_mask = xxx, | |
3676 | - }, | |
3677 | -#endif | |
3678 | -#if defined (TODO) | |
3679 | - /* POWER5 */ | |
3680 | - { | |
3681 | - .name = "POWER5", | |
3682 | - .pvr = CPU_PPC_POWER5, | |
3683 | - .pvr_mask = 0xFFFF0000, | |
3684 | - .insns_flags = PPC_INSNS_POWER5, | |
3685 | - .flags = PPC_FLAGS_POWER5, | |
3686 | - .msr_mask = xxx, | |
3687 | - }, | |
3688 | -#endif | |
3689 | -#if defined (TODO) | |
3690 | - /* POWER5+ */ | |
3691 | - { | |
3692 | - .name = "POWER5+", | |
3693 | - .pvr = CPU_PPC_POWER5P, | |
3694 | - .pvr_mask = 0xFFFF0000, | |
3695 | - .insns_flags = PPC_INSNS_POWER5, | |
3696 | - .flags = PPC_FLAGS_POWER5, | |
3697 | - .msr_mask = xxx, | |
3698 | - }, | |
3699 | -#endif | |
3700 | -#if defined (TODO) | |
3701 | - /* PowerPC 970 */ | |
3702 | - { | |
3703 | - .name = "970", | |
3704 | - .pvr = CPU_PPC_970, | |
3705 | - .pvr_mask = 0xFFFF0000, | |
3706 | - .insns_flags = PPC_INSNS_970, | |
3707 | - .flags = PPC_FLAGS_970, | |
3708 | - .msr_mask = 0x900000000204FF36, | |
3709 | - }, | |
3710 | -#endif | |
3711 | -#if defined (TODO) | |
3712 | - /* PowerPC 970FX (G5) */ | |
3713 | - { | |
3714 | - .name = "970fx", | |
3715 | - .pvr = CPU_PPC_970FX, | |
3716 | - .pvr_mask = 0xFFFF0000, | |
3717 | - .insns_flags = PPC_INSNS_970FX, | |
3718 | - .flags = PPC_FLAGS_970FX, | |
3719 | - .msr_mask = 0x800000000204FF36, | |
3720 | - }, | |
3721 | -#endif | |
3722 | -#if defined (TODO) | |
3723 | - /* RS64 (Apache/A35) */ | |
3724 | - /* This one seems to support the whole POWER2 instruction set | |
3725 | - * and the PowerPC 64 one. | |
3726 | - */ | |
3727 | - { | |
3728 | - .name = "RS64", | |
3729 | - .pvr = CPU_PPC_RS64, | |
3730 | - .pvr_mask = 0xFFFF0000, | |
3731 | - .insns_flags = PPC_INSNS_RS64, | |
3732 | - .flags = PPC_FLAGS_RS64, | |
3733 | - .msr_mask = xxx, | |
3734 | - }, | |
3735 | - { | |
3736 | - .name = "Apache", | |
3737 | - .pvr = CPU_PPC_RS64, | |
3738 | - .pvr_mask = 0xFFFF0000, | |
3739 | - .insns_flags = PPC_INSNS_RS64, | |
3740 | - .flags = PPC_FLAGS_RS64, | |
3741 | - .msr_mask = xxx, | |
3742 | - }, | |
3743 | - { | |
3744 | - .name = "A35", | |
3745 | - .pvr = CPU_PPC_RS64, | |
3746 | - .pvr_mask = 0xFFFF0000, | |
3747 | - .insns_flags = PPC_INSNS_RS64, | |
3748 | - .flags = PPC_FLAGS_RS64, | |
3749 | - .msr_mask = xxx, | |
3750 | - }, | |
3751 | -#endif | |
3752 | -#if defined (TODO) | |
3753 | - /* RS64-II (NorthStar/A50) */ | |
3754 | - { | |
3755 | - .name = "RS64-II", | |
3756 | - .pvr = CPU_PPC_RS64II, | |
3757 | - .pvr_mask = 0xFFFF0000, | |
3758 | - .insns_flags = PPC_INSNS_RS64, | |
3759 | - .flags = PPC_FLAGS_RS64, | |
3760 | - .msr_mask = xxx, | |
3761 | - }, | |
3762 | - { | |
3763 | - .name = "NortStar", | |
3764 | - .pvr = CPU_PPC_RS64II, | |
3765 | - .pvr_mask = 0xFFFF0000, | |
3766 | - .insns_flags = PPC_INSNS_RS64, | |
3767 | - .flags = PPC_FLAGS_RS64, | |
3768 | - .msr_mask = xxx, | |
3769 | - }, | |
3770 | - { | |
3771 | - .name = "A50", | |
3772 | - .pvr = CPU_PPC_RS64II, | |
3773 | - .pvr_mask = 0xFFFF0000, | |
3774 | - .insns_flags = PPC_INSNS_RS64, | |
3775 | - .flags = PPC_FLAGS_RS64, | |
3776 | - .msr_mask = xxx, | |
3777 | - }, | |
3778 | -#endif | |
3779 | -#if defined (TODO) | |
3780 | - /* RS64-III (Pulsar) */ | |
3781 | - { | |
3782 | - .name = "RS64-III", | |
3783 | - .pvr = CPU_PPC_RS64III, | |
3784 | - .pvr_mask = 0xFFFF0000, | |
3785 | - .insns_flags = PPC_INSNS_RS64, | |
3786 | - .flags = PPC_FLAGS_RS64, | |
3787 | - .msr_mask = xxx, | |
3788 | - }, | |
3789 | - { | |
3790 | - .name = "Pulsar", | |
3791 | - .pvr = CPU_PPC_RS64III, | |
3792 | - .pvr_mask = 0xFFFF0000, | |
3793 | - .insns_flags = PPC_INSNS_RS64, | |
3794 | - .flags = PPC_FLAGS_RS64, | |
3795 | - .msr_mask = xxx, | |
3796 | - }, | |
3797 | -#endif | |
3798 | -#if defined (TODO) | |
3799 | - /* RS64-IV (IceStar/IStar/SStar) */ | |
3800 | - { | |
3801 | - .name = "RS64-IV", | |
3802 | - .pvr = CPU_PPC_RS64IV, | |
3803 | - .pvr_mask = 0xFFFF0000, | |
3804 | - .insns_flags = PPC_INSNS_RS64, | |
3805 | - .flags = PPC_FLAGS_RS64, | |
3806 | - .msr_mask = xxx, | |
3807 | - }, | |
3808 | - { | |
3809 | - .name = "IceStar", | |
3810 | - .pvr = CPU_PPC_RS64IV, | |
3811 | - .pvr_mask = 0xFFFF0000, | |
3812 | - .insns_flags = PPC_INSNS_RS64, | |
3813 | - .flags = PPC_FLAGS_RS64, | |
3814 | - .msr_mask = xxx, | |
3815 | - }, | |
3816 | - { | |
3817 | - .name = "IStar", | |
3818 | - .pvr = CPU_PPC_RS64IV, | |
3819 | - .pvr_mask = 0xFFFF0000, | |
3820 | - .insns_flags = PPC_INSNS_RS64, | |
3821 | - .flags = PPC_FLAGS_RS64, | |
3822 | - .msr_mask = xxx, | |
3823 | - }, | |
3824 | - { | |
3825 | - .name = "SStar", | |
3826 | - .pvr = CPU_PPC_RS64IV, | |
3827 | - .pvr_mask = 0xFFFF0000, | |
3828 | - .insns_flags = PPC_INSNS_RS64, | |
3829 | - .flags = PPC_FLAGS_RS64, | |
3830 | - .msr_mask = xxx, | |
3831 | - }, | |
3832 | -#endif | |
3833 | - /* POWER */ | |
3834 | -#if defined (TODO) | |
3835 | - /* Original POWER */ | |
3836 | - { | |
3837 | - .name = "POWER", | |
3838 | - .pvr = CPU_POWER, | |
3839 | - .pvr_mask = 0xFFFF0000, | |
3840 | - .insns_flags = PPC_INSNS_POWER, | |
3841 | - .flags = PPC_FLAGS_POWER, | |
3842 | - .msr_mask = xxx, | |
3843 | - }, | |
3623 | + /* PowerPC 630 (POWER3) */ | |
3624 | + { | |
3625 | + .name = "630", | |
3626 | + .pvr = CPU_PPC_630, | |
3627 | + .pvr_mask = 0xFFFF0000, | |
3628 | + .insns_flags = PPC_INSNS_630, | |
3629 | + .flags = PPC_FLAGS_630, | |
3630 | + .msr_mask = xxx, | |
3631 | + } | |
3632 | + { | |
3633 | + .name = "POWER3", | |
3634 | + .pvr = CPU_PPC_630, | |
3635 | + .pvr_mask = 0xFFFF0000, | |
3636 | + .insns_flags = PPC_INSNS_630, | |
3637 | + .flags = PPC_FLAGS_630, | |
3638 | + .msr_mask = xxx, | |
3639 | + } | |
3640 | +#endif | |
3641 | +#if defined (TODO) | |
3642 | + /* PowerPC 631 (Power 3+)*/ | |
3643 | + { | |
3644 | + .name = "631", | |
3645 | + .pvr = CPU_PPC_631, | |
3646 | + .pvr_mask = 0xFFFF0000, | |
3647 | + .insns_flags = PPC_INSNS_631, | |
3648 | + .flags = PPC_FLAGS_631, | |
3649 | + .msr_mask = xxx, | |
3650 | + }, | |
3651 | + { | |
3652 | + .name = "POWER3+", | |
3653 | + .pvr = CPU_PPC_631, | |
3654 | + .pvr_mask = 0xFFFF0000, | |
3655 | + .insns_flags = PPC_INSNS_631, | |
3656 | + .flags = PPC_FLAGS_631, | |
3657 | + .msr_mask = xxx, | |
3658 | + }, | |
3659 | +#endif | |
3660 | +#if defined (TODO) | |
3661 | + /* POWER4 */ | |
3662 | + { | |
3663 | + .name = "POWER4", | |
3664 | + .pvr = CPU_PPC_POWER4, | |
3665 | + .pvr_mask = 0xFFFF0000, | |
3666 | + .insns_flags = PPC_INSNS_POWER4, | |
3667 | + .flags = PPC_FLAGS_POWER4, | |
3668 | + .msr_mask = xxx, | |
3669 | + }, | |
3670 | +#endif | |
3671 | +#if defined (TODO) | |
3672 | + /* POWER4p */ | |
3673 | + { | |
3674 | + .name = "POWER4+", | |
3675 | + .pvr = CPU_PPC_POWER4P, | |
3676 | + .pvr_mask = 0xFFFF0000, | |
3677 | + .insns_flags = PPC_INSNS_POWER4, | |
3678 | + .flags = PPC_FLAGS_POWER4, | |
3679 | + .msr_mask = xxx, | |
3680 | + }, | |
3681 | +#endif | |
3682 | +#if defined (TODO) | |
3683 | + /* POWER5 */ | |
3684 | + { | |
3685 | + .name = "POWER5", | |
3686 | + .pvr = CPU_PPC_POWER5, | |
3687 | + .pvr_mask = 0xFFFF0000, | |
3688 | + .insns_flags = PPC_INSNS_POWER5, | |
3689 | + .flags = PPC_FLAGS_POWER5, | |
3690 | + .msr_mask = xxx, | |
3691 | + }, | |
3692 | +#endif | |
3693 | +#if defined (TODO) | |
3694 | + /* POWER5+ */ | |
3695 | + { | |
3696 | + .name = "POWER5+", | |
3697 | + .pvr = CPU_PPC_POWER5P, | |
3698 | + .pvr_mask = 0xFFFF0000, | |
3699 | + .insns_flags = PPC_INSNS_POWER5, | |
3700 | + .flags = PPC_FLAGS_POWER5, | |
3701 | + .msr_mask = xxx, | |
3702 | + }, | |
3703 | +#endif | |
3704 | +#if defined (TODO) || 1 | |
3705 | + /* PowerPC 970 */ | |
3706 | + { | |
3707 | + .name = "970", | |
3708 | + .pvr = CPU_PPC_970, | |
3709 | + .pvr_mask = 0xFFFF0000, | |
3710 | + .insns_flags = PPC_INSNS_970, | |
3711 | + .flags = PPC_FLAGS_970, | |
3712 | + .msr_mask = 0x900000000204FF36, | |
3713 | + }, | |
3714 | +#endif | |
3715 | +#if defined (TODO) | |
3716 | + /* PowerPC 970FX (G5) */ | |
3717 | + { | |
3718 | + .name = "970fx", | |
3719 | + .pvr = CPU_PPC_970FX, | |
3720 | + .pvr_mask = 0xFFFF0000, | |
3721 | + .insns_flags = PPC_INSNS_970FX, | |
3722 | + .flags = PPC_FLAGS_970FX, | |
3723 | + .msr_mask = 0x800000000204FF36, | |
3724 | + }, | |
3725 | +#endif | |
3726 | +#if defined (TODO) | |
3727 | + /* RS64 (Apache/A35) */ | |
3728 | + /* This one seems to support the whole POWER2 instruction set | |
3729 | + * and the PowerPC 64 one. | |
3730 | + */ | |
3731 | + { | |
3732 | + .name = "RS64", | |
3733 | + .pvr = CPU_PPC_RS64, | |
3734 | + .pvr_mask = 0xFFFF0000, | |
3735 | + .insns_flags = PPC_INSNS_RS64, | |
3736 | + .flags = PPC_FLAGS_RS64, | |
3737 | + .msr_mask = xxx, | |
3738 | + }, | |
3739 | + { | |
3740 | + .name = "Apache", | |
3741 | + .pvr = CPU_PPC_RS64, | |
3742 | + .pvr_mask = 0xFFFF0000, | |
3743 | + .insns_flags = PPC_INSNS_RS64, | |
3744 | + .flags = PPC_FLAGS_RS64, | |
3745 | + .msr_mask = xxx, | |
3746 | + }, | |
3747 | + { | |
3748 | + .name = "A35", | |
3749 | + .pvr = CPU_PPC_RS64, | |
3750 | + .pvr_mask = 0xFFFF0000, | |
3751 | + .insns_flags = PPC_INSNS_RS64, | |
3752 | + .flags = PPC_FLAGS_RS64, | |
3753 | + .msr_mask = xxx, | |
3754 | + }, | |
3755 | +#endif | |
3756 | +#if defined (TODO) | |
3757 | + /* RS64-II (NorthStar/A50) */ | |
3758 | + { | |
3759 | + .name = "RS64-II", | |
3760 | + .pvr = CPU_PPC_RS64II, | |
3761 | + .pvr_mask = 0xFFFF0000, | |
3762 | + .insns_flags = PPC_INSNS_RS64, | |
3763 | + .flags = PPC_FLAGS_RS64, | |
3764 | + .msr_mask = xxx, | |
3765 | + }, | |
3766 | + { | |
3767 | + .name = "NortStar", | |
3768 | + .pvr = CPU_PPC_RS64II, | |
3769 | + .pvr_mask = 0xFFFF0000, | |
3770 | + .insns_flags = PPC_INSNS_RS64, | |
3771 | + .flags = PPC_FLAGS_RS64, | |
3772 | + .msr_mask = xxx, | |
3773 | + }, | |
3774 | + { | |
3775 | + .name = "A50", | |
3776 | + .pvr = CPU_PPC_RS64II, | |
3777 | + .pvr_mask = 0xFFFF0000, | |
3778 | + .insns_flags = PPC_INSNS_RS64, | |
3779 | + .flags = PPC_FLAGS_RS64, | |
3780 | + .msr_mask = xxx, | |
3781 | + }, | |
3782 | +#endif | |
3783 | +#if defined (TODO) | |
3784 | + /* RS64-III (Pulsar) */ | |
3785 | + { | |
3786 | + .name = "RS64-III", | |
3787 | + .pvr = CPU_PPC_RS64III, | |
3788 | + .pvr_mask = 0xFFFF0000, | |
3789 | + .insns_flags = PPC_INSNS_RS64, | |
3790 | + .flags = PPC_FLAGS_RS64, | |
3791 | + .msr_mask = xxx, | |
3792 | + }, | |
3793 | + { | |
3794 | + .name = "Pulsar", | |
3795 | + .pvr = CPU_PPC_RS64III, | |
3796 | + .pvr_mask = 0xFFFF0000, | |
3797 | + .insns_flags = PPC_INSNS_RS64, | |
3798 | + .flags = PPC_FLAGS_RS64, | |
3799 | + .msr_mask = xxx, | |
3800 | + }, | |
3801 | +#endif | |
3802 | +#if defined (TODO) | |
3803 | + /* RS64-IV (IceStar/IStar/SStar) */ | |
3804 | + { | |
3805 | + .name = "RS64-IV", | |
3806 | + .pvr = CPU_PPC_RS64IV, | |
3807 | + .pvr_mask = 0xFFFF0000, | |
3808 | + .insns_flags = PPC_INSNS_RS64, | |
3809 | + .flags = PPC_FLAGS_RS64, | |
3810 | + .msr_mask = xxx, | |
3811 | + }, | |
3812 | + { | |
3813 | + .name = "IceStar", | |
3814 | + .pvr = CPU_PPC_RS64IV, | |
3815 | + .pvr_mask = 0xFFFF0000, | |
3816 | + .insns_flags = PPC_INSNS_RS64, | |
3817 | + .flags = PPC_FLAGS_RS64, | |
3818 | + .msr_mask = xxx, | |
3819 | + }, | |
3820 | + { | |
3821 | + .name = "IStar", | |
3822 | + .pvr = CPU_PPC_RS64IV, | |
3823 | + .pvr_mask = 0xFFFF0000, | |
3824 | + .insns_flags = PPC_INSNS_RS64, | |
3825 | + .flags = PPC_FLAGS_RS64, | |
3826 | + .msr_mask = xxx, | |
3827 | + }, | |
3828 | + { | |
3829 | + .name = "SStar", | |
3830 | + .pvr = CPU_PPC_RS64IV, | |
3831 | + .pvr_mask = 0xFFFF0000, | |
3832 | + .insns_flags = PPC_INSNS_RS64, | |
3833 | + .flags = PPC_FLAGS_RS64, | |
3834 | + .msr_mask = xxx, | |
3835 | + }, | |
3836 | +#endif | |
3837 | + /* POWER */ | |
3838 | +#if defined (TODO) | |
3839 | + /* Original POWER */ | |
3840 | + { | |
3841 | + .name = "POWER", | |
3842 | + .pvr = CPU_POWER, | |
3843 | + .pvr_mask = 0xFFFF0000, | |
3844 | + .insns_flags = PPC_INSNS_POWER, | |
3845 | + .flags = PPC_FLAGS_POWER, | |
3846 | + .msr_mask = xxx, | |
3847 | + }, | |
3844 | 3848 | #endif |
3845 | 3849 | #endif /* defined (TARGET_PPC64) */ |
3846 | 3850 | #if defined (TODO) |
3847 | - /* POWER2 */ | |
3848 | - { | |
3849 | - .name = "POWER2", | |
3850 | - .pvr = CPU_POWER2, | |
3851 | - .pvr_mask = 0xFFFF0000, | |
3852 | - .insns_flags = PPC_INSNS_POWER, | |
3853 | - .flags = PPC_FLAGS_POWER, | |
3854 | - .msr_mask = xxx, | |
3855 | - }, | |
3856 | -#endif | |
3857 | - /* Generic PowerPCs */ | |
3858 | -#if defined (TODO) | |
3859 | - { | |
3860 | - .name = "ppc64", | |
3861 | - .pvr = CPU_PPC_970, | |
3862 | - .pvr_mask = 0xFFFF0000, | |
3863 | - .insns_flags = PPC_INSNS_PPC64, | |
3864 | - .flags = PPC_FLAGS_PPC64, | |
3865 | - .msr_mask = 0xA00000000204FF36, | |
3866 | - }, | |
3867 | -#endif | |
3868 | - { | |
3869 | - .name = "ppc32", | |
3870 | - .pvr = CPU_PPC_604, | |
3871 | - .pvr_mask = 0xFFFFFFFF, | |
3872 | - .insns_flags = PPC_INSNS_PPC32, | |
3873 | - .flags = PPC_FLAGS_PPC32, | |
3874 | - .msr_mask = 0x000000000005FF77, | |
3875 | - }, | |
3876 | - /* Fallback */ | |
3877 | - { | |
3878 | - .name = "ppc", | |
3879 | - .pvr = CPU_PPC_604, | |
3880 | - .pvr_mask = 0xFFFFFFFF, | |
3881 | - .insns_flags = PPC_INSNS_PPC32, | |
3882 | - .flags = PPC_FLAGS_PPC32, | |
3883 | - .msr_mask = 0x000000000005FF77, | |
3884 | - }, | |
3885 | - }; | |
3851 | + /* POWER2 */ | |
3852 | + { | |
3853 | + .name = "POWER2", | |
3854 | + .pvr = CPU_POWER2, | |
3855 | + .pvr_mask = 0xFFFF0000, | |
3856 | + .insns_flags = PPC_INSNS_POWER, | |
3857 | + .flags = PPC_FLAGS_POWER, | |
3858 | + .msr_mask = xxx, | |
3859 | + }, | |
3860 | +#endif | |
3861 | + /* Generic PowerPCs */ | |
3862 | +#if defined (TODO) || 1 | |
3863 | + { | |
3864 | + .name = "ppc64", | |
3865 | + .pvr = CPU_PPC_970, | |
3866 | + .pvr_mask = 0xFFFF0000, | |
3867 | + .insns_flags = PPC_INSNS_PPC64, | |
3868 | + .flags = PPC_FLAGS_PPC64, | |
3869 | + .msr_mask = 0xA00000000204FF36, | |
3870 | + }, | |
3871 | +#endif | |
3872 | + { | |
3873 | + .name = "ppc32", | |
3874 | + .pvr = CPU_PPC_604, | |
3875 | + .pvr_mask = 0xFFFFFFFF, | |
3876 | + .insns_flags = PPC_INSNS_PPC32, | |
3877 | + .flags = PPC_FLAGS_PPC32, | |
3878 | + .msr_mask = 0x000000000005FF77, | |
3879 | + }, | |
3880 | + /* Fallback */ | |
3881 | + { | |
3882 | + .name = "ppc", | |
3883 | + .pvr = CPU_PPC_604, | |
3884 | + .pvr_mask = 0xFFFFFFFF, | |
3885 | + .insns_flags = PPC_INSNS_PPC32, | |
3886 | + .flags = PPC_FLAGS_PPC32, | |
3887 | + .msr_mask = 0x000000000005FF77, | |
3888 | + }, | |
3889 | +}; | |
3886 | 3890 | |
3887 | 3891 | int ppc_find_by_name (const unsigned char *name, ppc_def_t **def) |
3888 | 3892 | { | ... | ... |