Commit 237c0af0175d78955a3007372a2c9789a05705be
1 parent
d12f4c38
Define the proper bfd_mach to be used by the disassembler for each
PowerPC emulated CPU. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3257 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
55 additions
and
4 deletions
disas.c
... | ... | @@ -178,13 +178,18 @@ void target_disas(FILE *out, target_ulong code, target_ulong size, int flags) |
178 | 178 | disasm_info.mach = bfd_mach_sparc_v9b; |
179 | 179 | #endif |
180 | 180 | #elif defined(TARGET_PPC) |
181 | - if (flags) | |
181 | + if (flags >> 16) | |
182 | 182 | disasm_info.endian = BFD_ENDIAN_LITTLE; |
183 | + if (flags & 0xFFFF) { | |
184 | + /* If we have a precise definitions of the instructions set, use it */ | |
185 | + disasm_info.mach = flags & 0xFFFF; | |
186 | + } else { | |
183 | 187 | #ifdef TARGET_PPC64 |
184 | - disasm_info.mach = bfd_mach_ppc64; | |
188 | + disasm_info.mach = bfd_mach_ppc64; | |
185 | 189 | #else |
186 | - disasm_info.mach = bfd_mach_ppc; | |
190 | + disasm_info.mach = bfd_mach_ppc; | |
187 | 191 | #endif |
192 | + } | |
188 | 193 | print_insn = print_insn_ppc; |
189 | 194 | #elif defined(TARGET_M68K) |
190 | 195 | print_insn = print_insn_m68k; | ... | ... |
target-ppc/cpu.h
target-ppc/translate.c
... | ... | @@ -6108,7 +6108,8 @@ static inline int gen_intermediate_code_internal (CPUState *env, |
6108 | 6108 | } |
6109 | 6109 | if (loglevel & CPU_LOG_TB_IN_ASM) { |
6110 | 6110 | int flags; |
6111 | - flags = msr_le; | |
6111 | + flags = env->bfd_mach; | |
6112 | + flags |= msr_le << 16; | |
6112 | 6113 | fprintf(logfile, "IN: %s\n", lookup_symbol(pc_start)); |
6113 | 6114 | target_disas(logfile, pc_start, ctx.nip - pc_start, flags); |
6114 | 6115 | fprintf(logfile, "\n"); | ... | ... |
target-ppc/translate_init.c
... | ... | @@ -23,6 +23,8 @@ |
23 | 23 | * inside "#if defined(TODO) ... #endif" statements to make tests easier. |
24 | 24 | */ |
25 | 25 | |
26 | +#include "dis-asm.h" | |
27 | + | |
26 | 28 | //#define PPC_DUMP_CPU |
27 | 29 | //#define PPC_DEBUG_SPR |
28 | 30 | //#define PPC_DEBUG_IRQ |
... | ... | @@ -37,6 +39,7 @@ struct ppc_def_t { |
37 | 39 | uint8_t excp_model; |
38 | 40 | uint8_t bus_model; |
39 | 41 | uint8_t pad; |
42 | + int bfd_mach; | |
40 | 43 | void (*init_proc)(CPUPPCState *env); |
41 | 44 | }; |
42 | 45 | |
... | ... | @@ -2163,6 +2166,7 @@ static void gen_spr_620 (CPUPPCState *env) |
2163 | 2166 | #define POWERPC_MMU_401 (POWERPC_MMU_REAL_4xx) |
2164 | 2167 | #define POWERPC_EXCP_401 (POWERPC_EXCP_40x) |
2165 | 2168 | #define POWERPC_INPUT_401 (PPC_FLAGS_INPUT_401) |
2169 | +#define POWERPC_BFDM_401 (bfd_mach_ppc_403) | |
2166 | 2170 | |
2167 | 2171 | static void init_proc_401 (CPUPPCState *env) |
2168 | 2172 | { |
... | ... | @@ -2192,6 +2196,7 @@ static void init_proc_401 (CPUPPCState *env) |
2192 | 2196 | #define POWERPC_MMU_401x2 (POWERPC_MMU_SOFT_4xx_Z) |
2193 | 2197 | #define POWERPC_EXCP_401x2 (POWERPC_EXCP_40x) |
2194 | 2198 | #define POWERPC_INPUT_401x2 (PPC_FLAGS_INPUT_401) |
2199 | +#define POWERPC_BFDM_401x2 (bfd_mach_ppc_403) | |
2195 | 2200 | |
2196 | 2201 | static void init_proc_401x2 (CPUPPCState *env) |
2197 | 2202 | { |
... | ... | @@ -2227,6 +2232,7 @@ static void init_proc_401x2 (CPUPPCState *env) |
2227 | 2232 | #define POWERPC_MMU_401x3 (POWERPC_MMU_SOFT_4xx_Z) |
2228 | 2233 | #define POWERPC_EXCP_401x3 (POWERPC_EXCP_40x) |
2229 | 2234 | #define POWERPC_INPUT_401x3 (PPC_FLAGS_INPUT_401) |
2235 | +#define POWERPC_BFDM_401x3 (bfd_mach_ppc_403) | |
2230 | 2236 | |
2231 | 2237 | static void init_proc_401x2 (CPUPPCState *env) |
2232 | 2238 | { |
... | ... | @@ -2243,6 +2249,7 @@ static void init_proc_401x2 (CPUPPCState *env) |
2243 | 2249 | #define POWERPC_MMU_IOP480 (POWERPC_MMU_SOFT_4xx_Z) |
2244 | 2250 | #define POWERPC_EXCP_IOP480 (POWERPC_EXCP_40x) |
2245 | 2251 | #define POWERPC_INPUT_IOP480 (PPC_FLAGS_INPUT_401) |
2252 | +#define POWERPC_BFDM_IOP480 (bfd_mach_ppc_403) | |
2246 | 2253 | |
2247 | 2254 | static void init_proc_IOP480 (CPUPPCState *env) |
2248 | 2255 | { |
... | ... | @@ -2276,6 +2283,7 @@ static void init_proc_IOP480 (CPUPPCState *env) |
2276 | 2283 | #define POWERPC_MMU_403 (POWERPC_MMU_REAL_4xx) |
2277 | 2284 | #define POWERPC_EXCP_403 (POWERPC_EXCP_40x) |
2278 | 2285 | #define POWERPC_INPUT_403 (PPC_FLAGS_INPUT_401) |
2286 | +#define POWERPC_BFDM_403 (bfd_mach_ppc_403) | |
2279 | 2287 | |
2280 | 2288 | static void init_proc_403 (CPUPPCState *env) |
2281 | 2289 | { |
... | ... | @@ -2295,6 +2303,7 @@ static void init_proc_403 (CPUPPCState *env) |
2295 | 2303 | #define POWERPC_MMU_403GCX (POWERPC_MMU_SOFT_4xx_Z) |
2296 | 2304 | #define POWERPC_EXCP_403GCX (POWERPC_EXCP_40x) |
2297 | 2305 | #define POWERPC_INPUT_403GCX (PPC_FLAGS_INPUT_401) |
2306 | +#define POWERPC_BFDM_403GCX (bfd_mach_ppc_403) | |
2298 | 2307 | |
2299 | 2308 | static void init_proc_403GCX (CPUPPCState *env) |
2300 | 2309 | { |
... | ... | @@ -2330,6 +2339,7 @@ static void init_proc_403GCX (CPUPPCState *env) |
2330 | 2339 | #define POWERPC_MMU_405 (POWERPC_MMU_SOFT_4xx) |
2331 | 2340 | #define POWERPC_EXCP_405 (POWERPC_EXCP_40x) |
2332 | 2341 | #define POWERPC_INPUT_405 (PPC_FLAGS_INPUT_405) |
2342 | +#define POWERPC_BFDM_405 (bfd_mach_ppc_403) | |
2333 | 2343 | |
2334 | 2344 | static void init_proc_405 (CPUPPCState *env) |
2335 | 2345 | { |
... | ... | @@ -2364,6 +2374,7 @@ static void init_proc_405 (CPUPPCState *env) |
2364 | 2374 | #define POWERPC_MMU_440EP (POWERPC_MMU_BOOKE) |
2365 | 2375 | #define POWERPC_EXCP_440EP (POWERPC_EXCP_BOOKE) |
2366 | 2376 | #define POWERPC_INPUT_440EP (PPC_FLAGS_INPUT_BookE) |
2377 | +#define POWERPC_BFDM_440EP (bfd_mach_ppc_403) | |
2367 | 2378 | |
2368 | 2379 | static void init_proc_440EP (CPUPPCState *env) |
2369 | 2380 | { |
... | ... | @@ -2403,6 +2414,7 @@ static void init_proc_440EP (CPUPPCState *env) |
2403 | 2414 | #define POWERPC_MMU_440GP (POWERPC_MMU_BOOKE) |
2404 | 2415 | #define POWERPC_EXCP_440GP (POWERPC_EXCP_BOOKE) |
2405 | 2416 | #define POWERPC_INPUT_440GP (PPC_FLAGS_INPUT_BookE) |
2417 | +#define POWERPC_BFDM_440GP (bfd_mach_ppc_403) | |
2406 | 2418 | |
2407 | 2419 | static void init_proc_440GP (CPUPPCState *env) |
2408 | 2420 | { |
... | ... | @@ -2427,6 +2439,7 @@ static void init_proc_440GP (CPUPPCState *env) |
2427 | 2439 | #define POWERPC_MMU_440x4 (POWERPC_MMU_BOOKE) |
2428 | 2440 | #define POWERPC_EXCP_440x4 (POWERPC_EXCP_BOOKE) |
2429 | 2441 | #define POWERPC_INPUT_440x4 (PPC_FLAGS_INPUT_BookE) |
2442 | +#define POWERPC_BFDM_440x4 (bfd_mach_ppc_403) | |
2430 | 2443 | |
2431 | 2444 | static void init_proc_440x4 (CPUPPCState *env) |
2432 | 2445 | { |
... | ... | @@ -2451,6 +2464,7 @@ static void init_proc_440x4 (CPUPPCState *env) |
2451 | 2464 | #define POWERPC_MMU_440x5 (POWERPC_MMU_BOOKE) |
2452 | 2465 | #define POWERPC_EXCP_440x5 (POWERPC_EXCP_BOOKE) |
2453 | 2466 | #define POWERPC_INPUT_440x5 (PPC_FLAGS_INPUT_BookE) |
2467 | +#define POWERPC_BFDM_440x5 (bfd_mach_ppc_403) | |
2454 | 2468 | |
2455 | 2469 | static void init_proc_440x5 (CPUPPCState *env) |
2456 | 2470 | { |
... | ... | @@ -2491,6 +2505,7 @@ static void init_proc_440x5 (CPUPPCState *env) |
2491 | 2505 | #define POWERPC_MMU_460 (POWERPC_MMU_BOOKE) |
2492 | 2506 | #define POWERPC_EXCP_460 (POWERPC_EXCP_BOOKE) |
2493 | 2507 | #define POWERPC_INPUT_460 (PPC_FLAGS_INPUT_BookE) |
2508 | +#define POWERPC_BFDM_460 (bfd_mach_ppc_403) | |
2494 | 2509 | |
2495 | 2510 | static void init_proc_460 (CPUPPCState *env) |
2496 | 2511 | { |
... | ... | @@ -2510,6 +2525,7 @@ static void init_proc_460 (CPUPPCState *env) |
2510 | 2525 | #define POWERPC_MMU_460F (POWERPC_MMU_BOOKE) |
2511 | 2526 | #define POWERPC_EXCP_460F (POWERPC_EXCP_BOOKE) |
2512 | 2527 | #define POWERPC_INPUT_460F (PPC_FLAGS_INPUT_BookE) |
2528 | +#define POWERPC_BFDM_460F (bfd_mach_ppc_403) | |
2513 | 2529 | |
2514 | 2530 | static void init_proc_460 (CPUPPCState *env) |
2515 | 2531 | { |
... | ... | @@ -2558,6 +2574,7 @@ static void init_proc_460 (CPUPPCState *env) |
2558 | 2574 | #define POWERPC_MMU_BookE (POWERPC_MMU_BOOKE) |
2559 | 2575 | #define POWERPC_EXCP_BookE (POWERPC_EXCP_BOOKE) |
2560 | 2576 | #define POWERPC_INPUT_BookE (PPC_FLAGS_INPUT_BookE) |
2577 | +#define POWERPC_BFDM_BookE (bfd_mach_ppc_403) | |
2561 | 2578 | |
2562 | 2579 | static void init_proc_BookE (CPUPPCState *env) |
2563 | 2580 | { |
... | ... | @@ -2581,6 +2598,7 @@ static void init_proc_BookE (CPUPPCState *env) |
2581 | 2598 | #define POWERPC_MMU_e500 (POWERPC_MMU_SOFT_4xx) |
2582 | 2599 | #define POWERPC_EXCP_e500 (POWERPC_EXCP_40x) |
2583 | 2600 | #define POWERPC_INPUT_e500 (PPC_FLAGS_INPUT_BookE) |
2601 | +#define POWERPC_BFDM_e500 (bfd_mach_ppc_403) | |
2584 | 2602 | |
2585 | 2603 | static void init_proc_e500 (CPUPPCState *env) |
2586 | 2604 | { |
... | ... | @@ -2623,6 +2641,7 @@ static void init_proc_e500 (CPUPPCState *env) |
2623 | 2641 | //#define POWERPC_MMU_601 (POWERPC_MMU_601) |
2624 | 2642 | //#define POWERPC_EXCP_601 (POWERPC_EXCP_601) |
2625 | 2643 | #define POWERPC_INPUT_601 (PPC_FLAGS_INPUT_6xx) |
2644 | +#define POWERPC_BFDM_601 (bfd_mach_ppc_601) | |
2626 | 2645 | |
2627 | 2646 | static void init_proc_601 (CPUPPCState *env) |
2628 | 2647 | { |
... | ... | @@ -2671,6 +2690,7 @@ static void init_proc_601 (CPUPPCState *env) |
2671 | 2690 | #define POWERPC_MMU_602 (POWERPC_MMU_SOFT_6xx) |
2672 | 2691 | //#define POWERPC_EXCP_602 (POWERPC_EXCP_602) |
2673 | 2692 | #define POWERPC_INPUT_602 (PPC_FLAGS_INPUT_6xx) |
2693 | +#define POWERPC_BFDM_602 (bfd_mach_ppc_602) | |
2674 | 2694 | |
2675 | 2695 | static void init_proc_602 (CPUPPCState *env) |
2676 | 2696 | { |
... | ... | @@ -2702,6 +2722,7 @@ static void init_proc_602 (CPUPPCState *env) |
2702 | 2722 | #define POWERPC_MMU_603 (POWERPC_MMU_SOFT_6xx) |
2703 | 2723 | //#define POWERPC_EXCP_603 (POWERPC_EXCP_603) |
2704 | 2724 | #define POWERPC_INPUT_603 (PPC_FLAGS_INPUT_6xx) |
2725 | +#define POWERPC_BFDM_603 (bfd_mach_ppc_603) | |
2705 | 2726 | |
2706 | 2727 | static void init_proc_603 (CPUPPCState *env) |
2707 | 2728 | { |
... | ... | @@ -2733,6 +2754,7 @@ static void init_proc_603 (CPUPPCState *env) |
2733 | 2754 | #define POWERPC_MMU_603E (POWERPC_MMU_SOFT_6xx) |
2734 | 2755 | //#define POWERPC_EXCP_603E (POWERPC_EXCP_603E) |
2735 | 2756 | #define POWERPC_INPUT_603E (PPC_FLAGS_INPUT_6xx) |
2757 | +#define POWERPC_BFDM_603E (bfd_mach_ppc_ec603e) | |
2736 | 2758 | |
2737 | 2759 | static void init_proc_603E (CPUPPCState *env) |
2738 | 2760 | { |
... | ... | @@ -2769,6 +2791,7 @@ static void init_proc_603E (CPUPPCState *env) |
2769 | 2791 | #define POWERPC_MMU_G2 (POWERPC_MMU_SOFT_6xx) |
2770 | 2792 | //#define POWERPC_EXCP_G2 (POWERPC_EXCP_G2) |
2771 | 2793 | #define POWERPC_INPUT_G2 (PPC_FLAGS_INPUT_6xx) |
2794 | +#define POWERPC_BFDM_G2 (bfd_mach_ppc_ec603e) | |
2772 | 2795 | |
2773 | 2796 | static void init_proc_G2 (CPUPPCState *env) |
2774 | 2797 | { |
... | ... | @@ -2807,6 +2830,7 @@ static void init_proc_G2 (CPUPPCState *env) |
2807 | 2830 | #define POWERPC_MMU_G2LE (POWERPC_MMU_SOFT_6xx) |
2808 | 2831 | #define POWERPC_EXCP_G2LE (POWERPC_EXCP_G2) |
2809 | 2832 | #define POWERPC_INPUT_G2LE (PPC_FLAGS_INPUT_6xx) |
2833 | +#define POWERPC_BFDM_G2LE (bfd_mach_ppc_ec603e) | |
2810 | 2834 | |
2811 | 2835 | static void init_proc_G2LE (CPUPPCState *env) |
2812 | 2836 | { |
... | ... | @@ -2845,6 +2869,7 @@ static void init_proc_G2LE (CPUPPCState *env) |
2845 | 2869 | #define POWERPC_MMU_604 (POWERPC_MMU_32B) |
2846 | 2870 | //#define POWERPC_EXCP_604 (POWERPC_EXCP_604) |
2847 | 2871 | #define POWERPC_INPUT_604 (PPC_FLAGS_INPUT_6xx) |
2872 | +#define POWERPC_BFDM_604 (bfd_mach_ppc_604) | |
2848 | 2873 | |
2849 | 2874 | static void init_proc_604 (CPUPPCState *env) |
2850 | 2875 | { |
... | ... | @@ -2875,6 +2900,7 @@ static void init_proc_604 (CPUPPCState *env) |
2875 | 2900 | #define POWERPC_MMU_7x0 (POWERPC_MMU_32B) |
2876 | 2901 | //#define POWERPC_EXCP_7x0 (POWERPC_EXCP_7x0) |
2877 | 2902 | #define POWERPC_INPUT_7x0 (PPC_FLAGS_INPUT_6xx) |
2903 | +#define POWERPC_BFDM_7x0 (bfd_mach_ppc_750) | |
2878 | 2904 | |
2879 | 2905 | static void init_proc_7x0 (CPUPPCState *env) |
2880 | 2906 | { |
... | ... | @@ -2907,6 +2933,7 @@ static void init_proc_7x0 (CPUPPCState *env) |
2907 | 2933 | #define POWERPC_MMU_750fx (POWERPC_MMU_32B) |
2908 | 2934 | #define POWERPC_EXCP_750fx (POWERPC_EXCP_7x0) |
2909 | 2935 | #define POWERPC_INPUT_750fx (PPC_FLAGS_INPUT_6xx) |
2936 | +#define POWERPC_BFDM_750fx (bfd_mach_ppc_750) | |
2910 | 2937 | |
2911 | 2938 | static void init_proc_750fx (CPUPPCState *env) |
2912 | 2939 | { |
... | ... | @@ -2946,6 +2973,7 @@ static void init_proc_750fx (CPUPPCState *env) |
2946 | 2973 | #define POWERPC_MMU_7x5 (POWERPC_MMU_SOFT_6xx) |
2947 | 2974 | //#define POWERPC_EXCP_7x5 (POWERPC_EXCP_7x5) |
2948 | 2975 | #define POWERPC_INPUT_7x5 (PPC_FLAGS_INPUT_6xx) |
2976 | +#define POWERPC_BFDM_7x5 (bfd_mach_ppc_750) | |
2949 | 2977 | |
2950 | 2978 | static void init_proc_7x5 (CPUPPCState *env) |
2951 | 2979 | { |
... | ... | @@ -2996,6 +3024,7 @@ static void init_proc_7x5 (CPUPPCState *env) |
2996 | 3024 | #define POWERPC_MMU_7400 (POWERPC_MMU_32B) |
2997 | 3025 | #define POWERPC_EXCP_7400 (POWERPC_EXCP_74xx) |
2998 | 3026 | #define POWERPC_INPUT_7400 (PPC_FLAGS_INPUT_6xx) |
3027 | +#define POWERPC_BFDM_7400 (bfd_mach_ppc_7400) | |
2999 | 3028 | |
3000 | 3029 | static void init_proc_7400 (CPUPPCState *env) |
3001 | 3030 | { |
... | ... | @@ -3021,6 +3050,7 @@ static void init_proc_7400 (CPUPPCState *env) |
3021 | 3050 | #define POWERPC_MMU_7410 (POWERPC_MMU_32B) |
3022 | 3051 | #define POWERPC_EXCP_7410 (POWERPC_EXCP_74xx) |
3023 | 3052 | #define POWERPC_INPUT_7410 (PPC_FLAGS_INPUT_6xx) |
3053 | +#define POWERPC_BFDM_7410 (bfd_mach_ppc_7400) | |
3024 | 3054 | |
3025 | 3055 | static void init_proc_7410 (CPUPPCState *env) |
3026 | 3056 | { |
... | ... | @@ -3059,6 +3089,7 @@ static void init_proc_7410 (CPUPPCState *env) |
3059 | 3089 | #define POWERPC_MMU_7440 (POWERPC_MMU_SOFT_74xx) |
3060 | 3090 | #define POWERPC_EXCP_7440 (POWERPC_EXCP_74xx) |
3061 | 3091 | #define POWERPC_INPUT_7440 (PPC_FLAGS_INPUT_6xx) |
3092 | +#define POWERPC_BFDM_7440 (bfd_mach_ppc_7400) | |
3062 | 3093 | |
3063 | 3094 | static void init_proc_7440 (CPUPPCState *env) |
3064 | 3095 | { |
... | ... | @@ -3120,6 +3151,7 @@ static void init_proc_7440 (CPUPPCState *env) |
3120 | 3151 | #define POWERPC_MMU_7450 (POWERPC_MMU_SOFT_74xx) |
3121 | 3152 | #define POWERPC_EXCP_7450 (POWERPC_EXCP_74xx) |
3122 | 3153 | #define POWERPC_INPUT_7450 (PPC_FLAGS_INPUT_6xx) |
3154 | +#define POWERPC_BFDM_7450 (bfd_mach_ppc_7400) | |
3123 | 3155 | |
3124 | 3156 | static void init_proc_7450 (CPUPPCState *env) |
3125 | 3157 | { |
... | ... | @@ -3183,6 +3215,7 @@ static void init_proc_7450 (CPUPPCState *env) |
3183 | 3215 | #define POWERPC_MMU_7445 (POWERPC_MMU_SOFT_74xx) |
3184 | 3216 | #define POWERPC_EXCP_7445 (POWERPC_EXCP_74xx) |
3185 | 3217 | #define POWERPC_INPUT_7445 (PPC_FLAGS_INPUT_6xx) |
3218 | +#define POWERPC_BFDM_7445 (bfd_mach_ppc_7400) | |
3186 | 3219 | |
3187 | 3220 | static void init_proc_7445 (CPUPPCState *env) |
3188 | 3221 | { |
... | ... | @@ -3278,6 +3311,7 @@ static void init_proc_7445 (CPUPPCState *env) |
3278 | 3311 | #define POWERPC_MMU_7455 (POWERPC_MMU_SOFT_74xx) |
3279 | 3312 | #define POWERPC_EXCP_7455 (POWERPC_EXCP_74xx) |
3280 | 3313 | #define POWERPC_INPUT_7455 (PPC_FLAGS_INPUT_6xx) |
3314 | +#define POWERPC_BFDM_7455 (bfd_mach_ppc_7400) | |
3281 | 3315 | |
3282 | 3316 | static void init_proc_7455 (CPUPPCState *env) |
3283 | 3317 | { |
... | ... | @@ -3375,6 +3409,7 @@ static void init_proc_7455 (CPUPPCState *env) |
3375 | 3409 | #define POWERPC_MMU_970 (POWERPC_MMU_64BRIDGE) |
3376 | 3410 | //#define POWERPC_EXCP_970 (POWERPC_EXCP_970) |
3377 | 3411 | #define POWERPC_INPUT_970 (PPC_FLAGS_INPUT_970) |
3412 | +#define POWERPC_BFDM_970 (bfd_mach_ppc64) | |
3378 | 3413 | |
3379 | 3414 | static void init_proc_970 (CPUPPCState *env) |
3380 | 3415 | { |
... | ... | @@ -3416,6 +3451,7 @@ static void init_proc_970 (CPUPPCState *env) |
3416 | 3451 | #define POWERPC_MMU_970FX (POWERPC_MMU_64BRIDGE) |
3417 | 3452 | #define POWERPC_EXCP_970FX (POWERPC_EXCP_970) |
3418 | 3453 | #define POWERPC_INPUT_970FX (PPC_FLAGS_INPUT_970) |
3454 | +#define POWERPC_BFDM_970FX (bfd_mach_ppc64) | |
3419 | 3455 | |
3420 | 3456 | static void init_proc_970FX (CPUPPCState *env) |
3421 | 3457 | { |
... | ... | @@ -3457,6 +3493,7 @@ static void init_proc_970FX (CPUPPCState *env) |
3457 | 3493 | #define POWERPC_MMU_970GX (POWERPC_MMU_64BRIDGE) |
3458 | 3494 | #define POWERPC_EXCP_970GX (POWERPC_EXCP_970) |
3459 | 3495 | #define POWERPC_INPUT_970GX (PPC_FLAGS_INPUT_970) |
3496 | +#define POWERPC_BFDM_970GX (bfd_mach_ppc64) | |
3460 | 3497 | |
3461 | 3498 | static void init_proc_970GX (CPUPPCState *env) |
3462 | 3499 | { |
... | ... | @@ -3498,6 +3535,7 @@ static void init_proc_970GX (CPUPPCState *env) |
3498 | 3535 | #define POWERPC_MMU_620 (POWERPC_MMU_64B) |
3499 | 3536 | #define POWERPC_EXCP_620 (POWERPC_EXCP_970) |
3500 | 3537 | #define POWERPC_INPUT_620 (PPC_FLAGS_INPUT_970) |
3538 | +#define POWERPC_BFDM_620 (bfd_mach_ppc64) | |
3501 | 3539 | |
3502 | 3540 | static void init_proc_620 (CPUPPCState *env) |
3503 | 3541 | { |
... | ... | @@ -3527,6 +3565,7 @@ static void init_proc_620 (CPUPPCState *env) |
3527 | 3565 | #define POWERPC_EXCP_PPC32 POWERPC_EXCP_604 |
3528 | 3566 | #define POWERPC_INPUT_PPC32 POWERPC_INPUT_604 |
3529 | 3567 | #define init_proc_PPC32 init_proc_604 |
3568 | +#define POWERPC_BFDM_PPC32 POWERPC_BFDM_604 | |
3530 | 3569 | |
3531 | 3570 | /* Default 64 bits PowerPC target will be 970 FX */ |
3532 | 3571 | #define CPU_POWERPC_PPC64 CPU_POWERPC_970FX |
... | ... | @@ -3536,6 +3575,7 @@ static void init_proc_620 (CPUPPCState *env) |
3536 | 3575 | #define POWERPC_EXCP_PPC64 POWERPC_EXCP_970FX |
3537 | 3576 | #define POWERPC_INPUT_PPC64 POWERPC_INPUT_970FX |
3538 | 3577 | #define init_proc_PPC64 init_proc_970FX |
3578 | +#define POWERPC_BFDM_PPC64 POWERPC_BFDM_970FX | |
3539 | 3579 | |
3540 | 3580 | /* Default PowerPC target will be PowerPC 32 */ |
3541 | 3581 | #if defined (TARGET_PPC64) && 0 // XXX: TODO |
... | ... | @@ -3546,6 +3586,7 @@ static void init_proc_620 (CPUPPCState *env) |
3546 | 3586 | #define POWERPC_EXCP_DEFAULT POWERPC_EXCP_PPC64 |
3547 | 3587 | #define POWERPC_INPUT_DEFAULT POWERPC_INPUT_PPC64 |
3548 | 3588 | #define init_proc_DEFAULT init_proc_PPC64 |
3589 | +#define POWERPC_BFDM_DEFAULT POWERPC_BFDM_PPC64 | |
3549 | 3590 | #else |
3550 | 3591 | #define CPU_POWERPC_DEFAULT CPU_POWERPC_PPC32 |
3551 | 3592 | #define POWERPC_INSNS_DEFAULT POWERPC_INSNS_PPC32 |
... | ... | @@ -3554,6 +3595,7 @@ static void init_proc_620 (CPUPPCState *env) |
3554 | 3595 | #define POWERPC_EXCP_DEFAULT POWERPC_EXCP_PPC32 |
3555 | 3596 | #define POWERPC_INPUT_DEFAULT POWERPC_INPUT_PPC32 |
3556 | 3597 | #define init_proc_DEFAULT init_proc_PPC32 |
3598 | +#define POWERPC_BFDM_DEFAULT POWERPC_BFDM_PPC32 | |
3557 | 3599 | #endif |
3558 | 3600 | |
3559 | 3601 | /*****************************************************************************/ |
... | ... | @@ -4048,6 +4090,7 @@ enum { |
4048 | 4090 | .mmu_model = glue(POWERPC_MMU_,_type), \ |
4049 | 4091 | .excp_model = glue(POWERPC_EXCP_,_type), \ |
4050 | 4092 | .bus_model = glue(POWERPC_INPUT_,_type), \ |
4093 | + .bfd_mach = glue(POWERPC_BFDM_,_type), \ | |
4051 | 4094 | .init_proc = &glue(init_proc_,_type), \ |
4052 | 4095 | } |
4053 | 4096 | |
... | ... | @@ -5332,6 +5375,7 @@ int cpu_ppc_register (CPUPPCState *env, ppc_def_t *def) |
5332 | 5375 | env->mmu_model = def->mmu_model; |
5333 | 5376 | env->excp_model = def->excp_model; |
5334 | 5377 | env->bus_model = def->bus_model; |
5378 | + env->bfd_mach = def->bfd_mach; | |
5335 | 5379 | if (create_ppc_opcodes(env, def) < 0) |
5336 | 5380 | return -1; |
5337 | 5381 | init_ppc_proc(env, def); | ... | ... |