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 | { | ... | ... |