Commit 3a6078548d3abf01ea24df75eae794d078194481

Authored by j_mayer
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,7 +1875,7 @@ static void init_ppc_proc (CPUPPCState *env, ppc_def_t *def)
1875 def->pvr); 1875 def->pvr);
1876 printf("%s: PVR %08x mask %08x => %08x\n", __func__, 1876 printf("%s: PVR %08x mask %08x => %08x\n", __func__,
1877 def->pvr, def->pvr_mask, def->pvr & def->pvr_mask); 1877 def->pvr, def->pvr_mask, def->pvr & def->pvr_mask);
1878 - switch (def->pvr & def->pvr_mask) { 1878 + switch (def->pvr) {
1879 /* Embedded PowerPC from IBM */ 1879 /* Embedded PowerPC from IBM */
1880 case CPU_PPC_401A1: /* 401 A1 family */ 1880 case CPU_PPC_401A1: /* 401 A1 family */
1881 case CPU_PPC_401B2: /* 401 B2 family */ 1881 case CPU_PPC_401B2: /* 401 B2 family */
@@ -2715,1174 +2715,1178 @@ int cpu_ppc_register (CPUPPCState *env, ppc_def_t *def) @@ -2715,1174 +2715,1178 @@ int cpu_ppc_register (CPUPPCState *env, ppc_def_t *def)
2715 2715
2716 /*****************************************************************************/ 2716 /*****************************************************************************/
2717 /* PowerPC CPU definitions */ 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 #endif 2730 #endif
2820 #if defined (TODO) 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 #endif 2741 #endif
2831 #if defined (TODO) 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 #endif 2752 #endif
2842 #if defined (TODO) 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 #endif 2763 #endif
2853 #if defined (TODO) 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 #endif 2774 #endif
2864 #if defined (TODO) 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 #endif 2785 #endif
2875 #if defined (TODO) 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 #endif 2796 #endif
2886 #if defined (TODO) 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 #endif 2856 #endif
2897 #if defined (TODO) 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 #endif 2867 #endif
2908 #if defined (TODO) 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 #endif 2878 #endif
2919 #if defined (TODO) 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 #endif 2889 #endif
2930 #if defined (TODO) 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 .insns_flags = PPC_INSNS_405, 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 #endif 2900 #endif
2941 #if defined (TODO) 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 #endif 2911 #endif
2952 #if defined (TODO) 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 #endif 2922 #endif
2963 #if defined (TODO) 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 #endif 2933 #endif
2974 #if defined (TODO) 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 #endif 2955 #endif
2985 #if defined (TODO) 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 #endif 2999 #endif
2996 /* Xilinx PowerPC 405 cores */ 3000 /* Xilinx PowerPC 405 cores */
2997 #if defined (TODO) 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 #endif 3034 #endif
3075 #if defined (TODO) 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 #endif 3045 #endif
3086 #if defined (TODO) 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 #endif 3056 #endif
3097 #if defined (TODO) 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 #endif 3067 #endif
3108 #if defined (TODO) 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 #endif 3078 #endif
3119 #if defined (TODO) 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 #if defined (TARGET_PPC64) 3610 #if defined (TARGET_PPC64)
3607 #if defined (TODO) 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 #endif 3621 #endif
3637 #if defined (TODO) 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 #endif 3848 #endif
3845 #endif /* defined (TARGET_PPC64) */ 3849 #endif /* defined (TARGET_PPC64) */
3846 #if defined (TODO) 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 int ppc_find_by_name (const unsigned char *name, ppc_def_t **def) 3891 int ppc_find_by_name (const unsigned char *name, ppc_def_t **def)
3888 { 3892 {