Commit 85c4adf65f20437c428a1ebf2d3293dd56a53596
1 parent
b69fedff
PowerPC merge
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@860 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
50 additions
and
3 deletions
target-ppc/cpu.h
| @@ -74,6 +74,10 @@ enum { | @@ -74,6 +74,10 @@ enum { | ||
| 74 | 74 | ||
| 75 | #define PPC_COMMON (PPC_INTEGER | PPC_FLOAT | PPC_FLOW | PPC_MEM | \ | 75 | #define PPC_COMMON (PPC_INTEGER | PPC_FLOAT | PPC_FLOW | PPC_MEM | \ |
| 76 | PPC_RES | PPC_CACHE | PPC_MISC | PPC_SEGMENT) | 76 | PPC_RES | PPC_CACHE | PPC_MISC | PPC_SEGMENT) |
| 77 | +/* PPC 604 */ | ||
| 78 | +#define PPC_604 (PPC_INTEGER | PPC_FLOAT | PPC_FLOW | PPC_MEM | \ | ||
| 79 | + PPC_RES | PPC_CACHE | PPC_MISC | PPC_EXTERN | PPC_SEGMENT \ | ||
| 80 | + PPC_MEM_OPT) | ||
| 77 | /* PPC 740/745/750/755 (aka G3) has external access instructions */ | 81 | /* PPC 740/745/750/755 (aka G3) has external access instructions */ |
| 78 | #define PPC_750 (PPC_INTEGER | PPC_FLOAT | PPC_FLOW | PPC_MEM | \ | 82 | #define PPC_750 (PPC_INTEGER | PPC_FLOAT | PPC_FLOW | PPC_MEM | \ |
| 79 | PPC_RES | PPC_CACHE | PPC_MISC | PPC_EXTERN | PPC_SEGMENT) | 83 | PPC_RES | PPC_CACHE | PPC_MISC | PPC_EXTERN | PPC_SEGMENT) |
| @@ -202,6 +206,8 @@ void _store_xer (CPUPPCState *env, uint32_t value); | @@ -202,6 +206,8 @@ void _store_xer (CPUPPCState *env, uint32_t value); | ||
| 202 | uint32_t _load_msr (CPUPPCState *env); | 206 | uint32_t _load_msr (CPUPPCState *env); |
| 203 | void _store_msr (CPUPPCState *env, uint32_t value); | 207 | void _store_msr (CPUPPCState *env, uint32_t value); |
| 204 | 208 | ||
| 209 | +int cpu_ppc_register (CPUPPCState *env, uint32_t pvr); | ||
| 210 | + | ||
| 205 | /* Time-base and decrementer management */ | 211 | /* Time-base and decrementer management */ |
| 206 | #ifndef NO_CPU_IO_DEFS | 212 | #ifndef NO_CPU_IO_DEFS |
| 207 | uint32_t cpu_ppc_load_tbl (CPUPPCState *env); | 213 | uint32_t cpu_ppc_load_tbl (CPUPPCState *env); |
| @@ -235,7 +241,10 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | @@ -235,7 +241,10 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | ||
| 235 | #define xer_ca env->xer[1] | 241 | #define xer_ca env->xer[1] |
| 236 | #define xer_bc env->xer[0] | 242 | #define xer_bc env->xer[0] |
| 237 | 243 | ||
| 244 | +#define MQ SPR_ENCODE(0) | ||
| 238 | #define XER SPR_ENCODE(1) | 245 | #define XER SPR_ENCODE(1) |
| 246 | +#define RTCUR SPR_ENCODE(4) | ||
| 247 | +#define RTCLR SPR_ENCODE(5) | ||
| 239 | #define LR SPR_ENCODE(8) | 248 | #define LR SPR_ENCODE(8) |
| 240 | #define CTR SPR_ENCODE(9) | 249 | #define CTR SPR_ENCODE(9) |
| 241 | /* VEA mode SPR */ | 250 | /* VEA mode SPR */ |
| @@ -244,6 +253,8 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | @@ -244,6 +253,8 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | ||
| 244 | /* supervisor mode SPR */ | 253 | /* supervisor mode SPR */ |
| 245 | #define DSISR SPR_ENCODE(18) | 254 | #define DSISR SPR_ENCODE(18) |
| 246 | #define DAR SPR_ENCODE(19) | 255 | #define DAR SPR_ENCODE(19) |
| 256 | +#define RTCUW SPR_ENCODE(20) | ||
| 257 | +#define RTCLW SPR_ENCODE(21) | ||
| 247 | #define DECR SPR_ENCODE(22) | 258 | #define DECR SPR_ENCODE(22) |
| 248 | #define SDR1 SPR_ENCODE(25) | 259 | #define SDR1 SPR_ENCODE(25) |
| 249 | #define SRR0 SPR_ENCODE(26) | 260 | #define SRR0 SPR_ENCODE(26) |
| @@ -293,14 +304,50 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | @@ -293,14 +304,50 @@ void cpu_ppc_store_decr (CPUPPCState *env, uint32_t value); | ||
| 293 | #define DBAT6L SPR_ENCODE(573) | 304 | #define DBAT6L SPR_ENCODE(573) |
| 294 | #define DBAT7U SPR_ENCODE(574) | 305 | #define DBAT7U SPR_ENCODE(574) |
| 295 | #define DBAT7L SPR_ENCODE(575) | 306 | #define DBAT7L SPR_ENCODE(575) |
| 307 | +#define UMMCR0 SPR_ENCODE(936) | ||
| 308 | +#define UPMC1 SPR_ENCODE(937) | ||
| 309 | +#define UPMC2 SPR_ENCODE(938) | ||
| 310 | +#define USIA SPR_ENCODE(939) | ||
| 311 | +#define UMMCR1 SPR_ENCODE(940) | ||
| 312 | +#define UPMC3 SPR_ENCODE(941) | ||
| 313 | +#define UPMC4 SPR_ENCODE(942) | ||
| 314 | +#define MMCR0 SPR_ENCODE(952) | ||
| 315 | +#define PMC1 SPR_ENCODE(953) | ||
| 316 | +#define PMC2 SPR_ENCODE(954) | ||
| 317 | +#define SIA SPR_ENCODE(955) | ||
| 318 | +#define MMCR1 SPR_ENCODE(956) | ||
| 319 | +#define PMC3 SPR_ENCODE(957) | ||
| 320 | +#define PMC4 SPR_ENCODE(958) | ||
| 321 | +#define SDA SPR_ENCODE(959) | ||
| 322 | +#define DMISS SPR_ENCODE(976) | ||
| 323 | +#define DCMP SPR_ENCODE(977) | ||
| 324 | +#define DHASH1 SPR_ENCODE(978) | ||
| 325 | +#define DHASH2 SPR_ENCODE(979) | ||
| 326 | +#define IMISS SPR_ENCODE(980) | ||
| 327 | +#define ICMP SPR_ENCODE(981) | ||
| 328 | +#define RPA SPR_ENCODE(982) | ||
| 329 | +#define TCR SPR_ENCODE(984) | ||
| 330 | +#define IBR SPR_ENCODE(986) | ||
| 331 | +#define ESASRR SPR_ENCODE(987) | ||
| 332 | +#define SEBR SPR_ENCODE(990) | ||
| 333 | +#define SER SPR_ENCODE(991) | ||
| 334 | +#define HID0 SPR_ENCODE(1008) | ||
| 335 | +#define HID1 SPR_ENCODE(1009) | ||
| 336 | +#define IABR SPR_ENCODE(1010) | ||
| 337 | +#define HID2 SPR_ENCODE(1011) | ||
| 296 | #define DABR SPR_ENCODE(1013) | 338 | #define DABR SPR_ENCODE(1013) |
| 339 | +#define L2PM SPR_ENCODE(1016) | ||
| 340 | +#define L2CR SPR_ENCODE(1017) | ||
| 341 | +#define ICTC SPR_ENCODE(1019) | ||
| 342 | +#define THRM1 SPR_ENCODE(1020) | ||
| 343 | +#define THRM2 SPR_ENCODE(1021) | ||
| 344 | +#define THRM3 SPR_ENCODE(1022) | ||
| 345 | +#define SP SPR_ENCODE(1021) | ||
| 346 | +#define LP SPR_ENCODE(1022) | ||
| 297 | #define DABR_MASK 0xFFFFFFF8 | 347 | #define DABR_MASK 0xFFFFFFF8 |
| 298 | #define FPECR SPR_ENCODE(1022) | 348 | #define FPECR SPR_ENCODE(1022) |
| 299 | #define PIR SPR_ENCODE(1023) | 349 | #define PIR SPR_ENCODE(1023) |
| 300 | 350 | ||
| 301 | -#define TARGET_PAGE_BITS 12 | ||
| 302 | -#include "cpu-all.h" | ||
| 303 | - | ||
| 304 | /* Memory access type : | 351 | /* Memory access type : |
| 305 | * may be needed for precise access rights control and precise exceptions. | 352 | * may be needed for precise access rights control and precise exceptions. |
| 306 | */ | 353 | */ |