Commit 85c4adf65f20437c428a1ebf2d3293dd56a53596

Authored by bellard
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 */