Commit 3608160206ed55c35be916df0f5d43dccc183513
1 parent
3b46e624
Coding style fixes in PowerPC related code (no functional change):
- avoid useless blanks at EOL. - avoid tabs. - fix wrapping lines on 80 chars terminals. - add missing ';' at macros EOL to avoid confusing auto-identers. - fix identation. - Remove historical macros in micro-ops (PARAM, SPARAM, PPC_OP, regs) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3178 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
13 changed files
with
274 additions
and
267 deletions
hw/ppc405_uc.c
| @@ -924,7 +924,8 @@ enum { | @@ -924,7 +924,8 @@ enum { | ||
| 924 | SDRAM0_CFGDATA = 0x011, | 924 | SDRAM0_CFGDATA = 0x011, |
| 925 | }; | 925 | }; |
| 926 | 926 | ||
| 927 | -static uint32_t sdram_bcr (target_phys_addr_t ram_base, target_phys_addr_t ram_size) | 927 | +static uint32_t sdram_bcr (target_phys_addr_t ram_base, |
| 928 | + target_phys_addr_t ram_size) | ||
| 928 | { | 929 | { |
| 929 | uint32_t bcr; | 930 | uint32_t bcr; |
| 930 | 931 | ||
| @@ -1217,9 +1218,11 @@ void ppc405_sdram_init (CPUState *env, qemu_irq irq, int nbanks, | @@ -1217,9 +1218,11 @@ void ppc405_sdram_init (CPUState *env, qemu_irq irq, int nbanks, | ||
| 1217 | sdram->irq = irq; | 1218 | sdram->irq = irq; |
| 1218 | sdram->nbanks = nbanks; | 1219 | sdram->nbanks = nbanks; |
| 1219 | memset(sdram->ram_bases, 0, 4 * sizeof(target_phys_addr_t)); | 1220 | memset(sdram->ram_bases, 0, 4 * sizeof(target_phys_addr_t)); |
| 1220 | - memcpy(sdram->ram_bases, ram_bases, nbanks * sizeof(target_phys_addr_t)); | 1221 | + memcpy(sdram->ram_bases, ram_bases, |
| 1222 | + nbanks * sizeof(target_phys_addr_t)); | ||
| 1221 | memset(sdram->ram_sizes, 0, 4 * sizeof(target_phys_addr_t)); | 1223 | memset(sdram->ram_sizes, 0, 4 * sizeof(target_phys_addr_t)); |
| 1222 | - memcpy(sdram->ram_sizes, ram_sizes, nbanks * sizeof(target_phys_addr_t)); | 1224 | + memcpy(sdram->ram_sizes, ram_sizes, |
| 1225 | + nbanks * sizeof(target_phys_addr_t)); | ||
| 1223 | sdram_reset(sdram); | 1226 | sdram_reset(sdram); |
| 1224 | qemu_register_reset(&sdram_reset, sdram); | 1227 | qemu_register_reset(&sdram_reset, sdram); |
| 1225 | ppc_dcr_register(env, SDRAM0_CFGADDR, | 1228 | ppc_dcr_register(env, SDRAM0_CFGADDR, |
| @@ -2212,7 +2215,6 @@ static void ppc4xx_gpt_set_outputs (ppc4xx_gpt_t *gpt) | @@ -2212,7 +2215,6 @@ static void ppc4xx_gpt_set_outputs (ppc4xx_gpt_t *gpt) | ||
| 2212 | } | 2215 | } |
| 2213 | mask = mask >> 1; | 2216 | mask = mask >> 1; |
| 2214 | } | 2217 | } |
| 2215 | - | ||
| 2216 | } | 2218 | } |
| 2217 | 2219 | ||
| 2218 | static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt) | 2220 | static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt) |
| @@ -2228,7 +2230,6 @@ static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt) | @@ -2228,7 +2230,6 @@ static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt) | ||
| 2228 | qemu_irq_lower(gpt->irqs[i]); | 2230 | qemu_irq_lower(gpt->irqs[i]); |
| 2229 | mask = mask >> 1; | 2231 | mask = mask >> 1; |
| 2230 | } | 2232 | } |
| 2231 | - | ||
| 2232 | } | 2233 | } |
| 2233 | 2234 | ||
| 2234 | static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt) | 2235 | static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt) |
hw/ppc_chrp.c
| @@ -46,22 +46,26 @@ static int macio_nvram_mem_index = -1; | @@ -46,22 +46,26 @@ static int macio_nvram_mem_index = -1; | ||
| 46 | 46 | ||
| 47 | /* DBDMA: currently no op - should suffice right now */ | 47 | /* DBDMA: currently no op - should suffice right now */ |
| 48 | 48 | ||
| 49 | -static void dbdma_writeb (void *opaque, target_phys_addr_t addr, uint32_t value) | 49 | +static void dbdma_writeb (void *opaque, |
| 50 | + target_phys_addr_t addr, uint32_t value) | ||
| 50 | { | 51 | { |
| 51 | printf("%s: 0x" PADDRX " <= 0x%08x\n", __func__, addr, value); | 52 | printf("%s: 0x" PADDRX " <= 0x%08x\n", __func__, addr, value); |
| 52 | } | 53 | } |
| 53 | 54 | ||
| 54 | -static void dbdma_writew (void *opaque, target_phys_addr_t addr, uint32_t value) | 55 | +static void dbdma_writew (void *opaque, |
| 56 | + target_phys_addr_t addr, uint32_t value) | ||
| 55 | { | 57 | { |
| 56 | } | 58 | } |
| 57 | 59 | ||
| 58 | -static void dbdma_writel (void *opaque, target_phys_addr_t addr, uint32_t value) | 60 | +static void dbdma_writel (void *opaque, |
| 61 | + target_phys_addr_t addr, uint32_t value) | ||
| 59 | { | 62 | { |
| 60 | } | 63 | } |
| 61 | 64 | ||
| 62 | static uint32_t dbdma_readb (void *opaque, target_phys_addr_t addr) | 65 | static uint32_t dbdma_readb (void *opaque, target_phys_addr_t addr) |
| 63 | { | 66 | { |
| 64 | printf("%s: 0x" PADDRX " => 0x00000000\n", __func__, addr); | 67 | printf("%s: 0x" PADDRX " => 0x00000000\n", __func__, addr); |
| 68 | + | ||
| 65 | return 0; | 69 | return 0; |
| 66 | } | 70 | } |
| 67 | 71 | ||
| @@ -92,7 +96,8 @@ typedef struct MacIONVRAMState { | @@ -92,7 +96,8 @@ typedef struct MacIONVRAMState { | ||
| 92 | uint8_t data[0x2000]; | 96 | uint8_t data[0x2000]; |
| 93 | } MacIONVRAMState; | 97 | } MacIONVRAMState; |
| 94 | 98 | ||
| 95 | -static void macio_nvram_writeb (void *opaque, target_phys_addr_t addr, uint32_t value) | 99 | +static void macio_nvram_writeb (void *opaque, |
| 100 | + target_phys_addr_t addr, uint32_t value) | ||
| 96 | { | 101 | { |
| 97 | MacIONVRAMState *s = opaque; | 102 | MacIONVRAMState *s = opaque; |
| 98 | addr = (addr >> 4) & 0x1fff; | 103 | addr = (addr >> 4) & 0x1fff; |
| @@ -108,6 +113,7 @@ static uint32_t macio_nvram_readb (void *opaque, target_phys_addr_t addr) | @@ -108,6 +113,7 @@ static uint32_t macio_nvram_readb (void *opaque, target_phys_addr_t addr) | ||
| 108 | addr = (addr >> 4) & 0x1fff; | 113 | addr = (addr >> 4) & 0x1fff; |
| 109 | value = s->data[addr]; | 114 | value = s->data[addr]; |
| 110 | // printf("macio_nvram_readb %04x = %02x\n", addr, value); | 115 | // printf("macio_nvram_readb %04x = %02x\n", addr, value); |
| 116 | + | ||
| 111 | return value; | 117 | return value; |
| 112 | } | 118 | } |
| 113 | 119 | ||
| @@ -123,7 +129,7 @@ static CPUReadMemoryFunc *macio_nvram_read[] = { | @@ -123,7 +129,7 @@ static CPUReadMemoryFunc *macio_nvram_read[] = { | ||
| 123 | &macio_nvram_readb, | 129 | &macio_nvram_readb, |
| 124 | }; | 130 | }; |
| 125 | 131 | ||
| 126 | -static MacIONVRAMState *macio_nvram_init(void) | 132 | +static MacIONVRAMState *macio_nvram_init (void) |
| 127 | { | 133 | { |
| 128 | MacIONVRAMState *s; | 134 | MacIONVRAMState *s; |
| 129 | s = qemu_mallocz(sizeof(MacIONVRAMState)); | 135 | s = qemu_mallocz(sizeof(MacIONVRAMState)); |
| @@ -131,11 +137,12 @@ static MacIONVRAMState *macio_nvram_init(void) | @@ -131,11 +137,12 @@ static MacIONVRAMState *macio_nvram_init(void) | ||
| 131 | return NULL; | 137 | return NULL; |
| 132 | macio_nvram_mem_index = cpu_register_io_memory(0, macio_nvram_read, | 138 | macio_nvram_mem_index = cpu_register_io_memory(0, macio_nvram_read, |
| 133 | macio_nvram_write, s); | 139 | macio_nvram_write, s); |
| 140 | + | ||
| 134 | return s; | 141 | return s; |
| 135 | } | 142 | } |
| 136 | 143 | ||
| 137 | -static void macio_map(PCIDevice *pci_dev, int region_num, | ||
| 138 | - uint32_t addr, uint32_t size, int type) | 144 | +static void macio_map (PCIDevice *pci_dev, int region_num, |
| 145 | + uint32_t addr, uint32_t size, int type) | ||
| 139 | { | 146 | { |
| 140 | if (heathrow_pic_mem_index >= 0) { | 147 | if (heathrow_pic_mem_index >= 0) { |
| 141 | cpu_register_physical_memory(addr + 0x00000, 0x1000, | 148 | cpu_register_physical_memory(addr + 0x00000, 0x1000, |
| @@ -152,10 +159,11 @@ static void macio_map(PCIDevice *pci_dev, int region_num, | @@ -152,10 +159,11 @@ static void macio_map(PCIDevice *pci_dev, int region_num, | ||
| 152 | openpic_mem_index); | 159 | openpic_mem_index); |
| 153 | } | 160 | } |
| 154 | if (macio_nvram_mem_index >= 0) | 161 | if (macio_nvram_mem_index >= 0) |
| 155 | - cpu_register_physical_memory(addr + 0x60000, 0x20000, macio_nvram_mem_index); | 162 | + cpu_register_physical_memory(addr + 0x60000, 0x20000, |
| 163 | + macio_nvram_mem_index); | ||
| 156 | } | 164 | } |
| 157 | 165 | ||
| 158 | -static void macio_init(PCIBus *bus, int device_id) | 166 | +static void macio_init (PCIBus *bus, int device_id) |
| 159 | { | 167 | { |
| 160 | PCIDevice *d; | 168 | PCIDevice *d; |
| 161 | 169 | ||
| @@ -204,7 +212,8 @@ static CPUReadMemoryFunc *unin_read[] = { | @@ -204,7 +212,8 @@ static CPUReadMemoryFunc *unin_read[] = { | ||
| 204 | 212 | ||
| 205 | /* temporary frame buffer OSI calls for the video.x driver. The right | 213 | /* temporary frame buffer OSI calls for the video.x driver. The right |
| 206 | solution is to modify the driver to use VGA PCI I/Os */ | 214 | solution is to modify the driver to use VGA PCI I/Os */ |
| 207 | -static int vga_osi_call(CPUState *env) | 215 | +/* XXX: to be removed. This is no way related to emulation */ |
| 216 | +static int vga_osi_call (CPUState *env) | ||
| 208 | { | 217 | { |
| 209 | static int vga_vbl_enabled; | 218 | static int vga_vbl_enabled; |
| 210 | int linesize; | 219 | int linesize; |
| @@ -264,10 +273,11 @@ static int vga_osi_call(CPUState *env) | @@ -264,10 +273,11 @@ static int vga_osi_call(CPUState *env) | ||
| 264 | fprintf(stderr, "unsupported OSI call R5=" REGX "\n", env->gpr[5]); | 273 | fprintf(stderr, "unsupported OSI call R5=" REGX "\n", env->gpr[5]); |
| 265 | break; | 274 | break; |
| 266 | } | 275 | } |
| 276 | + | ||
| 267 | return 1; /* osi_call handled */ | 277 | return 1; /* osi_call handled */ |
| 268 | } | 278 | } |
| 269 | 279 | ||
| 270 | -static uint8_t nvram_chksum(const uint8_t *buf, int n) | 280 | +static uint8_t nvram_chksum (const uint8_t *buf, int n) |
| 271 | { | 281 | { |
| 272 | int sum, i; | 282 | int sum, i; |
| 273 | sum = 0; | 283 | sum = 0; |
| @@ -277,7 +287,7 @@ static uint8_t nvram_chksum(const uint8_t *buf, int n) | @@ -277,7 +287,7 @@ static uint8_t nvram_chksum(const uint8_t *buf, int n) | ||
| 277 | } | 287 | } |
| 278 | 288 | ||
| 279 | /* set a free Mac OS NVRAM partition */ | 289 | /* set a free Mac OS NVRAM partition */ |
| 280 | -void pmac_format_nvram_partition(uint8_t *buf, int len) | 290 | +void pmac_format_nvram_partition (uint8_t *buf, int len) |
| 281 | { | 291 | { |
| 282 | char partition_name[12] = "wwwwwwwwwwww"; | 292 | char partition_name[12] = "wwwwwwwwwwww"; |
| 283 | 293 | ||
| @@ -503,8 +513,7 @@ static void ppc_chrp_init (int ram_size, int vga_ram_size, int boot_device, | @@ -503,8 +513,7 @@ static void ppc_chrp_init (int ram_size, int vga_ram_size, int boot_device, | ||
| 503 | ((qemu_irq *)env->irq_inputs)[PPC970_INPUT_HRESET]; | 513 | ((qemu_irq *)env->irq_inputs)[PPC970_INPUT_HRESET]; |
| 504 | break; | 514 | break; |
| 505 | default: | 515 | default: |
| 506 | - cpu_abort(env, | ||
| 507 | - "Only bus model not supported on mac99 machine\n"); | 516 | + cpu_abort(env, "Bus model not supported on mac99 machine\n"); |
| 508 | exit(1); | 517 | exit(1); |
| 509 | } | 518 | } |
| 510 | } | 519 | } |
hw/ppc_prep.c
| @@ -76,7 +76,7 @@ static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 }; | @@ -76,7 +76,7 @@ static int ne2000_irq[NE2000_NB_MAX] = { 9, 10, 11, 3, 4, 5 }; | ||
| 76 | int speaker_data_on; | 76 | int speaker_data_on; |
| 77 | int dummy_refresh_clock; | 77 | int dummy_refresh_clock; |
| 78 | 78 | ||
| 79 | -static void speaker_ioport_write(void *opaque, uint32_t addr, uint32_t val) | 79 | +static void speaker_ioport_write (void *opaque, uint32_t addr, uint32_t val) |
| 80 | { | 80 | { |
| 81 | #if 0 | 81 | #if 0 |
| 82 | speaker_data_on = (val >> 1) & 1; | 82 | speaker_data_on = (val >> 1) & 1; |
| @@ -110,7 +110,7 @@ static inline uint32_t _PPC_intack_read (target_phys_addr_t addr) | @@ -110,7 +110,7 @@ static inline uint32_t _PPC_intack_read (target_phys_addr_t addr) | ||
| 110 | 110 | ||
| 111 | if (addr == 0xBFFFFFF0) | 111 | if (addr == 0xBFFFFFF0) |
| 112 | retval = pic_intack_read(isa_pic); | 112 | retval = pic_intack_read(isa_pic); |
| 113 | - // printf("%s: 0x%08x <= %d\n", __func__, addr, retval); | 113 | + // printf("%s: 0x%08x <= %d\n", __func__, addr, retval); |
| 114 | 114 | ||
| 115 | return retval; | 115 | return retval; |
| 116 | } | 116 | } |
| @@ -177,12 +177,14 @@ static struct { | @@ -177,12 +177,14 @@ static struct { | ||
| 177 | /* Error diagnostic */ | 177 | /* Error diagnostic */ |
| 178 | } XCSR; | 178 | } XCSR; |
| 179 | 179 | ||
| 180 | -static void PPC_XCSR_writeb (void *opaque, target_phys_addr_t addr, uint32_t value) | 180 | +static void PPC_XCSR_writeb (void *opaque, |
| 181 | + target_phys_addr_t addr, uint32_t value) | ||
| 181 | { | 182 | { |
| 182 | printf("%s: 0x%08lx => 0x%08x\n", __func__, (long)addr, value); | 183 | printf("%s: 0x%08lx => 0x%08x\n", __func__, (long)addr, value); |
| 183 | } | 184 | } |
| 184 | 185 | ||
| 185 | -static void PPC_XCSR_writew (void *opaque, target_phys_addr_t addr, uint32_t value) | 186 | +static void PPC_XCSR_writew (void *opaque, |
| 187 | + target_phys_addr_t addr, uint32_t value) | ||
| 186 | { | 188 | { |
| 187 | #ifdef TARGET_WORDS_BIGENDIAN | 189 | #ifdef TARGET_WORDS_BIGENDIAN |
| 188 | value = bswap16(value); | 190 | value = bswap16(value); |
| @@ -190,7 +192,8 @@ static void PPC_XCSR_writew (void *opaque, target_phys_addr_t addr, uint32_t val | @@ -190,7 +192,8 @@ static void PPC_XCSR_writew (void *opaque, target_phys_addr_t addr, uint32_t val | ||
| 190 | printf("%s: 0x%08lx => 0x%08x\n", __func__, (long)addr, value); | 192 | printf("%s: 0x%08lx => 0x%08x\n", __func__, (long)addr, value); |
| 191 | } | 193 | } |
| 192 | 194 | ||
| 193 | -static void PPC_XCSR_writel (void *opaque, target_phys_addr_t addr, uint32_t value) | 195 | +static void PPC_XCSR_writel (void *opaque, |
| 196 | + target_phys_addr_t addr, uint32_t value) | ||
| 194 | { | 197 | { |
| 195 | #ifdef TARGET_WORDS_BIGENDIAN | 198 | #ifdef TARGET_WORDS_BIGENDIAN |
| 196 | value = bswap32(value); | 199 | value = bswap32(value); |
| @@ -664,7 +667,8 @@ static void ppc_prep_init (int ram_size, int vga_ram_size, int boot_device, | @@ -664,7 +667,8 @@ static void ppc_prep_init (int ram_size, int vga_ram_size, int boot_device, | ||
| 664 | cpu_register_physical_memory(0xBFFFFFF0, 0x4, PPC_io_memory); | 667 | cpu_register_physical_memory(0xBFFFFFF0, 0x4, PPC_io_memory); |
| 665 | /* PowerPC control and status register group */ | 668 | /* PowerPC control and status register group */ |
| 666 | #if 0 | 669 | #if 0 |
| 667 | - PPC_io_memory = cpu_register_io_memory(0, PPC_XCSR_read, PPC_XCSR_write, NULL); | 670 | + PPC_io_memory = cpu_register_io_memory(0, PPC_XCSR_read, PPC_XCSR_write, |
| 671 | + NULL); | ||
| 668 | cpu_register_physical_memory(0xFEFF0000, 0x1000, PPC_io_memory); | 672 | cpu_register_physical_memory(0xFEFF0000, 0x1000, PPC_io_memory); |
| 669 | #endif | 673 | #endif |
| 670 | 674 |
target-ppc/cpu.h
| @@ -822,18 +822,18 @@ struct mmu_ctx_t { | @@ -822,18 +822,18 @@ struct mmu_ctx_t { | ||
| 822 | }; | 822 | }; |
| 823 | 823 | ||
| 824 | /*****************************************************************************/ | 824 | /*****************************************************************************/ |
| 825 | -CPUPPCState *cpu_ppc_init(void); | ||
| 826 | -int cpu_ppc_exec(CPUPPCState *s); | ||
| 827 | -void cpu_ppc_close(CPUPPCState *s); | 825 | +CPUPPCState *cpu_ppc_init (void); |
| 826 | +int cpu_ppc_exec (CPUPPCState *s); | ||
| 827 | +void cpu_ppc_close (CPUPPCState *s); | ||
| 828 | /* you can call this signal handler from your SIGBUS and SIGSEGV | 828 | /* you can call this signal handler from your SIGBUS and SIGSEGV |
| 829 | signal handlers to inform the virtual CPU of exceptions. non zero | 829 | signal handlers to inform the virtual CPU of exceptions. non zero |
| 830 | is returned if the signal was handled by the virtual CPU. */ | 830 | is returned if the signal was handled by the virtual CPU. */ |
| 831 | -int cpu_ppc_signal_handler(int host_signum, void *pinfo, | ||
| 832 | - void *puc); | 831 | +int cpu_ppc_signal_handler (int host_signum, void *pinfo, |
| 832 | + void *puc); | ||
| 833 | 833 | ||
| 834 | void do_interrupt (CPUPPCState *env); | 834 | void do_interrupt (CPUPPCState *env); |
| 835 | void ppc_hw_interrupt (CPUPPCState *env); | 835 | void ppc_hw_interrupt (CPUPPCState *env); |
| 836 | -void cpu_loop_exit(void); | 836 | +void cpu_loop_exit (void); |
| 837 | 837 | ||
| 838 | void dump_stack (CPUPPCState *env); | 838 | void dump_stack (CPUPPCState *env); |
| 839 | 839 | ||
| @@ -891,7 +891,7 @@ void store_40x_sler (CPUPPCState *env, uint32_t val); | @@ -891,7 +891,7 @@ void store_40x_sler (CPUPPCState *env, uint32_t val); | ||
| 891 | void store_booke_tcr (CPUPPCState *env, target_ulong val); | 891 | void store_booke_tcr (CPUPPCState *env, target_ulong val); |
| 892 | void store_booke_tsr (CPUPPCState *env, target_ulong val); | 892 | void store_booke_tsr (CPUPPCState *env, target_ulong val); |
| 893 | void ppc_tlb_invalidate_all (CPUPPCState *env); | 893 | void ppc_tlb_invalidate_all (CPUPPCState *env); |
| 894 | -int ppcemb_tlb_search (CPUPPCState *env, target_ulong address); | 894 | +int ppcemb_tlb_search (CPUPPCState *env, target_ulong address, uint32_t pid); |
| 895 | #endif | 895 | #endif |
| 896 | #endif | 896 | #endif |
| 897 | 897 | ||
| @@ -915,12 +915,12 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, target_ulong val); | @@ -915,12 +915,12 @@ int ppc_dcr_write (ppc_dcr_t *dcr_env, int dcrn, target_ulong val); | ||
| 915 | #define XER_OV 30 | 915 | #define XER_OV 30 |
| 916 | #define XER_CA 29 | 916 | #define XER_CA 29 |
| 917 | #define XER_CMP 8 | 917 | #define XER_CMP 8 |
| 918 | -#define XER_BC 0 | 918 | +#define XER_BC 0 |
| 919 | #define xer_so env->xer[4] | 919 | #define xer_so env->xer[4] |
| 920 | #define xer_ov env->xer[6] | 920 | #define xer_ov env->xer[6] |
| 921 | #define xer_ca env->xer[2] | 921 | #define xer_ca env->xer[2] |
| 922 | #define xer_cmp env->xer[1] | 922 | #define xer_cmp env->xer[1] |
| 923 | -#define xer_bc env->xer[0] | 923 | +#define xer_bc env->xer[0] |
| 924 | 924 | ||
| 925 | /* SPR definitions */ | 925 | /* SPR definitions */ |
| 926 | #define SPR_MQ (0x000) | 926 | #define SPR_MQ (0x000) |
target-ppc/exec.h
| @@ -58,10 +58,6 @@ register unsigned long T2 asm(AREG3); | @@ -58,10 +58,6 @@ register unsigned long T2 asm(AREG3); | ||
| 58 | #define T1_avr (env->t1_avr) | 58 | #define T1_avr (env->t1_avr) |
| 59 | #define T2_avr (env->t2_avr) | 59 | #define T2_avr (env->t2_avr) |
| 60 | 60 | ||
| 61 | -/* XXX: to clean: remove this mess */ | ||
| 62 | -#define PARAM(n) ((uint32_t)PARAM##n) | ||
| 63 | -#define SPARAM(n) ((int32_t)PARAM##n) | ||
| 64 | - | ||
| 65 | #define FT0 (env->ft0) | 61 | #define FT0 (env->ft0) |
| 66 | #define FT1 (env->ft1) | 62 | #define FT1 (env->ft1) |
| 67 | #define FT2 (env->ft2) | 63 | #define FT2 (env->ft2) |
| @@ -111,18 +107,19 @@ void ppc6xx_tlb_store (CPUState *env, target_ulong EPN, int way, int is_code, | @@ -111,18 +107,19 @@ void ppc6xx_tlb_store (CPUState *env, target_ulong EPN, int way, int is_code, | ||
| 111 | target_ulong pte0, target_ulong pte1); | 107 | target_ulong pte0, target_ulong pte1); |
| 112 | void ppc4xx_tlb_invalidate_all (CPUState *env); | 108 | void ppc4xx_tlb_invalidate_all (CPUState *env); |
| 113 | 109 | ||
| 114 | -static inline void env_to_regs(void) | 110 | +static inline void env_to_regs (void) |
| 115 | { | 111 | { |
| 116 | } | 112 | } |
| 117 | 113 | ||
| 118 | -static inline void regs_to_env(void) | 114 | +static inline void regs_to_env (void) |
| 119 | { | 115 | { |
| 120 | } | 116 | } |
| 121 | 117 | ||
| 122 | int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw, | 118 | int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw, |
| 123 | int is_user, int is_softmmu); | 119 | int is_user, int is_softmmu); |
| 124 | 120 | ||
| 125 | -static inline int cpu_halted(CPUState *env) { | 121 | +static inline int cpu_halted (CPUState *env) |
| 122 | +{ | ||
| 126 | if (!env->halted) | 123 | if (!env->halted) |
| 127 | return 0; | 124 | return 0; |
| 128 | if (env->msr[MSR_EE] && (env->interrupt_request & CPU_INTERRUPT_HARD)) { | 125 | if (env->msr[MSR_EE] && (env->interrupt_request & CPU_INTERRUPT_HARD)) { |
target-ppc/helper.c
| @@ -64,6 +64,7 @@ target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr) | @@ -64,6 +64,7 @@ target_phys_addr_t cpu_get_phys_page_debug (CPUState *env, target_ulong addr) | ||
| 64 | { | 64 | { |
| 65 | return addr; | 65 | return addr; |
| 66 | } | 66 | } |
| 67 | + | ||
| 67 | #else | 68 | #else |
| 68 | /* Common routines used by software and hardware TLBs emulation */ | 69 | /* Common routines used by software and hardware TLBs emulation */ |
| 69 | static inline int pte_is_valid (target_ulong pte0) | 70 | static inline int pte_is_valid (target_ulong pte0) |
| @@ -635,7 +636,8 @@ static int get_segment (CPUState *env, mmu_ctx_t *ctx, | @@ -635,7 +636,8 @@ static int get_segment (CPUState *env, mmu_ctx_t *ctx, | ||
| 635 | /* Generic TLB check function for embedded PowerPC implementations */ | 636 | /* Generic TLB check function for embedded PowerPC implementations */ |
| 636 | static int ppcemb_tlb_check (CPUState *env, ppcemb_tlb_t *tlb, | 637 | static int ppcemb_tlb_check (CPUState *env, ppcemb_tlb_t *tlb, |
| 637 | target_phys_addr_t *raddrp, | 638 | target_phys_addr_t *raddrp, |
| 638 | - target_ulong address, int i) | 639 | + target_ulong address, |
| 640 | + uint32_t pid, int ext, int i) | ||
| 639 | { | 641 | { |
| 640 | target_ulong mask; | 642 | target_ulong mask; |
| 641 | 643 | ||
| @@ -649,22 +651,25 @@ static int ppcemb_tlb_check (CPUState *env, ppcemb_tlb_t *tlb, | @@ -649,22 +651,25 @@ static int ppcemb_tlb_check (CPUState *env, ppcemb_tlb_t *tlb, | ||
| 649 | if (loglevel != 0) { | 651 | if (loglevel != 0) { |
| 650 | fprintf(logfile, "%s: TLB %d address " ADDRX " PID %d <=> " | 652 | fprintf(logfile, "%s: TLB %d address " ADDRX " PID %d <=> " |
| 651 | ADDRX " " ADDRX " %d\n", | 653 | ADDRX " " ADDRX " %d\n", |
| 652 | - __func__, i, address, (int)env->spr[SPR_40x_PID], | ||
| 653 | - tlb->EPN, mask, (int)tlb->PID); | 654 | + __func__, i, address, pid, tlb->EPN, mask, (int)tlb->PID); |
| 654 | } | 655 | } |
| 655 | /* Check PID */ | 656 | /* Check PID */ |
| 656 | - if (tlb->PID != 0 && tlb->PID != env->spr[SPR_40x_PID]) | 657 | + if (tlb->PID != 0 && tlb->PID != pid) |
| 657 | return -1; | 658 | return -1; |
| 658 | /* Check effective address */ | 659 | /* Check effective address */ |
| 659 | if ((address & mask) != tlb->EPN) | 660 | if ((address & mask) != tlb->EPN) |
| 660 | return -1; | 661 | return -1; |
| 661 | *raddrp = (tlb->RPN & mask) | (address & ~mask); | 662 | *raddrp = (tlb->RPN & mask) | (address & ~mask); |
| 663 | + if (ext) { | ||
| 664 | + /* Extend the physical address to 36 bits */ | ||
| 665 | + *raddrp |= (target_phys_addr_t)(tlb->RPN & 0xF) << 32; | ||
| 666 | + } | ||
| 662 | 667 | ||
| 663 | return 0; | 668 | return 0; |
| 664 | } | 669 | } |
| 665 | 670 | ||
| 666 | /* Generic TLB search function for PowerPC embedded implementations */ | 671 | /* Generic TLB search function for PowerPC embedded implementations */ |
| 667 | -int ppcemb_tlb_search (CPUState *env, target_ulong address) | 672 | +int ppcemb_tlb_search (CPUPPCState *env, target_ulong address, uint32_t pid) |
| 668 | { | 673 | { |
| 669 | ppcemb_tlb_t *tlb; | 674 | ppcemb_tlb_t *tlb; |
| 670 | target_phys_addr_t raddr; | 675 | target_phys_addr_t raddr; |
| @@ -674,7 +679,7 @@ int ppcemb_tlb_search (CPUState *env, target_ulong address) | @@ -674,7 +679,7 @@ int ppcemb_tlb_search (CPUState *env, target_ulong address) | ||
| 674 | ret = -1; | 679 | ret = -1; |
| 675 | for (i = 0; i < 64; i++) { | 680 | for (i = 0; i < 64; i++) { |
| 676 | tlb = &env->tlb[i].tlbe; | 681 | tlb = &env->tlb[i].tlbe; |
| 677 | - if (ppcemb_tlb_check(env, tlb, &raddr, address, i) == 0) { | 682 | + if (ppcemb_tlb_check(env, tlb, &raddr, address, pid, 0, i) == 0) { |
| 678 | ret = i; | 683 | ret = i; |
| 679 | break; | 684 | break; |
| 680 | } | 685 | } |
| @@ -703,7 +708,7 @@ void ppc4xx_tlb_invalidate_all (CPUState *env) | @@ -703,7 +708,7 @@ void ppc4xx_tlb_invalidate_all (CPUState *env) | ||
| 703 | tlb_flush(env, 1); | 708 | tlb_flush(env, 1); |
| 704 | } | 709 | } |
| 705 | 710 | ||
| 706 | -int mmu4xx_get_physical_address (CPUState *env, mmu_ctx_t *ctx, | 711 | +int mmu40x_get_physical_address (CPUState *env, mmu_ctx_t *ctx, |
| 707 | target_ulong address, int rw, int access_type) | 712 | target_ulong address, int rw, int access_type) |
| 708 | { | 713 | { |
| 709 | ppcemb_tlb_t *tlb; | 714 | ppcemb_tlb_t *tlb; |
| @@ -714,7 +719,8 @@ int mmu4xx_get_physical_address (CPUState *env, mmu_ctx_t *ctx, | @@ -714,7 +719,8 @@ int mmu4xx_get_physical_address (CPUState *env, mmu_ctx_t *ctx, | ||
| 714 | raddr = -1; | 719 | raddr = -1; |
| 715 | for (i = 0; i < env->nb_tlb; i++) { | 720 | for (i = 0; i < env->nb_tlb; i++) { |
| 716 | tlb = &env->tlb[i].tlbe; | 721 | tlb = &env->tlb[i].tlbe; |
| 717 | - if (ppcemb_tlb_check(env, tlb, &raddr, address, i) < 0) | 722 | + if (ppcemb_tlb_check(env, tlb, &raddr, address, |
| 723 | + env->spr[SPR_40x_PID], 0, i) < 0) | ||
| 718 | continue; | 724 | continue; |
| 719 | zsel = (tlb->attr >> 4) & 0xF; | 725 | zsel = (tlb->attr >> 4) & 0xF; |
| 720 | zpr = (env->spr[SPR_40x_ZPR] >> (28 - (2 * zsel))) & 0x3; | 726 | zpr = (env->spr[SPR_40x_ZPR] >> (28 - (2 * zsel))) & 0x3; |
| @@ -890,7 +896,7 @@ int get_physical_address (CPUState *env, mmu_ctx_t *ctx, target_ulong eaddr, | @@ -890,7 +896,7 @@ int get_physical_address (CPUState *env, mmu_ctx_t *ctx, target_ulong eaddr, | ||
| 890 | break; | 896 | break; |
| 891 | case PPC_FLAGS_MMU_SOFT_4xx: | 897 | case PPC_FLAGS_MMU_SOFT_4xx: |
| 892 | case PPC_FLAGS_MMU_403: | 898 | case PPC_FLAGS_MMU_403: |
| 893 | - ret = mmu4xx_get_physical_address(env, ctx, eaddr, | 899 | + ret = mmu40x_get_physical_address(env, ctx, eaddr, |
| 894 | rw, access_type); | 900 | rw, access_type); |
| 895 | break; | 901 | break; |
| 896 | case PPC_FLAGS_MMU_601: | 902 | case PPC_FLAGS_MMU_601: |
| @@ -1536,7 +1542,7 @@ void ppc_hw_interrupt (CPUState *env) | @@ -1536,7 +1542,7 @@ void ppc_hw_interrupt (CPUState *env) | ||
| 1536 | env->exception_index = -1; | 1542 | env->exception_index = -1; |
| 1537 | } | 1543 | } |
| 1538 | #else /* defined (CONFIG_USER_ONLY) */ | 1544 | #else /* defined (CONFIG_USER_ONLY) */ |
| 1539 | -static void dump_syscall(CPUState *env) | 1545 | +static void dump_syscall (CPUState *env) |
| 1540 | { | 1546 | { |
| 1541 | fprintf(logfile, "syscall r0=0x" REGX " r3=0x" REGX " r4=0x" REGX | 1547 | fprintf(logfile, "syscall r0=0x" REGX " r3=0x" REGX " r4=0x" REGX |
| 1542 | " r5=0x" REGX " r6=0x" REGX " nip=0x" ADDRX "\n", | 1548 | " r5=0x" REGX " r6=0x" REGX " nip=0x" ADDRX "\n", |
target-ppc/op.c
| @@ -24,16 +24,6 @@ | @@ -24,16 +24,6 @@ | ||
| 24 | #include "exec.h" | 24 | #include "exec.h" |
| 25 | #include "op_helper.h" | 25 | #include "op_helper.h" |
| 26 | 26 | ||
| 27 | -/* XXX: this is to be suppressed */ | ||
| 28 | -#define regs (env) | ||
| 29 | - | ||
| 30 | -#define FT0 (env->ft0) | ||
| 31 | -#define FT1 (env->ft1) | ||
| 32 | -#define FT2 (env->ft2) | ||
| 33 | - | ||
| 34 | -/* XXX: this is to be suppressed... */ | ||
| 35 | -#define PPC_OP(name) void OPPROTO glue(op_, name)(void) | ||
| 36 | - | ||
| 37 | #define REG 0 | 27 | #define REG 0 |
| 38 | #include "op_template.h" | 28 | #include "op_template.h" |
| 39 | 29 | ||
| @@ -139,16 +129,16 @@ void OPPROTO op_print_mem_EA (void) | @@ -139,16 +129,16 @@ void OPPROTO op_print_mem_EA (void) | ||
| 139 | 129 | ||
| 140 | /* PowerPC state maintenance operations */ | 130 | /* PowerPC state maintenance operations */ |
| 141 | /* set_Rc0 */ | 131 | /* set_Rc0 */ |
| 142 | -PPC_OP(set_Rc0) | 132 | +void OPPROTO op_set_Rc0 (void) |
| 143 | { | 133 | { |
| 144 | env->crf[0] = T0 | xer_ov; | 134 | env->crf[0] = T0 | xer_ov; |
| 145 | RETURN(); | 135 | RETURN(); |
| 146 | } | 136 | } |
| 147 | 137 | ||
| 148 | /* Set Rc1 (for floating point arithmetic) */ | 138 | /* Set Rc1 (for floating point arithmetic) */ |
| 149 | -PPC_OP(set_Rc1) | 139 | +void OPPROTO op_set_Rc1 (void) |
| 150 | { | 140 | { |
| 151 | - env->crf[1] = regs->fpscr[7]; | 141 | + env->crf[1] = env->fpscr[7]; |
| 152 | RETURN(); | 142 | RETURN(); |
| 153 | } | 143 | } |
| 154 | 144 | ||
| @@ -159,7 +149,7 @@ void OPPROTO op_reset_T0 (void) | @@ -159,7 +149,7 @@ void OPPROTO op_reset_T0 (void) | ||
| 159 | RETURN(); | 149 | RETURN(); |
| 160 | } | 150 | } |
| 161 | 151 | ||
| 162 | -PPC_OP(set_T0) | 152 | +void OPPROTO op_set_T0 (void) |
| 163 | { | 153 | { |
| 164 | T0 = (uint32_t)PARAM1; | 154 | T0 = (uint32_t)PARAM1; |
| 165 | RETURN(); | 155 | RETURN(); |
| @@ -173,7 +163,7 @@ void OPPROTO op_set_T0_64 (void) | @@ -173,7 +163,7 @@ void OPPROTO op_set_T0_64 (void) | ||
| 173 | } | 163 | } |
| 174 | #endif | 164 | #endif |
| 175 | 165 | ||
| 176 | -PPC_OP(set_T1) | 166 | +void OPPROTO op_set_T1 (void) |
| 177 | { | 167 | { |
| 178 | T1 = (uint32_t)PARAM1; | 168 | T1 = (uint32_t)PARAM1; |
| 179 | RETURN(); | 169 | RETURN(); |
| @@ -188,9 +178,9 @@ void OPPROTO op_set_T1_64 (void) | @@ -188,9 +178,9 @@ void OPPROTO op_set_T1_64 (void) | ||
| 188 | #endif | 178 | #endif |
| 189 | 179 | ||
| 190 | #if 0 // unused | 180 | #if 0 // unused |
| 191 | -PPC_OP(set_T2) | 181 | +void OPPROTO op_set_T2 (void) |
| 192 | { | 182 | { |
| 193 | - T2 = PARAM(1); | 183 | + T2 = PARAM1; |
| 194 | RETURN(); | 184 | RETURN(); |
| 195 | } | 185 | } |
| 196 | #endif | 186 | #endif |
| @@ -208,12 +198,12 @@ void OPPROTO op_move_T2_T0 (void) | @@ -208,12 +198,12 @@ void OPPROTO op_move_T2_T0 (void) | ||
| 208 | } | 198 | } |
| 209 | 199 | ||
| 210 | /* Generate exceptions */ | 200 | /* Generate exceptions */ |
| 211 | -PPC_OP(raise_exception_err) | 201 | +void OPPROTO op_raise_exception_err (void) |
| 212 | { | 202 | { |
| 213 | - do_raise_exception_err(PARAM(1), PARAM(2)); | 203 | + do_raise_exception_err(PARAM1, PARAM2); |
| 214 | } | 204 | } |
| 215 | 205 | ||
| 216 | -PPC_OP(update_nip) | 206 | +void OPPROTO op_update_nip (void) |
| 217 | { | 207 | { |
| 218 | env->nip = (uint32_t)PARAM1; | 208 | env->nip = (uint32_t)PARAM1; |
| 219 | RETURN(); | 209 | RETURN(); |
| @@ -227,26 +217,26 @@ void OPPROTO op_update_nip_64 (void) | @@ -227,26 +217,26 @@ void OPPROTO op_update_nip_64 (void) | ||
| 227 | } | 217 | } |
| 228 | #endif | 218 | #endif |
| 229 | 219 | ||
| 230 | -PPC_OP(debug) | 220 | +void OPPROTO op_debug (void) |
| 231 | { | 221 | { |
| 232 | do_raise_exception(EXCP_DEBUG); | 222 | do_raise_exception(EXCP_DEBUG); |
| 233 | } | 223 | } |
| 234 | 224 | ||
| 235 | -PPC_OP(exit_tb) | 225 | +void OPPROTO op_exit_tb (void) |
| 236 | { | 226 | { |
| 237 | EXIT_TB(); | 227 | EXIT_TB(); |
| 238 | } | 228 | } |
| 239 | 229 | ||
| 240 | /* Load/store special registers */ | 230 | /* Load/store special registers */ |
| 241 | -PPC_OP(load_cr) | 231 | +void OPPROTO op_load_cr (void) |
| 242 | { | 232 | { |
| 243 | do_load_cr(); | 233 | do_load_cr(); |
| 244 | RETURN(); | 234 | RETURN(); |
| 245 | } | 235 | } |
| 246 | 236 | ||
| 247 | -PPC_OP(store_cr) | 237 | +void OPPROTO op_store_cr (void) |
| 248 | { | 238 | { |
| 249 | - do_store_cr(PARAM(1)); | 239 | + do_store_cr(PARAM1); |
| 250 | RETURN(); | 240 | RETURN(); |
| 251 | } | 241 | } |
| 252 | 242 | ||
| @@ -262,26 +252,26 @@ void OPPROTO op_store_cro (void) | @@ -262,26 +252,26 @@ void OPPROTO op_store_cro (void) | ||
| 262 | RETURN(); | 252 | RETURN(); |
| 263 | } | 253 | } |
| 264 | 254 | ||
| 265 | -PPC_OP(load_xer_cr) | 255 | +void OPPROTO op_load_xer_cr (void) |
| 266 | { | 256 | { |
| 267 | T0 = (xer_so << 3) | (xer_ov << 2) | (xer_ca << 1); | 257 | T0 = (xer_so << 3) | (xer_ov << 2) | (xer_ca << 1); |
| 268 | RETURN(); | 258 | RETURN(); |
| 269 | } | 259 | } |
| 270 | 260 | ||
| 271 | -PPC_OP(clear_xer_ov) | 261 | +void OPPROTO op_clear_xer_ov (void) |
| 272 | { | 262 | { |
| 273 | xer_so = 0; | 263 | xer_so = 0; |
| 274 | xer_ov = 0; | 264 | xer_ov = 0; |
| 275 | RETURN(); | 265 | RETURN(); |
| 276 | } | 266 | } |
| 277 | 267 | ||
| 278 | -PPC_OP(clear_xer_ca) | 268 | +void OPPROTO op_clear_xer_ca (void) |
| 279 | { | 269 | { |
| 280 | xer_ca = 0; | 270 | xer_ca = 0; |
| 281 | RETURN(); | 271 | RETURN(); |
| 282 | } | 272 | } |
| 283 | 273 | ||
| 284 | -PPC_OP(load_xer_bc) | 274 | +void OPPROTO op_load_xer_bc (void) |
| 285 | { | 275 | { |
| 286 | T1 = xer_bc; | 276 | T1 = xer_bc; |
| 287 | RETURN(); | 277 | RETURN(); |
| @@ -293,13 +283,13 @@ void OPPROTO op_store_xer_bc (void) | @@ -293,13 +283,13 @@ void OPPROTO op_store_xer_bc (void) | ||
| 293 | RETURN(); | 283 | RETURN(); |
| 294 | } | 284 | } |
| 295 | 285 | ||
| 296 | -PPC_OP(load_xer) | 286 | +void OPPROTO op_load_xer (void) |
| 297 | { | 287 | { |
| 298 | do_load_xer(); | 288 | do_load_xer(); |
| 299 | RETURN(); | 289 | RETURN(); |
| 300 | } | 290 | } |
| 301 | 291 | ||
| 302 | -PPC_OP(store_xer) | 292 | +void OPPROTO op_store_xer (void) |
| 303 | { | 293 | { |
| 304 | do_store_xer(); | 294 | do_store_xer(); |
| 305 | RETURN(); | 295 | RETURN(); |
| @@ -307,25 +297,25 @@ PPC_OP(store_xer) | @@ -307,25 +297,25 @@ PPC_OP(store_xer) | ||
| 307 | 297 | ||
| 308 | #if !defined(CONFIG_USER_ONLY) | 298 | #if !defined(CONFIG_USER_ONLY) |
| 309 | /* Segment registers load and store */ | 299 | /* Segment registers load and store */ |
| 310 | -PPC_OP(load_sr) | 300 | +void OPPROTO op_load_sr (void) |
| 311 | { | 301 | { |
| 312 | - T0 = regs->sr[T1]; | 302 | + T0 = env->sr[T1]; |
| 313 | RETURN(); | 303 | RETURN(); |
| 314 | } | 304 | } |
| 315 | 305 | ||
| 316 | -PPC_OP(store_sr) | 306 | +void OPPROTO op_store_sr (void) |
| 317 | { | 307 | { |
| 318 | do_store_sr(env, T1, T0); | 308 | do_store_sr(env, T1, T0); |
| 319 | RETURN(); | 309 | RETURN(); |
| 320 | } | 310 | } |
| 321 | 311 | ||
| 322 | -PPC_OP(load_sdr1) | 312 | +void OPPROTO op_load_sdr1 (void) |
| 323 | { | 313 | { |
| 324 | - T0 = regs->sdr1; | 314 | + T0 = env->sdr1; |
| 325 | RETURN(); | 315 | RETURN(); |
| 326 | } | 316 | } |
| 327 | 317 | ||
| 328 | -PPC_OP(store_sdr1) | 318 | +void OPPROTO op_store_sdr1 (void) |
| 329 | { | 319 | { |
| 330 | do_store_sdr1(env, T0); | 320 | do_store_sdr1(env, T0); |
| 331 | RETURN(); | 321 | RETURN(); |
| @@ -345,13 +335,13 @@ void OPPROTO op_store_asr (void) | @@ -345,13 +335,13 @@ void OPPROTO op_store_asr (void) | ||
| 345 | } | 335 | } |
| 346 | #endif | 336 | #endif |
| 347 | 337 | ||
| 348 | -PPC_OP(load_msr) | 338 | +void OPPROTO op_load_msr (void) |
| 349 | { | 339 | { |
| 350 | T0 = do_load_msr(env); | 340 | T0 = do_load_msr(env); |
| 351 | RETURN(); | 341 | RETURN(); |
| 352 | } | 342 | } |
| 353 | 343 | ||
| 354 | -PPC_OP(store_msr) | 344 | +void OPPROTO op_store_msr (void) |
| 355 | { | 345 | { |
| 356 | do_store_msr(env, T0); | 346 | do_store_msr(env, T0); |
| 357 | RETURN(); | 347 | RETURN(); |
| @@ -397,70 +387,70 @@ void OPPROTO op_mask_spr (void) | @@ -397,70 +387,70 @@ void OPPROTO op_mask_spr (void) | ||
| 397 | RETURN(); | 387 | RETURN(); |
| 398 | } | 388 | } |
| 399 | 389 | ||
| 400 | -PPC_OP(load_lr) | 390 | +void OPPROTO op_load_lr (void) |
| 401 | { | 391 | { |
| 402 | - T0 = regs->lr; | 392 | + T0 = env->lr; |
| 403 | RETURN(); | 393 | RETURN(); |
| 404 | } | 394 | } |
| 405 | 395 | ||
| 406 | -PPC_OP(store_lr) | 396 | +void OPPROTO op_store_lr (void) |
| 407 | { | 397 | { |
| 408 | - regs->lr = T0; | 398 | + env->lr = T0; |
| 409 | RETURN(); | 399 | RETURN(); |
| 410 | } | 400 | } |
| 411 | 401 | ||
| 412 | -PPC_OP(load_ctr) | 402 | +void OPPROTO op_load_ctr (void) |
| 413 | { | 403 | { |
| 414 | - T0 = regs->ctr; | 404 | + T0 = env->ctr; |
| 415 | RETURN(); | 405 | RETURN(); |
| 416 | } | 406 | } |
| 417 | 407 | ||
| 418 | -PPC_OP(store_ctr) | 408 | +void OPPROTO op_store_ctr (void) |
| 419 | { | 409 | { |
| 420 | - regs->ctr = T0; | 410 | + env->ctr = T0; |
| 421 | RETURN(); | 411 | RETURN(); |
| 422 | } | 412 | } |
| 423 | 413 | ||
| 424 | -PPC_OP(load_tbl) | 414 | +void OPPROTO op_load_tbl (void) |
| 425 | { | 415 | { |
| 426 | - T0 = cpu_ppc_load_tbl(regs); | 416 | + T0 = cpu_ppc_load_tbl(env); |
| 427 | RETURN(); | 417 | RETURN(); |
| 428 | } | 418 | } |
| 429 | 419 | ||
| 430 | -PPC_OP(load_tbu) | 420 | +void OPPROTO op_load_tbu (void) |
| 431 | { | 421 | { |
| 432 | - T0 = cpu_ppc_load_tbu(regs); | 422 | + T0 = cpu_ppc_load_tbu(env); |
| 433 | RETURN(); | 423 | RETURN(); |
| 434 | } | 424 | } |
| 435 | 425 | ||
| 436 | #if !defined(CONFIG_USER_ONLY) | 426 | #if !defined(CONFIG_USER_ONLY) |
| 437 | -PPC_OP(store_tbl) | 427 | +void OPPROTO op_store_tbl (void) |
| 438 | { | 428 | { |
| 439 | - cpu_ppc_store_tbl(regs, T0); | 429 | + cpu_ppc_store_tbl(env, T0); |
| 440 | RETURN(); | 430 | RETURN(); |
| 441 | } | 431 | } |
| 442 | 432 | ||
| 443 | -PPC_OP(store_tbu) | 433 | +void OPPROTO op_store_tbu (void) |
| 444 | { | 434 | { |
| 445 | - cpu_ppc_store_tbu(regs, T0); | 435 | + cpu_ppc_store_tbu(env, T0); |
| 446 | RETURN(); | 436 | RETURN(); |
| 447 | } | 437 | } |
| 448 | 438 | ||
| 449 | -PPC_OP(load_decr) | 439 | +void OPPROTO op_load_decr (void) |
| 450 | { | 440 | { |
| 451 | - T0 = cpu_ppc_load_decr(regs); | 441 | + T0 = cpu_ppc_load_decr(env); |
| 452 | RETURN(); | 442 | RETURN(); |
| 453 | } | 443 | } |
| 454 | 444 | ||
| 455 | -PPC_OP(store_decr) | 445 | +void OPPROTO op_store_decr (void) |
| 456 | { | 446 | { |
| 457 | - cpu_ppc_store_decr(regs, T0); | 447 | + cpu_ppc_store_decr(env, T0); |
| 458 | RETURN(); | 448 | RETURN(); |
| 459 | } | 449 | } |
| 460 | 450 | ||
| 461 | -PPC_OP(load_ibat) | 451 | +void OPPROTO op_load_ibat (void) |
| 462 | { | 452 | { |
| 463 | - T0 = regs->IBAT[PARAM(1)][PARAM(2)]; | 453 | + T0 = env->IBAT[PARAM1][PARAM2]; |
| 464 | RETURN(); | 454 | RETURN(); |
| 465 | } | 455 | } |
| 466 | 456 | ||
| @@ -480,9 +470,9 @@ void OPPROTO op_store_ibatl (void) | @@ -480,9 +470,9 @@ void OPPROTO op_store_ibatl (void) | ||
| 480 | RETURN(); | 470 | RETURN(); |
| 481 | } | 471 | } |
| 482 | 472 | ||
| 483 | -PPC_OP(load_dbat) | 473 | +void OPPROTO op_load_dbat (void) |
| 484 | { | 474 | { |
| 485 | - T0 = regs->DBAT[PARAM(1)][PARAM(2)]; | 475 | + T0 = env->DBAT[PARAM1][PARAM2]; |
| 486 | RETURN(); | 476 | RETURN(); |
| 487 | } | 477 | } |
| 488 | 478 | ||
| @@ -504,85 +494,85 @@ void OPPROTO op_store_dbatl (void) | @@ -504,85 +494,85 @@ void OPPROTO op_store_dbatl (void) | ||
| 504 | #endif /* !defined(CONFIG_USER_ONLY) */ | 494 | #endif /* !defined(CONFIG_USER_ONLY) */ |
| 505 | 495 | ||
| 506 | /* FPSCR */ | 496 | /* FPSCR */ |
| 507 | -PPC_OP(load_fpscr) | 497 | +void OPPROTO op_load_fpscr (void) |
| 508 | { | 498 | { |
| 509 | do_load_fpscr(); | 499 | do_load_fpscr(); |
| 510 | RETURN(); | 500 | RETURN(); |
| 511 | } | 501 | } |
| 512 | 502 | ||
| 513 | -PPC_OP(store_fpscr) | 503 | +void OPPROTO op_store_fpscr (void) |
| 514 | { | 504 | { |
| 515 | do_store_fpscr(PARAM1); | 505 | do_store_fpscr(PARAM1); |
| 516 | RETURN(); | 506 | RETURN(); |
| 517 | } | 507 | } |
| 518 | 508 | ||
| 519 | -PPC_OP(reset_scrfx) | 509 | +void OPPROTO op_reset_scrfx (void) |
| 520 | { | 510 | { |
| 521 | - regs->fpscr[7] &= ~0x8; | 511 | + env->fpscr[7] &= ~0x8; |
| 522 | RETURN(); | 512 | RETURN(); |
| 523 | } | 513 | } |
| 524 | 514 | ||
| 525 | /* crf operations */ | 515 | /* crf operations */ |
| 526 | -PPC_OP(getbit_T0) | 516 | +void OPPROTO op_getbit_T0 (void) |
| 527 | { | 517 | { |
| 528 | - T0 = (T0 >> PARAM(1)) & 1; | 518 | + T0 = (T0 >> PARAM1) & 1; |
| 529 | RETURN(); | 519 | RETURN(); |
| 530 | } | 520 | } |
| 531 | 521 | ||
| 532 | -PPC_OP(getbit_T1) | 522 | +void OPPROTO op_getbit_T1 (void) |
| 533 | { | 523 | { |
| 534 | - T1 = (T1 >> PARAM(1)) & 1; | 524 | + T1 = (T1 >> PARAM1) & 1; |
| 535 | RETURN(); | 525 | RETURN(); |
| 536 | } | 526 | } |
| 537 | 527 | ||
| 538 | -PPC_OP(setcrfbit) | 528 | +void OPPROTO op_setcrfbit (void) |
| 539 | { | 529 | { |
| 540 | - T1 = (T1 & PARAM(1)) | (T0 << PARAM(2)); | 530 | + T1 = (T1 & PARAM1) | (T0 << PARAM2); |
| 541 | RETURN(); | 531 | RETURN(); |
| 542 | } | 532 | } |
| 543 | 533 | ||
| 544 | /* Branch */ | 534 | /* Branch */ |
| 545 | -#define EIP regs->nip | 535 | +#define EIP env->nip |
| 546 | 536 | ||
| 547 | -PPC_OP(setlr) | 537 | +void OPPROTO op_setlr (void) |
| 548 | { | 538 | { |
| 549 | - regs->lr = (uint32_t)PARAM1; | 539 | + env->lr = (uint32_t)PARAM1; |
| 550 | RETURN(); | 540 | RETURN(); |
| 551 | } | 541 | } |
| 552 | 542 | ||
| 553 | #if defined (TARGET_PPC64) | 543 | #if defined (TARGET_PPC64) |
| 554 | void OPPROTO op_setlr_64 (void) | 544 | void OPPROTO op_setlr_64 (void) |
| 555 | { | 545 | { |
| 556 | - regs->lr = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; | 546 | + env->lr = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; |
| 557 | RETURN(); | 547 | RETURN(); |
| 558 | } | 548 | } |
| 559 | #endif | 549 | #endif |
| 560 | 550 | ||
| 561 | -PPC_OP(goto_tb0) | 551 | +void OPPROTO op_goto_tb0 (void) |
| 562 | { | 552 | { |
| 563 | GOTO_TB(op_goto_tb0, PARAM1, 0); | 553 | GOTO_TB(op_goto_tb0, PARAM1, 0); |
| 564 | } | 554 | } |
| 565 | 555 | ||
| 566 | -PPC_OP(goto_tb1) | 556 | +void OPPROTO op_goto_tb1 (void) |
| 567 | { | 557 | { |
| 568 | GOTO_TB(op_goto_tb1, PARAM1, 1); | 558 | GOTO_TB(op_goto_tb1, PARAM1, 1); |
| 569 | } | 559 | } |
| 570 | 560 | ||
| 571 | void OPPROTO op_b_T1 (void) | 561 | void OPPROTO op_b_T1 (void) |
| 572 | { | 562 | { |
| 573 | - regs->nip = (uint32_t)(T1 & ~3); | 563 | + env->nip = (uint32_t)(T1 & ~3); |
| 574 | RETURN(); | 564 | RETURN(); |
| 575 | } | 565 | } |
| 576 | 566 | ||
| 577 | #if defined (TARGET_PPC64) | 567 | #if defined (TARGET_PPC64) |
| 578 | void OPPROTO op_b_T1_64 (void) | 568 | void OPPROTO op_b_T1_64 (void) |
| 579 | { | 569 | { |
| 580 | - regs->nip = (uint64_t)(T1 & ~3); | 570 | + env->nip = (uint64_t)(T1 & ~3); |
| 581 | RETURN(); | 571 | RETURN(); |
| 582 | } | 572 | } |
| 583 | #endif | 573 | #endif |
| 584 | 574 | ||
| 585 | -PPC_OP(jz_T0) | 575 | +void OPPROTO op_jz_T0 (void) |
| 586 | { | 576 | { |
| 587 | if (!T0) | 577 | if (!T0) |
| 588 | GOTO_LABEL_PARAM(1); | 578 | GOTO_LABEL_PARAM(1); |
| @@ -592,9 +582,9 @@ PPC_OP(jz_T0) | @@ -592,9 +582,9 @@ PPC_OP(jz_T0) | ||
| 592 | void OPPROTO op_btest_T1 (void) | 582 | void OPPROTO op_btest_T1 (void) |
| 593 | { | 583 | { |
| 594 | if (T0) { | 584 | if (T0) { |
| 595 | - regs->nip = (uint32_t)(T1 & ~3); | 585 | + env->nip = (uint32_t)(T1 & ~3); |
| 596 | } else { | 586 | } else { |
| 597 | - regs->nip = (uint32_t)PARAM1; | 587 | + env->nip = (uint32_t)PARAM1; |
| 598 | } | 588 | } |
| 599 | RETURN(); | 589 | RETURN(); |
| 600 | } | 590 | } |
| @@ -603,133 +593,133 @@ void OPPROTO op_btest_T1 (void) | @@ -603,133 +593,133 @@ void OPPROTO op_btest_T1 (void) | ||
| 603 | void OPPROTO op_btest_T1_64 (void) | 593 | void OPPROTO op_btest_T1_64 (void) |
| 604 | { | 594 | { |
| 605 | if (T0) { | 595 | if (T0) { |
| 606 | - regs->nip = (uint64_t)(T1 & ~3); | 596 | + env->nip = (uint64_t)(T1 & ~3); |
| 607 | } else { | 597 | } else { |
| 608 | - regs->nip = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; | 598 | + env->nip = ((uint64_t)PARAM1 << 32) | (uint64_t)PARAM2; |
| 609 | } | 599 | } |
| 610 | RETURN(); | 600 | RETURN(); |
| 611 | } | 601 | } |
| 612 | #endif | 602 | #endif |
| 613 | 603 | ||
| 614 | -PPC_OP(movl_T1_ctr) | 604 | +void OPPROTO op_movl_T1_ctr (void) |
| 615 | { | 605 | { |
| 616 | - T1 = regs->ctr; | 606 | + T1 = env->ctr; |
| 617 | RETURN(); | 607 | RETURN(); |
| 618 | } | 608 | } |
| 619 | 609 | ||
| 620 | -PPC_OP(movl_T1_lr) | 610 | +void OPPROTO op_movl_T1_lr (void) |
| 621 | { | 611 | { |
| 622 | - T1 = regs->lr; | 612 | + T1 = env->lr; |
| 623 | RETURN(); | 613 | RETURN(); |
| 624 | } | 614 | } |
| 625 | 615 | ||
| 626 | /* tests with result in T0 */ | 616 | /* tests with result in T0 */ |
| 627 | void OPPROTO op_test_ctr (void) | 617 | void OPPROTO op_test_ctr (void) |
| 628 | { | 618 | { |
| 629 | - T0 = (uint32_t)regs->ctr; | 619 | + T0 = (uint32_t)env->ctr; |
| 630 | RETURN(); | 620 | RETURN(); |
| 631 | } | 621 | } |
| 632 | 622 | ||
| 633 | #if defined(TARGET_PPC64) | 623 | #if defined(TARGET_PPC64) |
| 634 | void OPPROTO op_test_ctr_64 (void) | 624 | void OPPROTO op_test_ctr_64 (void) |
| 635 | { | 625 | { |
| 636 | - T0 = (uint64_t)regs->ctr; | 626 | + T0 = (uint64_t)env->ctr; |
| 637 | RETURN(); | 627 | RETURN(); |
| 638 | } | 628 | } |
| 639 | #endif | 629 | #endif |
| 640 | 630 | ||
| 641 | void OPPROTO op_test_ctr_true (void) | 631 | void OPPROTO op_test_ctr_true (void) |
| 642 | { | 632 | { |
| 643 | - T0 = ((uint32_t)regs->ctr != 0 && (T0 & PARAM1) != 0); | 633 | + T0 = ((uint32_t)env->ctr != 0 && (T0 & PARAM1) != 0); |
| 644 | RETURN(); | 634 | RETURN(); |
| 645 | } | 635 | } |
| 646 | 636 | ||
| 647 | #if defined(TARGET_PPC64) | 637 | #if defined(TARGET_PPC64) |
| 648 | void OPPROTO op_test_ctr_true_64 (void) | 638 | void OPPROTO op_test_ctr_true_64 (void) |
| 649 | { | 639 | { |
| 650 | - T0 = ((uint64_t)regs->ctr != 0 && (T0 & PARAM1) != 0); | 640 | + T0 = ((uint64_t)env->ctr != 0 && (T0 & PARAM1) != 0); |
| 651 | RETURN(); | 641 | RETURN(); |
| 652 | } | 642 | } |
| 653 | #endif | 643 | #endif |
| 654 | 644 | ||
| 655 | void OPPROTO op_test_ctr_false (void) | 645 | void OPPROTO op_test_ctr_false (void) |
| 656 | { | 646 | { |
| 657 | - T0 = ((uint32_t)regs->ctr != 0 && (T0 & PARAM1) == 0); | 647 | + T0 = ((uint32_t)env->ctr != 0 && (T0 & PARAM1) == 0); |
| 658 | RETURN(); | 648 | RETURN(); |
| 659 | } | 649 | } |
| 660 | 650 | ||
| 661 | #if defined(TARGET_PPC64) | 651 | #if defined(TARGET_PPC64) |
| 662 | void OPPROTO op_test_ctr_false_64 (void) | 652 | void OPPROTO op_test_ctr_false_64 (void) |
| 663 | { | 653 | { |
| 664 | - T0 = ((uint64_t)regs->ctr != 0 && (T0 & PARAM1) == 0); | 654 | + T0 = ((uint64_t)env->ctr != 0 && (T0 & PARAM1) == 0); |
| 665 | RETURN(); | 655 | RETURN(); |
| 666 | } | 656 | } |
| 667 | #endif | 657 | #endif |
| 668 | 658 | ||
| 669 | void OPPROTO op_test_ctrz (void) | 659 | void OPPROTO op_test_ctrz (void) |
| 670 | { | 660 | { |
| 671 | - T0 = ((uint32_t)regs->ctr == 0); | 661 | + T0 = ((uint32_t)env->ctr == 0); |
| 672 | RETURN(); | 662 | RETURN(); |
| 673 | } | 663 | } |
| 674 | 664 | ||
| 675 | #if defined(TARGET_PPC64) | 665 | #if defined(TARGET_PPC64) |
| 676 | void OPPROTO op_test_ctrz_64 (void) | 666 | void OPPROTO op_test_ctrz_64 (void) |
| 677 | { | 667 | { |
| 678 | - T0 = ((uint64_t)regs->ctr == 0); | 668 | + T0 = ((uint64_t)env->ctr == 0); |
| 679 | RETURN(); | 669 | RETURN(); |
| 680 | } | 670 | } |
| 681 | #endif | 671 | #endif |
| 682 | 672 | ||
| 683 | void OPPROTO op_test_ctrz_true (void) | 673 | void OPPROTO op_test_ctrz_true (void) |
| 684 | { | 674 | { |
| 685 | - T0 = ((uint32_t)regs->ctr == 0 && (T0 & PARAM1) != 0); | 675 | + T0 = ((uint32_t)env->ctr == 0 && (T0 & PARAM1) != 0); |
| 686 | RETURN(); | 676 | RETURN(); |
| 687 | } | 677 | } |
| 688 | 678 | ||
| 689 | #if defined(TARGET_PPC64) | 679 | #if defined(TARGET_PPC64) |
| 690 | void OPPROTO op_test_ctrz_true_64 (void) | 680 | void OPPROTO op_test_ctrz_true_64 (void) |
| 691 | { | 681 | { |
| 692 | - T0 = ((uint64_t)regs->ctr == 0 && (T0 & PARAM1) != 0); | 682 | + T0 = ((uint64_t)env->ctr == 0 && (T0 & PARAM1) != 0); |
| 693 | RETURN(); | 683 | RETURN(); |
| 694 | } | 684 | } |
| 695 | #endif | 685 | #endif |
| 696 | 686 | ||
| 697 | void OPPROTO op_test_ctrz_false (void) | 687 | void OPPROTO op_test_ctrz_false (void) |
| 698 | { | 688 | { |
| 699 | - T0 = ((uint32_t)regs->ctr == 0 && (T0 & PARAM1) == 0); | 689 | + T0 = ((uint32_t)env->ctr == 0 && (T0 & PARAM1) == 0); |
| 700 | RETURN(); | 690 | RETURN(); |
| 701 | } | 691 | } |
| 702 | 692 | ||
| 703 | #if defined(TARGET_PPC64) | 693 | #if defined(TARGET_PPC64) |
| 704 | void OPPROTO op_test_ctrz_false_64 (void) | 694 | void OPPROTO op_test_ctrz_false_64 (void) |
| 705 | { | 695 | { |
| 706 | - T0 = ((uint64_t)regs->ctr == 0 && (T0 & PARAM1) == 0); | 696 | + T0 = ((uint64_t)env->ctr == 0 && (T0 & PARAM1) == 0); |
| 707 | RETURN(); | 697 | RETURN(); |
| 708 | } | 698 | } |
| 709 | #endif | 699 | #endif |
| 710 | 700 | ||
| 711 | -PPC_OP(test_true) | 701 | +void OPPROTO op_test_true (void) |
| 712 | { | 702 | { |
| 713 | - T0 = (T0 & PARAM(1)); | 703 | + T0 = (T0 & PARAM1); |
| 714 | RETURN(); | 704 | RETURN(); |
| 715 | } | 705 | } |
| 716 | 706 | ||
| 717 | -PPC_OP(test_false) | 707 | +void OPPROTO op_test_false (void) |
| 718 | { | 708 | { |
| 719 | - T0 = ((T0 & PARAM(1)) == 0); | 709 | + T0 = ((T0 & PARAM1) == 0); |
| 720 | RETURN(); | 710 | RETURN(); |
| 721 | } | 711 | } |
| 722 | 712 | ||
| 723 | /* CTR maintenance */ | 713 | /* CTR maintenance */ |
| 724 | -PPC_OP(dec_ctr) | 714 | +void OPPROTO op_dec_ctr (void) |
| 725 | { | 715 | { |
| 726 | - regs->ctr--; | 716 | + env->ctr--; |
| 727 | RETURN(); | 717 | RETURN(); |
| 728 | } | 718 | } |
| 729 | 719 | ||
| 730 | /*** Integer arithmetic ***/ | 720 | /*** Integer arithmetic ***/ |
| 731 | /* add */ | 721 | /* add */ |
| 732 | -PPC_OP(add) | 722 | +void OPPROTO op_add (void) |
| 733 | { | 723 | { |
| 734 | T0 += T1; | 724 | T0 += T1; |
| 735 | RETURN(); | 725 | RETURN(); |
| @@ -800,9 +790,9 @@ void OPPROTO op_adde_64 (void) | @@ -800,9 +790,9 @@ void OPPROTO op_adde_64 (void) | ||
| 800 | #endif | 790 | #endif |
| 801 | 791 | ||
| 802 | /* add immediate */ | 792 | /* add immediate */ |
| 803 | -PPC_OP(addi) | 793 | +void OPPROTO op_addi (void) |
| 804 | { | 794 | { |
| 805 | - T0 += (int32_t)PARAM(1); | 795 | + T0 += (int32_t)PARAM1; |
| 806 | RETURN(); | 796 | RETURN(); |
| 807 | } | 797 | } |
| 808 | 798 | ||
| @@ -957,14 +947,14 @@ void OPPROTO op_mulhdu (void) | @@ -957,14 +947,14 @@ void OPPROTO op_mulhdu (void) | ||
| 957 | #endif | 947 | #endif |
| 958 | 948 | ||
| 959 | /* multiply low immediate */ | 949 | /* multiply low immediate */ |
| 960 | -PPC_OP(mulli) | 950 | +void OPPROTO op_mulli (void) |
| 961 | { | 951 | { |
| 962 | T0 = ((int32_t)T0 * (int32_t)PARAM1); | 952 | T0 = ((int32_t)T0 * (int32_t)PARAM1); |
| 963 | RETURN(); | 953 | RETURN(); |
| 964 | } | 954 | } |
| 965 | 955 | ||
| 966 | /* multiply low word */ | 956 | /* multiply low word */ |
| 967 | -PPC_OP(mullw) | 957 | +void OPPROTO op_mullw (void) |
| 968 | { | 958 | { |
| 969 | T0 = (int32_t)(T0 * T1); | 959 | T0 = (int32_t)(T0 * T1); |
| 970 | RETURN(); | 960 | RETURN(); |
| @@ -1026,7 +1016,7 @@ void OPPROTO op_nego_64 (void) | @@ -1026,7 +1016,7 @@ void OPPROTO op_nego_64 (void) | ||
| 1026 | #endif | 1016 | #endif |
| 1027 | 1017 | ||
| 1028 | /* subtract from */ | 1018 | /* subtract from */ |
| 1029 | -PPC_OP(subf) | 1019 | +void OPPROTO op_subf (void) |
| 1030 | { | 1020 | { |
| 1031 | T0 = T1 - T0; | 1021 | T0 = T1 - T0; |
| 1032 | RETURN(); | 1022 | RETURN(); |
| @@ -1329,14 +1319,14 @@ void OPPROTO op_popcntb_64 (void) | @@ -1329,14 +1319,14 @@ void OPPROTO op_popcntb_64 (void) | ||
| 1329 | 1319 | ||
| 1330 | /*** Integer logical ***/ | 1320 | /*** Integer logical ***/ |
| 1331 | /* and */ | 1321 | /* and */ |
| 1332 | -PPC_OP(and) | 1322 | +void OPPROTO op_and (void) |
| 1333 | { | 1323 | { |
| 1334 | T0 &= T1; | 1324 | T0 &= T1; |
| 1335 | RETURN(); | 1325 | RETURN(); |
| 1336 | } | 1326 | } |
| 1337 | 1327 | ||
| 1338 | /* andc */ | 1328 | /* andc */ |
| 1339 | -PPC_OP(andc) | 1329 | +void OPPROTO op_andc (void) |
| 1340 | { | 1330 | { |
| 1341 | T0 &= ~T1; | 1331 | T0 &= ~T1; |
| 1342 | RETURN(); | 1332 | RETURN(); |
| @@ -1345,7 +1335,7 @@ PPC_OP(andc) | @@ -1345,7 +1335,7 @@ PPC_OP(andc) | ||
| 1345 | /* andi. */ | 1335 | /* andi. */ |
| 1346 | void OPPROTO op_andi_T0 (void) | 1336 | void OPPROTO op_andi_T0 (void) |
| 1347 | { | 1337 | { |
| 1348 | - T0 &= PARAM(1); | 1338 | + T0 &= PARAM1; |
| 1349 | RETURN(); | 1339 | RETURN(); |
| 1350 | } | 1340 | } |
| 1351 | 1341 | ||
| @@ -1371,7 +1361,7 @@ void OPPROTO op_cntlzd (void) | @@ -1371,7 +1361,7 @@ void OPPROTO op_cntlzd (void) | ||
| 1371 | #endif | 1361 | #endif |
| 1372 | 1362 | ||
| 1373 | /* eqv */ | 1363 | /* eqv */ |
| 1374 | -PPC_OP(eqv) | 1364 | +void OPPROTO op_eqv (void) |
| 1375 | { | 1365 | { |
| 1376 | T0 = ~(T0 ^ T1); | 1366 | T0 = ~(T0 ^ T1); |
| 1377 | RETURN(); | 1367 | RETURN(); |
| @@ -1408,51 +1398,51 @@ void OPPROTO op_extsw (void) | @@ -1408,51 +1398,51 @@ void OPPROTO op_extsw (void) | ||
| 1408 | #endif | 1398 | #endif |
| 1409 | 1399 | ||
| 1410 | /* nand */ | 1400 | /* nand */ |
| 1411 | -PPC_OP(nand) | 1401 | +void OPPROTO op_nand (void) |
| 1412 | { | 1402 | { |
| 1413 | T0 = ~(T0 & T1); | 1403 | T0 = ~(T0 & T1); |
| 1414 | RETURN(); | 1404 | RETURN(); |
| 1415 | } | 1405 | } |
| 1416 | 1406 | ||
| 1417 | /* nor */ | 1407 | /* nor */ |
| 1418 | -PPC_OP(nor) | 1408 | +void OPPROTO op_nor (void) |
| 1419 | { | 1409 | { |
| 1420 | T0 = ~(T0 | T1); | 1410 | T0 = ~(T0 | T1); |
| 1421 | RETURN(); | 1411 | RETURN(); |
| 1422 | } | 1412 | } |
| 1423 | 1413 | ||
| 1424 | /* or */ | 1414 | /* or */ |
| 1425 | -PPC_OP(or) | 1415 | +void OPPROTO op_or (void) |
| 1426 | { | 1416 | { |
| 1427 | T0 |= T1; | 1417 | T0 |= T1; |
| 1428 | RETURN(); | 1418 | RETURN(); |
| 1429 | } | 1419 | } |
| 1430 | 1420 | ||
| 1431 | /* orc */ | 1421 | /* orc */ |
| 1432 | -PPC_OP(orc) | 1422 | +void OPPROTO op_orc (void) |
| 1433 | { | 1423 | { |
| 1434 | T0 |= ~T1; | 1424 | T0 |= ~T1; |
| 1435 | RETURN(); | 1425 | RETURN(); |
| 1436 | } | 1426 | } |
| 1437 | 1427 | ||
| 1438 | /* ori */ | 1428 | /* ori */ |
| 1439 | -PPC_OP(ori) | 1429 | +void OPPROTO op_ori (void) |
| 1440 | { | 1430 | { |
| 1441 | - T0 |= PARAM(1); | 1431 | + T0 |= PARAM1; |
| 1442 | RETURN(); | 1432 | RETURN(); |
| 1443 | } | 1433 | } |
| 1444 | 1434 | ||
| 1445 | /* xor */ | 1435 | /* xor */ |
| 1446 | -PPC_OP(xor) | 1436 | +void OPPROTO op_xor (void) |
| 1447 | { | 1437 | { |
| 1448 | T0 ^= T1; | 1438 | T0 ^= T1; |
| 1449 | RETURN(); | 1439 | RETURN(); |
| 1450 | } | 1440 | } |
| 1451 | 1441 | ||
| 1452 | /* xori */ | 1442 | /* xori */ |
| 1453 | -PPC_OP(xori) | 1443 | +void OPPROTO op_xori (void) |
| 1454 | { | 1444 | { |
| 1455 | - T0 ^= PARAM(1); | 1445 | + T0 ^= PARAM1; |
| 1456 | RETURN(); | 1446 | RETURN(); |
| 1457 | } | 1447 | } |
| 1458 | 1448 | ||
| @@ -1630,56 +1620,56 @@ void OPPROTO op_srli_T1_64 (void) | @@ -1630,56 +1620,56 @@ void OPPROTO op_srli_T1_64 (void) | ||
| 1630 | 1620 | ||
| 1631 | /*** Floating-Point arithmetic ***/ | 1621 | /*** Floating-Point arithmetic ***/ |
| 1632 | /* fadd - fadd. */ | 1622 | /* fadd - fadd. */ |
| 1633 | -PPC_OP(fadd) | 1623 | +void OPPROTO op_fadd (void) |
| 1634 | { | 1624 | { |
| 1635 | FT0 = float64_add(FT0, FT1, &env->fp_status); | 1625 | FT0 = float64_add(FT0, FT1, &env->fp_status); |
| 1636 | RETURN(); | 1626 | RETURN(); |
| 1637 | } | 1627 | } |
| 1638 | 1628 | ||
| 1639 | /* fsub - fsub. */ | 1629 | /* fsub - fsub. */ |
| 1640 | -PPC_OP(fsub) | 1630 | +void OPPROTO op_fsub (void) |
| 1641 | { | 1631 | { |
| 1642 | FT0 = float64_sub(FT0, FT1, &env->fp_status); | 1632 | FT0 = float64_sub(FT0, FT1, &env->fp_status); |
| 1643 | RETURN(); | 1633 | RETURN(); |
| 1644 | } | 1634 | } |
| 1645 | 1635 | ||
| 1646 | /* fmul - fmul. */ | 1636 | /* fmul - fmul. */ |
| 1647 | -PPC_OP(fmul) | 1637 | +void OPPROTO op_fmul (void) |
| 1648 | { | 1638 | { |
| 1649 | FT0 = float64_mul(FT0, FT1, &env->fp_status); | 1639 | FT0 = float64_mul(FT0, FT1, &env->fp_status); |
| 1650 | RETURN(); | 1640 | RETURN(); |
| 1651 | } | 1641 | } |
| 1652 | 1642 | ||
| 1653 | /* fdiv - fdiv. */ | 1643 | /* fdiv - fdiv. */ |
| 1654 | -PPC_OP(fdiv) | 1644 | +void OPPROTO op_fdiv (void) |
| 1655 | { | 1645 | { |
| 1656 | FT0 = float64_div(FT0, FT1, &env->fp_status); | 1646 | FT0 = float64_div(FT0, FT1, &env->fp_status); |
| 1657 | RETURN(); | 1647 | RETURN(); |
| 1658 | } | 1648 | } |
| 1659 | 1649 | ||
| 1660 | /* fsqrt - fsqrt. */ | 1650 | /* fsqrt - fsqrt. */ |
| 1661 | -PPC_OP(fsqrt) | 1651 | +void OPPROTO op_fsqrt (void) |
| 1662 | { | 1652 | { |
| 1663 | do_fsqrt(); | 1653 | do_fsqrt(); |
| 1664 | RETURN(); | 1654 | RETURN(); |
| 1665 | } | 1655 | } |
| 1666 | 1656 | ||
| 1667 | /* fres - fres. */ | 1657 | /* fres - fres. */ |
| 1668 | -PPC_OP(fres) | 1658 | +void OPPROTO op_fres (void) |
| 1669 | { | 1659 | { |
| 1670 | do_fres(); | 1660 | do_fres(); |
| 1671 | RETURN(); | 1661 | RETURN(); |
| 1672 | } | 1662 | } |
| 1673 | 1663 | ||
| 1674 | /* frsqrte - frsqrte. */ | 1664 | /* frsqrte - frsqrte. */ |
| 1675 | -PPC_OP(frsqrte) | 1665 | +void OPPROTO op_frsqrte (void) |
| 1676 | { | 1666 | { |
| 1677 | do_frsqrte(); | 1667 | do_frsqrte(); |
| 1678 | RETURN(); | 1668 | RETURN(); |
| 1679 | } | 1669 | } |
| 1680 | 1670 | ||
| 1681 | /* fsel - fsel. */ | 1671 | /* fsel - fsel. */ |
| 1682 | -PPC_OP(fsel) | 1672 | +void OPPROTO op_fsel (void) |
| 1683 | { | 1673 | { |
| 1684 | do_fsel(); | 1674 | do_fsel(); |
| 1685 | RETURN(); | 1675 | RETURN(); |
| @@ -1687,7 +1677,7 @@ PPC_OP(fsel) | @@ -1687,7 +1677,7 @@ PPC_OP(fsel) | ||
| 1687 | 1677 | ||
| 1688 | /*** Floating-Point multiply-and-add ***/ | 1678 | /*** Floating-Point multiply-and-add ***/ |
| 1689 | /* fmadd - fmadd. */ | 1679 | /* fmadd - fmadd. */ |
| 1690 | -PPC_OP(fmadd) | 1680 | +void OPPROTO op_fmadd (void) |
| 1691 | { | 1681 | { |
| 1692 | #if USE_PRECISE_EMULATION | 1682 | #if USE_PRECISE_EMULATION |
| 1693 | do_fmadd(); | 1683 | do_fmadd(); |
| @@ -1699,7 +1689,7 @@ PPC_OP(fmadd) | @@ -1699,7 +1689,7 @@ PPC_OP(fmadd) | ||
| 1699 | } | 1689 | } |
| 1700 | 1690 | ||
| 1701 | /* fmsub - fmsub. */ | 1691 | /* fmsub - fmsub. */ |
| 1702 | -PPC_OP(fmsub) | 1692 | +void OPPROTO op_fmsub (void) |
| 1703 | { | 1693 | { |
| 1704 | #if USE_PRECISE_EMULATION | 1694 | #if USE_PRECISE_EMULATION |
| 1705 | do_fmsub(); | 1695 | do_fmsub(); |
| @@ -1711,14 +1701,14 @@ PPC_OP(fmsub) | @@ -1711,14 +1701,14 @@ PPC_OP(fmsub) | ||
| 1711 | } | 1701 | } |
| 1712 | 1702 | ||
| 1713 | /* fnmadd - fnmadd. - fnmadds - fnmadds. */ | 1703 | /* fnmadd - fnmadd. - fnmadds - fnmadds. */ |
| 1714 | -PPC_OP(fnmadd) | 1704 | +void OPPROTO op_fnmadd (void) |
| 1715 | { | 1705 | { |
| 1716 | do_fnmadd(); | 1706 | do_fnmadd(); |
| 1717 | RETURN(); | 1707 | RETURN(); |
| 1718 | } | 1708 | } |
| 1719 | 1709 | ||
| 1720 | /* fnmsub - fnmsub. */ | 1710 | /* fnmsub - fnmsub. */ |
| 1721 | -PPC_OP(fnmsub) | 1711 | +void OPPROTO op_fnmsub (void) |
| 1722 | { | 1712 | { |
| 1723 | do_fnmsub(); | 1713 | do_fnmsub(); |
| 1724 | RETURN(); | 1714 | RETURN(); |
| @@ -1726,21 +1716,21 @@ PPC_OP(fnmsub) | @@ -1726,21 +1716,21 @@ PPC_OP(fnmsub) | ||
| 1726 | 1716 | ||
| 1727 | /*** Floating-Point round & convert ***/ | 1717 | /*** Floating-Point round & convert ***/ |
| 1728 | /* frsp - frsp. */ | 1718 | /* frsp - frsp. */ |
| 1729 | -PPC_OP(frsp) | 1719 | +void OPPROTO op_frsp (void) |
| 1730 | { | 1720 | { |
| 1731 | FT0 = float64_to_float32(FT0, &env->fp_status); | 1721 | FT0 = float64_to_float32(FT0, &env->fp_status); |
| 1732 | RETURN(); | 1722 | RETURN(); |
| 1733 | } | 1723 | } |
| 1734 | 1724 | ||
| 1735 | /* fctiw - fctiw. */ | 1725 | /* fctiw - fctiw. */ |
| 1736 | -PPC_OP(fctiw) | 1726 | +void OPPROTO op_fctiw (void) |
| 1737 | { | 1727 | { |
| 1738 | do_fctiw(); | 1728 | do_fctiw(); |
| 1739 | RETURN(); | 1729 | RETURN(); |
| 1740 | } | 1730 | } |
| 1741 | 1731 | ||
| 1742 | /* fctiwz - fctiwz. */ | 1732 | /* fctiwz - fctiwz. */ |
| 1743 | -PPC_OP(fctiwz) | 1733 | +void OPPROTO op_fctiwz (void) |
| 1744 | { | 1734 | { |
| 1745 | do_fctiwz(); | 1735 | do_fctiwz(); |
| 1746 | RETURN(); | 1736 | RETURN(); |
| @@ -1748,21 +1738,21 @@ PPC_OP(fctiwz) | @@ -1748,21 +1738,21 @@ PPC_OP(fctiwz) | ||
| 1748 | 1738 | ||
| 1749 | #if defined(TARGET_PPC64) | 1739 | #if defined(TARGET_PPC64) |
| 1750 | /* fcfid - fcfid. */ | 1740 | /* fcfid - fcfid. */ |
| 1751 | -PPC_OP(fcfid) | 1741 | +void OPPROTO op_fcfid (void) |
| 1752 | { | 1742 | { |
| 1753 | do_fcfid(); | 1743 | do_fcfid(); |
| 1754 | RETURN(); | 1744 | RETURN(); |
| 1755 | } | 1745 | } |
| 1756 | 1746 | ||
| 1757 | /* fctid - fctid. */ | 1747 | /* fctid - fctid. */ |
| 1758 | -PPC_OP(fctid) | 1748 | +void OPPROTO op_fctid (void) |
| 1759 | { | 1749 | { |
| 1760 | do_fctid(); | 1750 | do_fctid(); |
| 1761 | RETURN(); | 1751 | RETURN(); |
| 1762 | } | 1752 | } |
| 1763 | 1753 | ||
| 1764 | /* fctidz - fctidz. */ | 1754 | /* fctidz - fctidz. */ |
| 1765 | -PPC_OP(fctidz) | 1755 | +void OPPROTO op_fctidz (void) |
| 1766 | { | 1756 | { |
| 1767 | do_fctidz(); | 1757 | do_fctidz(); |
| 1768 | RETURN(); | 1758 | RETURN(); |
| @@ -1771,14 +1761,14 @@ PPC_OP(fctidz) | @@ -1771,14 +1761,14 @@ PPC_OP(fctidz) | ||
| 1771 | 1761 | ||
| 1772 | /*** Floating-Point compare ***/ | 1762 | /*** Floating-Point compare ***/ |
| 1773 | /* fcmpu */ | 1763 | /* fcmpu */ |
| 1774 | -PPC_OP(fcmpu) | 1764 | +void OPPROTO op_fcmpu (void) |
| 1775 | { | 1765 | { |
| 1776 | do_fcmpu(); | 1766 | do_fcmpu(); |
| 1777 | RETURN(); | 1767 | RETURN(); |
| 1778 | } | 1768 | } |
| 1779 | 1769 | ||
| 1780 | /* fcmpo */ | 1770 | /* fcmpo */ |
| 1781 | -PPC_OP(fcmpo) | 1771 | +void OPPROTO op_fcmpo (void) |
| 1782 | { | 1772 | { |
| 1783 | do_fcmpo(); | 1773 | do_fcmpo(); |
| 1784 | RETURN(); | 1774 | RETURN(); |
| @@ -1786,14 +1776,14 @@ PPC_OP(fcmpo) | @@ -1786,14 +1776,14 @@ PPC_OP(fcmpo) | ||
| 1786 | 1776 | ||
| 1787 | /*** Floating-point move ***/ | 1777 | /*** Floating-point move ***/ |
| 1788 | /* fabs */ | 1778 | /* fabs */ |
| 1789 | -PPC_OP(fabs) | 1779 | +void OPPROTO op_fabs (void) |
| 1790 | { | 1780 | { |
| 1791 | FT0 = float64_abs(FT0); | 1781 | FT0 = float64_abs(FT0); |
| 1792 | RETURN(); | 1782 | RETURN(); |
| 1793 | } | 1783 | } |
| 1794 | 1784 | ||
| 1795 | /* fnabs */ | 1785 | /* fnabs */ |
| 1796 | -PPC_OP(fnabs) | 1786 | +void OPPROTO op_fnabs (void) |
| 1797 | { | 1787 | { |
| 1798 | FT0 = float64_abs(FT0); | 1788 | FT0 = float64_abs(FT0); |
| 1799 | FT0 = float64_chs(FT0); | 1789 | FT0 = float64_chs(FT0); |
| @@ -1801,7 +1791,7 @@ PPC_OP(fnabs) | @@ -1801,7 +1791,7 @@ PPC_OP(fnabs) | ||
| 1801 | } | 1791 | } |
| 1802 | 1792 | ||
| 1803 | /* fneg */ | 1793 | /* fneg */ |
| 1804 | -PPC_OP(fneg) | 1794 | +void OPPROTO op_fneg (void) |
| 1805 | { | 1795 | { |
| 1806 | FT0 = float64_chs(FT0); | 1796 | FT0 = float64_chs(FT0); |
| 1807 | RETURN(); | 1797 | RETURN(); |
| @@ -1871,7 +1861,7 @@ void OPPROTO op_td (void) | @@ -1871,7 +1861,7 @@ void OPPROTO op_td (void) | ||
| 1871 | 1861 | ||
| 1872 | #if !defined(CONFIG_USER_ONLY) | 1862 | #if !defined(CONFIG_USER_ONLY) |
| 1873 | /* tlbia */ | 1863 | /* tlbia */ |
| 1874 | -PPC_OP(tlbia) | 1864 | +void OPPROTO op_tlbia (void) |
| 1875 | { | 1865 | { |
| 1876 | do_tlbia(); | 1866 | do_tlbia(); |
| 1877 | RETURN(); | 1867 | RETURN(); |
target-ppc/op_helper.c
| @@ -88,7 +88,7 @@ void do_store_cr (uint32_t mask) | @@ -88,7 +88,7 @@ void do_store_cr (uint32_t mask) | ||
| 88 | { | 88 | { |
| 89 | int i, sh; | 89 | int i, sh; |
| 90 | 90 | ||
| 91 | - for (i = 0, sh = 7; i < 8; i++, sh --) { | 91 | + for (i = 0, sh = 7; i < 8; i++, sh--) { |
| 92 | if (mask & (1 << sh)) | 92 | if (mask & (1 << sh)) |
| 93 | env->crf[i] = (T0 >> (sh * 4)) & 0xFUL; | 93 | env->crf[i] = (T0 >> (sh * 4)) & 0xFUL; |
| 94 | } | 94 | } |
| @@ -216,8 +216,8 @@ static void add128 (uint64_t *plow, uint64_t *phigh, uint64_t a, uint64_t b) | @@ -216,8 +216,8 @@ static void add128 (uint64_t *plow, uint64_t *phigh, uint64_t a, uint64_t b) | ||
| 216 | 216 | ||
| 217 | static void neg128 (uint64_t *plow, uint64_t *phigh) | 217 | static void neg128 (uint64_t *plow, uint64_t *phigh) |
| 218 | { | 218 | { |
| 219 | - *plow = ~ *plow; | ||
| 220 | - *phigh = ~ *phigh; | 219 | + *plow = ~*plow; |
| 220 | + *phigh = ~*phigh; | ||
| 221 | add128(plow, phigh, 1, 0); | 221 | add128(plow, phigh, 1, 0); |
| 222 | } | 222 | } |
| 223 | 223 | ||
| @@ -258,6 +258,7 @@ void do_mul64 (uint64_t *plow, uint64_t *phigh) | @@ -258,6 +258,7 @@ void do_mul64 (uint64_t *plow, uint64_t *phigh) | ||
| 258 | static void imul64 (uint64_t *plow, uint64_t *phigh, int64_t a, int64_t b) | 258 | static void imul64 (uint64_t *plow, uint64_t *phigh, int64_t a, int64_t b) |
| 259 | { | 259 | { |
| 260 | int sa, sb; | 260 | int sa, sb; |
| 261 | + | ||
| 261 | sa = (a < 0); | 262 | sa = (a < 0); |
| 262 | if (sa) | 263 | if (sa) |
| 263 | a = -a; | 264 | a = -a; |
| @@ -2493,14 +2494,14 @@ void do_4xx_tlbre_hi (void) | @@ -2493,14 +2494,14 @@ void do_4xx_tlbre_hi (void) | ||
| 2493 | 2494 | ||
| 2494 | void do_4xx_tlbsx (void) | 2495 | void do_4xx_tlbsx (void) |
| 2495 | { | 2496 | { |
| 2496 | - T0 = ppcemb_tlb_search(env, T0); | 2497 | + T0 = ppcemb_tlb_search(env, T0, env->spr[SPR_40x_PID]); |
| 2497 | } | 2498 | } |
| 2498 | 2499 | ||
| 2499 | void do_4xx_tlbsx_ (void) | 2500 | void do_4xx_tlbsx_ (void) |
| 2500 | { | 2501 | { |
| 2501 | int tmp = xer_ov; | 2502 | int tmp = xer_ov; |
| 2502 | 2503 | ||
| 2503 | - T0 = ppcemb_tlb_search(env, T0); | 2504 | + T0 = ppcemb_tlb_search(env, T0, env->spr[SPR_40x_PID]); |
| 2504 | if (T0 != -1) | 2505 | if (T0 != -1) |
| 2505 | tmp |= 0x02; | 2506 | tmp |= 0x02; |
| 2506 | env->crf[0] = tmp; | 2507 | env->crf[0] = tmp; |
target-ppc/op_helper_mem.h
| @@ -271,7 +271,7 @@ void glue(do_icbi_64, MEMSUFFIX) (void) | @@ -271,7 +271,7 @@ void glue(do_icbi_64, MEMSUFFIX) (void) | ||
| 271 | } | 271 | } |
| 272 | #endif | 272 | #endif |
| 273 | 273 | ||
| 274 | -/* PPC 601 specific instructions (POWER bridge) */ | 274 | +/* PowerPC 601 specific instructions (POWER bridge) */ |
| 275 | // XXX: to be tested | 275 | // XXX: to be tested |
| 276 | void glue(do_POWER_lscbx, MEMSUFFIX) (int dest, int ra, int rb) | 276 | void glue(do_POWER_lscbx, MEMSUFFIX) (int dest, int ra, int rb) |
| 277 | { | 277 | { |
target-ppc/op_mem.h
| @@ -517,7 +517,7 @@ void OPPROTO glue(op_lwarx, MEMSUFFIX) (void) | @@ -517,7 +517,7 @@ void OPPROTO glue(op_lwarx, MEMSUFFIX) (void) | ||
| 517 | do_raise_exception(EXCP_ALIGN); | 517 | do_raise_exception(EXCP_ALIGN); |
| 518 | } else { | 518 | } else { |
| 519 | T1 = glue(ldl, MEMSUFFIX)((uint32_t)T0); | 519 | T1 = glue(ldl, MEMSUFFIX)((uint32_t)T0); |
| 520 | - regs->reserve = (uint32_t)T0; | 520 | + env->reserve = (uint32_t)T0; |
| 521 | } | 521 | } |
| 522 | RETURN(); | 522 | RETURN(); |
| 523 | } | 523 | } |
| @@ -529,7 +529,7 @@ void OPPROTO glue(op_lwarx_64, MEMSUFFIX) (void) | @@ -529,7 +529,7 @@ void OPPROTO glue(op_lwarx_64, MEMSUFFIX) (void) | ||
| 529 | do_raise_exception(EXCP_ALIGN); | 529 | do_raise_exception(EXCP_ALIGN); |
| 530 | } else { | 530 | } else { |
| 531 | T1 = glue(ldl, MEMSUFFIX)((uint64_t)T0); | 531 | T1 = glue(ldl, MEMSUFFIX)((uint64_t)T0); |
| 532 | - regs->reserve = (uint64_t)T0; | 532 | + env->reserve = (uint64_t)T0; |
| 533 | } | 533 | } |
| 534 | RETURN(); | 534 | RETURN(); |
| 535 | } | 535 | } |
| @@ -540,7 +540,7 @@ void OPPROTO glue(op_ldarx, MEMSUFFIX) (void) | @@ -540,7 +540,7 @@ void OPPROTO glue(op_ldarx, MEMSUFFIX) (void) | ||
| 540 | do_raise_exception(EXCP_ALIGN); | 540 | do_raise_exception(EXCP_ALIGN); |
| 541 | } else { | 541 | } else { |
| 542 | T1 = glue(ldq, MEMSUFFIX)((uint32_t)T0); | 542 | T1 = glue(ldq, MEMSUFFIX)((uint32_t)T0); |
| 543 | - regs->reserve = (uint32_t)T0; | 543 | + env->reserve = (uint32_t)T0; |
| 544 | } | 544 | } |
| 545 | RETURN(); | 545 | RETURN(); |
| 546 | } | 546 | } |
| @@ -551,7 +551,7 @@ void OPPROTO glue(op_ldarx_64, MEMSUFFIX) (void) | @@ -551,7 +551,7 @@ void OPPROTO glue(op_ldarx_64, MEMSUFFIX) (void) | ||
| 551 | do_raise_exception(EXCP_ALIGN); | 551 | do_raise_exception(EXCP_ALIGN); |
| 552 | } else { | 552 | } else { |
| 553 | T1 = glue(ldq, MEMSUFFIX)((uint64_t)T0); | 553 | T1 = glue(ldq, MEMSUFFIX)((uint64_t)T0); |
| 554 | - regs->reserve = (uint64_t)T0; | 554 | + env->reserve = (uint64_t)T0; |
| 555 | } | 555 | } |
| 556 | RETURN(); | 556 | RETURN(); |
| 557 | } | 557 | } |
| @@ -563,7 +563,7 @@ void OPPROTO glue(op_lwarx_le, MEMSUFFIX) (void) | @@ -563,7 +563,7 @@ void OPPROTO glue(op_lwarx_le, MEMSUFFIX) (void) | ||
| 563 | do_raise_exception(EXCP_ALIGN); | 563 | do_raise_exception(EXCP_ALIGN); |
| 564 | } else { | 564 | } else { |
| 565 | T1 = glue(ld32r, MEMSUFFIX)((uint32_t)T0); | 565 | T1 = glue(ld32r, MEMSUFFIX)((uint32_t)T0); |
| 566 | - regs->reserve = (uint32_t)T0; | 566 | + env->reserve = (uint32_t)T0; |
| 567 | } | 567 | } |
| 568 | RETURN(); | 568 | RETURN(); |
| 569 | } | 569 | } |
| @@ -575,7 +575,7 @@ void OPPROTO glue(op_lwarx_le_64, MEMSUFFIX) (void) | @@ -575,7 +575,7 @@ void OPPROTO glue(op_lwarx_le_64, MEMSUFFIX) (void) | ||
| 575 | do_raise_exception(EXCP_ALIGN); | 575 | do_raise_exception(EXCP_ALIGN); |
| 576 | } else { | 576 | } else { |
| 577 | T1 = glue(ld32r, MEMSUFFIX)((uint64_t)T0); | 577 | T1 = glue(ld32r, MEMSUFFIX)((uint64_t)T0); |
| 578 | - regs->reserve = (uint64_t)T0; | 578 | + env->reserve = (uint64_t)T0; |
| 579 | } | 579 | } |
| 580 | RETURN(); | 580 | RETURN(); |
| 581 | } | 581 | } |
| @@ -586,7 +586,7 @@ void OPPROTO glue(op_ldarx_le, MEMSUFFIX) (void) | @@ -586,7 +586,7 @@ void OPPROTO glue(op_ldarx_le, MEMSUFFIX) (void) | ||
| 586 | do_raise_exception(EXCP_ALIGN); | 586 | do_raise_exception(EXCP_ALIGN); |
| 587 | } else { | 587 | } else { |
| 588 | T1 = glue(ld64r, MEMSUFFIX)((uint32_t)T0); | 588 | T1 = glue(ld64r, MEMSUFFIX)((uint32_t)T0); |
| 589 | - regs->reserve = (uint32_t)T0; | 589 | + env->reserve = (uint32_t)T0; |
| 590 | } | 590 | } |
| 591 | RETURN(); | 591 | RETURN(); |
| 592 | } | 592 | } |
| @@ -597,7 +597,7 @@ void OPPROTO glue(op_ldarx_le_64, MEMSUFFIX) (void) | @@ -597,7 +597,7 @@ void OPPROTO glue(op_ldarx_le_64, MEMSUFFIX) (void) | ||
| 597 | do_raise_exception(EXCP_ALIGN); | 597 | do_raise_exception(EXCP_ALIGN); |
| 598 | } else { | 598 | } else { |
| 599 | T1 = glue(ld64r, MEMSUFFIX)((uint64_t)T0); | 599 | T1 = glue(ld64r, MEMSUFFIX)((uint64_t)T0); |
| 600 | - regs->reserve = (uint64_t)T0; | 600 | + env->reserve = (uint64_t)T0; |
| 601 | } | 601 | } |
| 602 | RETURN(); | 602 | RETURN(); |
| 603 | } | 603 | } |
| @@ -609,14 +609,14 @@ void OPPROTO glue(op_stwcx, MEMSUFFIX) (void) | @@ -609,14 +609,14 @@ void OPPROTO glue(op_stwcx, MEMSUFFIX) (void) | ||
| 609 | if (unlikely(T0 & 0x03)) { | 609 | if (unlikely(T0 & 0x03)) { |
| 610 | do_raise_exception(EXCP_ALIGN); | 610 | do_raise_exception(EXCP_ALIGN); |
| 611 | } else { | 611 | } else { |
| 612 | - if (unlikely(regs->reserve != (uint32_t)T0)) { | 612 | + if (unlikely(env->reserve != (uint32_t)T0)) { |
| 613 | env->crf[0] = xer_ov; | 613 | env->crf[0] = xer_ov; |
| 614 | } else { | 614 | } else { |
| 615 | glue(stl, MEMSUFFIX)((uint32_t)T0, T1); | 615 | glue(stl, MEMSUFFIX)((uint32_t)T0, T1); |
| 616 | env->crf[0] = xer_ov | 0x02; | 616 | env->crf[0] = xer_ov | 0x02; |
| 617 | } | 617 | } |
| 618 | } | 618 | } |
| 619 | - regs->reserve = -1; | 619 | + env->reserve = -1; |
| 620 | RETURN(); | 620 | RETURN(); |
| 621 | } | 621 | } |
| 622 | 622 | ||
| @@ -626,14 +626,14 @@ void OPPROTO glue(op_stwcx_64, MEMSUFFIX) (void) | @@ -626,14 +626,14 @@ void OPPROTO glue(op_stwcx_64, MEMSUFFIX) (void) | ||
| 626 | if (unlikely(T0 & 0x03)) { | 626 | if (unlikely(T0 & 0x03)) { |
| 627 | do_raise_exception(EXCP_ALIGN); | 627 | do_raise_exception(EXCP_ALIGN); |
| 628 | } else { | 628 | } else { |
| 629 | - if (unlikely(regs->reserve != (uint64_t)T0)) { | 629 | + if (unlikely(env->reserve != (uint64_t)T0)) { |
| 630 | env->crf[0] = xer_ov; | 630 | env->crf[0] = xer_ov; |
| 631 | } else { | 631 | } else { |
| 632 | glue(stl, MEMSUFFIX)((uint64_t)T0, T1); | 632 | glue(stl, MEMSUFFIX)((uint64_t)T0, T1); |
| 633 | env->crf[0] = xer_ov | 0x02; | 633 | env->crf[0] = xer_ov | 0x02; |
| 634 | } | 634 | } |
| 635 | } | 635 | } |
| 636 | - regs->reserve = -1; | 636 | + env->reserve = -1; |
| 637 | RETURN(); | 637 | RETURN(); |
| 638 | } | 638 | } |
| 639 | 639 | ||
| @@ -642,14 +642,14 @@ void OPPROTO glue(op_stdcx, MEMSUFFIX) (void) | @@ -642,14 +642,14 @@ void OPPROTO glue(op_stdcx, MEMSUFFIX) (void) | ||
| 642 | if (unlikely(T0 & 0x03)) { | 642 | if (unlikely(T0 & 0x03)) { |
| 643 | do_raise_exception(EXCP_ALIGN); | 643 | do_raise_exception(EXCP_ALIGN); |
| 644 | } else { | 644 | } else { |
| 645 | - if (unlikely(regs->reserve != (uint32_t)T0)) { | 645 | + if (unlikely(env->reserve != (uint32_t)T0)) { |
| 646 | env->crf[0] = xer_ov; | 646 | env->crf[0] = xer_ov; |
| 647 | } else { | 647 | } else { |
| 648 | glue(stq, MEMSUFFIX)((uint32_t)T0, T1); | 648 | glue(stq, MEMSUFFIX)((uint32_t)T0, T1); |
| 649 | env->crf[0] = xer_ov | 0x02; | 649 | env->crf[0] = xer_ov | 0x02; |
| 650 | } | 650 | } |
| 651 | } | 651 | } |
| 652 | - regs->reserve = -1; | 652 | + env->reserve = -1; |
| 653 | RETURN(); | 653 | RETURN(); |
| 654 | } | 654 | } |
| 655 | 655 | ||
| @@ -658,14 +658,14 @@ void OPPROTO glue(op_stdcx_64, MEMSUFFIX) (void) | @@ -658,14 +658,14 @@ void OPPROTO glue(op_stdcx_64, MEMSUFFIX) (void) | ||
| 658 | if (unlikely(T0 & 0x03)) { | 658 | if (unlikely(T0 & 0x03)) { |
| 659 | do_raise_exception(EXCP_ALIGN); | 659 | do_raise_exception(EXCP_ALIGN); |
| 660 | } else { | 660 | } else { |
| 661 | - if (unlikely(regs->reserve != (uint64_t)T0)) { | 661 | + if (unlikely(env->reserve != (uint64_t)T0)) { |
| 662 | env->crf[0] = xer_ov; | 662 | env->crf[0] = xer_ov; |
| 663 | } else { | 663 | } else { |
| 664 | glue(stq, MEMSUFFIX)((uint64_t)T0, T1); | 664 | glue(stq, MEMSUFFIX)((uint64_t)T0, T1); |
| 665 | env->crf[0] = xer_ov | 0x02; | 665 | env->crf[0] = xer_ov | 0x02; |
| 666 | } | 666 | } |
| 667 | } | 667 | } |
| 668 | - regs->reserve = -1; | 668 | + env->reserve = -1; |
| 669 | RETURN(); | 669 | RETURN(); |
| 670 | } | 670 | } |
| 671 | #endif | 671 | #endif |
| @@ -675,14 +675,14 @@ void OPPROTO glue(op_stwcx_le, MEMSUFFIX) (void) | @@ -675,14 +675,14 @@ void OPPROTO glue(op_stwcx_le, MEMSUFFIX) (void) | ||
| 675 | if (unlikely(T0 & 0x03)) { | 675 | if (unlikely(T0 & 0x03)) { |
| 676 | do_raise_exception(EXCP_ALIGN); | 676 | do_raise_exception(EXCP_ALIGN); |
| 677 | } else { | 677 | } else { |
| 678 | - if (unlikely(regs->reserve != (uint32_t)T0)) { | 678 | + if (unlikely(env->reserve != (uint32_t)T0)) { |
| 679 | env->crf[0] = xer_ov; | 679 | env->crf[0] = xer_ov; |
| 680 | } else { | 680 | } else { |
| 681 | glue(st32r, MEMSUFFIX)((uint32_t)T0, T1); | 681 | glue(st32r, MEMSUFFIX)((uint32_t)T0, T1); |
| 682 | env->crf[0] = xer_ov | 0x02; | 682 | env->crf[0] = xer_ov | 0x02; |
| 683 | } | 683 | } |
| 684 | } | 684 | } |
| 685 | - regs->reserve = -1; | 685 | + env->reserve = -1; |
| 686 | RETURN(); | 686 | RETURN(); |
| 687 | } | 687 | } |
| 688 | 688 | ||
| @@ -692,14 +692,14 @@ void OPPROTO glue(op_stwcx_le_64, MEMSUFFIX) (void) | @@ -692,14 +692,14 @@ void OPPROTO glue(op_stwcx_le_64, MEMSUFFIX) (void) | ||
| 692 | if (unlikely(T0 & 0x03)) { | 692 | if (unlikely(T0 & 0x03)) { |
| 693 | do_raise_exception(EXCP_ALIGN); | 693 | do_raise_exception(EXCP_ALIGN); |
| 694 | } else { | 694 | } else { |
| 695 | - if (unlikely(regs->reserve != (uint64_t)T0)) { | 695 | + if (unlikely(env->reserve != (uint64_t)T0)) { |
| 696 | env->crf[0] = xer_ov; | 696 | env->crf[0] = xer_ov; |
| 697 | } else { | 697 | } else { |
| 698 | glue(st32r, MEMSUFFIX)((uint64_t)T0, T1); | 698 | glue(st32r, MEMSUFFIX)((uint64_t)T0, T1); |
| 699 | env->crf[0] = xer_ov | 0x02; | 699 | env->crf[0] = xer_ov | 0x02; |
| 700 | } | 700 | } |
| 701 | } | 701 | } |
| 702 | - regs->reserve = -1; | 702 | + env->reserve = -1; |
| 703 | RETURN(); | 703 | RETURN(); |
| 704 | } | 704 | } |
| 705 | 705 | ||
| @@ -708,14 +708,14 @@ void OPPROTO glue(op_stdcx_le, MEMSUFFIX) (void) | @@ -708,14 +708,14 @@ void OPPROTO glue(op_stdcx_le, MEMSUFFIX) (void) | ||
| 708 | if (unlikely(T0 & 0x03)) { | 708 | if (unlikely(T0 & 0x03)) { |
| 709 | do_raise_exception(EXCP_ALIGN); | 709 | do_raise_exception(EXCP_ALIGN); |
| 710 | } else { | 710 | } else { |
| 711 | - if (unlikely(regs->reserve != (uint32_t)T0)) { | 711 | + if (unlikely(env->reserve != (uint32_t)T0)) { |
| 712 | env->crf[0] = xer_ov; | 712 | env->crf[0] = xer_ov; |
| 713 | } else { | 713 | } else { |
| 714 | glue(st64r, MEMSUFFIX)((uint32_t)T0, T1); | 714 | glue(st64r, MEMSUFFIX)((uint32_t)T0, T1); |
| 715 | env->crf[0] = xer_ov | 0x02; | 715 | env->crf[0] = xer_ov | 0x02; |
| 716 | } | 716 | } |
| 717 | } | 717 | } |
| 718 | - regs->reserve = -1; | 718 | + env->reserve = -1; |
| 719 | RETURN(); | 719 | RETURN(); |
| 720 | } | 720 | } |
| 721 | 721 | ||
| @@ -724,14 +724,14 @@ void OPPROTO glue(op_stdcx_le_64, MEMSUFFIX) (void) | @@ -724,14 +724,14 @@ void OPPROTO glue(op_stdcx_le_64, MEMSUFFIX) (void) | ||
| 724 | if (unlikely(T0 & 0x03)) { | 724 | if (unlikely(T0 & 0x03)) { |
| 725 | do_raise_exception(EXCP_ALIGN); | 725 | do_raise_exception(EXCP_ALIGN); |
| 726 | } else { | 726 | } else { |
| 727 | - if (unlikely(regs->reserve != (uint64_t)T0)) { | 727 | + if (unlikely(env->reserve != (uint64_t)T0)) { |
| 728 | env->crf[0] = xer_ov; | 728 | env->crf[0] = xer_ov; |
| 729 | } else { | 729 | } else { |
| 730 | glue(st64r, MEMSUFFIX)((uint64_t)T0, T1); | 730 | glue(st64r, MEMSUFFIX)((uint64_t)T0, T1); |
| 731 | env->crf[0] = xer_ov | 0x02; | 731 | env->crf[0] = xer_ov | 0x02; |
| 732 | } | 732 | } |
| 733 | } | 733 | } |
| 734 | - regs->reserve = -1; | 734 | + env->reserve = -1; |
| 735 | RETURN(); | 735 | RETURN(); |
| 736 | } | 736 | } |
| 737 | #endif | 737 | #endif |
| @@ -1095,7 +1095,7 @@ static inline void glue(spe_stwwo, MEMSUFFIX) (target_ulong EA, uint64_t data) | @@ -1095,7 +1095,7 @@ static inline void glue(spe_stwwo, MEMSUFFIX) (target_ulong EA, uint64_t data) | ||
| 1095 | } | 1095 | } |
| 1096 | PPC_SPE_ST_OP(wwo, spe_stwwo); | 1096 | PPC_SPE_ST_OP(wwo, spe_stwwo); |
| 1097 | static inline void glue(spe_stwwo_le, MEMSUFFIX) (target_ulong EA, | 1097 | static inline void glue(spe_stwwo_le, MEMSUFFIX) (target_ulong EA, |
| 1098 | - uint64_t data) | 1098 | + uint64_t data) |
| 1099 | { | 1099 | { |
| 1100 | glue(st32r, MEMSUFFIX)(EA, data); | 1100 | glue(st32r, MEMSUFFIX)(EA, data); |
| 1101 | } | 1101 | } |
target-ppc/op_template.h
| @@ -21,38 +21,38 @@ | @@ -21,38 +21,38 @@ | ||
| 21 | /* General purpose registers moves */ | 21 | /* General purpose registers moves */ |
| 22 | void OPPROTO glue(op_load_gpr_T0_gpr, REG) (void) | 22 | void OPPROTO glue(op_load_gpr_T0_gpr, REG) (void) |
| 23 | { | 23 | { |
| 24 | - T0 = regs->gpr[REG]; | 24 | + T0 = env->gpr[REG]; |
| 25 | RETURN(); | 25 | RETURN(); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | void OPPROTO glue(op_load_gpr_T1_gpr, REG) (void) | 28 | void OPPROTO glue(op_load_gpr_T1_gpr, REG) (void) |
| 29 | { | 29 | { |
| 30 | - T1 = regs->gpr[REG]; | 30 | + T1 = env->gpr[REG]; |
| 31 | RETURN(); | 31 | RETURN(); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | void OPPROTO glue(op_load_gpr_T2_gpr, REG) (void) | 34 | void OPPROTO glue(op_load_gpr_T2_gpr, REG) (void) |
| 35 | { | 35 | { |
| 36 | - T2 = regs->gpr[REG]; | 36 | + T2 = env->gpr[REG]; |
| 37 | RETURN(); | 37 | RETURN(); |
| 38 | } | 38 | } |
| 39 | 39 | ||
| 40 | void OPPROTO glue(op_store_T0_gpr_gpr, REG) (void) | 40 | void OPPROTO glue(op_store_T0_gpr_gpr, REG) (void) |
| 41 | { | 41 | { |
| 42 | - regs->gpr[REG] = T0; | 42 | + env->gpr[REG] = T0; |
| 43 | RETURN(); | 43 | RETURN(); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | void OPPROTO glue(op_store_T1_gpr_gpr, REG) (void) | 46 | void OPPROTO glue(op_store_T1_gpr_gpr, REG) (void) |
| 47 | { | 47 | { |
| 48 | - regs->gpr[REG] = T1; | 48 | + env->gpr[REG] = T1; |
| 49 | RETURN(); | 49 | RETURN(); |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | #if 0 // unused | 52 | #if 0 // unused |
| 53 | void OPPROTO glue(op_store_T2_gpr_gpr, REG) (void) | 53 | void OPPROTO glue(op_store_T2_gpr_gpr, REG) (void) |
| 54 | { | 54 | { |
| 55 | - regs->gpr[REG] = T2; | 55 | + env->gpr[REG] = T2; |
| 56 | RETURN(); | 56 | RETURN(); |
| 57 | } | 57 | } |
| 58 | #endif | 58 | #endif |
| @@ -60,40 +60,40 @@ void OPPROTO glue(op_store_T2_gpr_gpr, REG) (void) | @@ -60,40 +60,40 @@ void OPPROTO glue(op_store_T2_gpr_gpr, REG) (void) | ||
| 60 | #if defined(TARGET_PPCEMB) | 60 | #if defined(TARGET_PPCEMB) |
| 61 | void OPPROTO glue(op_load_gpr64_T0_gpr, REG) (void) | 61 | void OPPROTO glue(op_load_gpr64_T0_gpr, REG) (void) |
| 62 | { | 62 | { |
| 63 | - T0_64 = regs->gpr[REG]; | 63 | + T0_64 = env->gpr[REG]; |
| 64 | RETURN(); | 64 | RETURN(); |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | void OPPROTO glue(op_load_gpr64_T1_gpr, REG) (void) | 67 | void OPPROTO glue(op_load_gpr64_T1_gpr, REG) (void) |
| 68 | { | 68 | { |
| 69 | - T1_64 = regs->gpr[REG]; | 69 | + T1_64 = env->gpr[REG]; |
| 70 | RETURN(); | 70 | RETURN(); |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | #if 0 // unused | 73 | #if 0 // unused |
| 74 | void OPPROTO glue(op_load_gpr64_T2_gpr, REG) (void) | 74 | void OPPROTO glue(op_load_gpr64_T2_gpr, REG) (void) |
| 75 | { | 75 | { |
| 76 | - T2_64 = regs->gpr[REG]; | 76 | + T2_64 = env->gpr[REG]; |
| 77 | RETURN(); | 77 | RETURN(); |
| 78 | } | 78 | } |
| 79 | #endif | 79 | #endif |
| 80 | 80 | ||
| 81 | void OPPROTO glue(op_store_T0_gpr64_gpr, REG) (void) | 81 | void OPPROTO glue(op_store_T0_gpr64_gpr, REG) (void) |
| 82 | { | 82 | { |
| 83 | - regs->gpr[REG] = T0_64; | 83 | + env->gpr[REG] = T0_64; |
| 84 | RETURN(); | 84 | RETURN(); |
| 85 | } | 85 | } |
| 86 | 86 | ||
| 87 | void OPPROTO glue(op_store_T1_gpr64_gpr, REG) (void) | 87 | void OPPROTO glue(op_store_T1_gpr64_gpr, REG) (void) |
| 88 | { | 88 | { |
| 89 | - regs->gpr[REG] = T1_64; | 89 | + env->gpr[REG] = T1_64; |
| 90 | RETURN(); | 90 | RETURN(); |
| 91 | } | 91 | } |
| 92 | 92 | ||
| 93 | #if 0 // unused | 93 | #if 0 // unused |
| 94 | void OPPROTO glue(op_store_T2_gpr64_gpr, REG) (void) | 94 | void OPPROTO glue(op_store_T2_gpr64_gpr, REG) (void) |
| 95 | { | 95 | { |
| 96 | - regs->gpr[REG] = T2_64; | 96 | + env->gpr[REG] = T2_64; |
| 97 | RETURN(); | 97 | RETURN(); |
| 98 | } | 98 | } |
| 99 | #endif | 99 | #endif |
| @@ -103,57 +103,57 @@ void OPPROTO glue(op_store_T2_gpr64_gpr, REG) (void) | @@ -103,57 +103,57 @@ void OPPROTO glue(op_store_T2_gpr64_gpr, REG) (void) | ||
| 103 | /* Condition register moves */ | 103 | /* Condition register moves */ |
| 104 | void OPPROTO glue(op_load_crf_T0_crf, REG) (void) | 104 | void OPPROTO glue(op_load_crf_T0_crf, REG) (void) |
| 105 | { | 105 | { |
| 106 | - T0 = regs->crf[REG]; | 106 | + T0 = env->crf[REG]; |
| 107 | RETURN(); | 107 | RETURN(); |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | void OPPROTO glue(op_load_crf_T1_crf, REG) (void) | 110 | void OPPROTO glue(op_load_crf_T1_crf, REG) (void) |
| 111 | { | 111 | { |
| 112 | - T1 = regs->crf[REG]; | 112 | + T1 = env->crf[REG]; |
| 113 | RETURN(); | 113 | RETURN(); |
| 114 | } | 114 | } |
| 115 | 115 | ||
| 116 | void OPPROTO glue(op_store_T0_crf_crf, REG) (void) | 116 | void OPPROTO glue(op_store_T0_crf_crf, REG) (void) |
| 117 | { | 117 | { |
| 118 | - regs->crf[REG] = T0; | 118 | + env->crf[REG] = T0; |
| 119 | RETURN(); | 119 | RETURN(); |
| 120 | } | 120 | } |
| 121 | 121 | ||
| 122 | void OPPROTO glue(op_store_T1_crf_crf, REG) (void) | 122 | void OPPROTO glue(op_store_T1_crf_crf, REG) (void) |
| 123 | { | 123 | { |
| 124 | - regs->crf[REG] = T1; | 124 | + env->crf[REG] = T1; |
| 125 | RETURN(); | 125 | RETURN(); |
| 126 | } | 126 | } |
| 127 | 127 | ||
| 128 | /* Floating point condition and status register moves */ | 128 | /* Floating point condition and status register moves */ |
| 129 | void OPPROTO glue(op_load_fpscr_T0_fpscr, REG) (void) | 129 | void OPPROTO glue(op_load_fpscr_T0_fpscr, REG) (void) |
| 130 | { | 130 | { |
| 131 | - T0 = regs->fpscr[REG]; | 131 | + T0 = env->fpscr[REG]; |
| 132 | RETURN(); | 132 | RETURN(); |
| 133 | } | 133 | } |
| 134 | 134 | ||
| 135 | #if REG == 0 | 135 | #if REG == 0 |
| 136 | void OPPROTO glue(op_store_T0_fpscr_fpscr, REG) (void) | 136 | void OPPROTO glue(op_store_T0_fpscr_fpscr, REG) (void) |
| 137 | { | 137 | { |
| 138 | - regs->fpscr[REG] = (regs->fpscr[REG] & 0x9) | (T0 & ~0x9); | 138 | + env->fpscr[REG] = (env->fpscr[REG] & 0x9) | (T0 & ~0x9); |
| 139 | RETURN(); | 139 | RETURN(); |
| 140 | } | 140 | } |
| 141 | 141 | ||
| 142 | void OPPROTO glue(op_clear_fpscr_fpscr, REG) (void) | 142 | void OPPROTO glue(op_clear_fpscr_fpscr, REG) (void) |
| 143 | { | 143 | { |
| 144 | - regs->fpscr[REG] = (regs->fpscr[REG] & 0x9); | 144 | + env->fpscr[REG] = (env->fpscr[REG] & 0x9); |
| 145 | RETURN(); | 145 | RETURN(); |
| 146 | } | 146 | } |
| 147 | #else | 147 | #else |
| 148 | void OPPROTO glue(op_store_T0_fpscr_fpscr, REG) (void) | 148 | void OPPROTO glue(op_store_T0_fpscr_fpscr, REG) (void) |
| 149 | { | 149 | { |
| 150 | - regs->fpscr[REG] = T0; | 150 | + env->fpscr[REG] = T0; |
| 151 | RETURN(); | 151 | RETURN(); |
| 152 | } | 152 | } |
| 153 | 153 | ||
| 154 | void OPPROTO glue(op_clear_fpscr_fpscr, REG) (void) | 154 | void OPPROTO glue(op_clear_fpscr_fpscr, REG) (void) |
| 155 | { | 155 | { |
| 156 | - regs->fpscr[REG] = 0x0; | 156 | + env->fpscr[REG] = 0x0; |
| 157 | RETURN(); | 157 | RETURN(); |
| 158 | } | 158 | } |
| 159 | #endif | 159 | #endif |
target-ppc/translate.c
| @@ -118,7 +118,7 @@ GEN8(gen_op_store_T1_crf, gen_op_store_T1_crf_crf); | @@ -118,7 +118,7 @@ GEN8(gen_op_store_T1_crf, gen_op_store_T1_crf_crf); | ||
| 118 | GEN8(gen_op_load_fpscr_T0, gen_op_load_fpscr_T0_fpscr); | 118 | GEN8(gen_op_load_fpscr_T0, gen_op_load_fpscr_T0_fpscr); |
| 119 | GEN8(gen_op_store_T0_fpscr, gen_op_store_T0_fpscr_fpscr); | 119 | GEN8(gen_op_store_T0_fpscr, gen_op_store_T0_fpscr_fpscr); |
| 120 | GEN8(gen_op_clear_fpscr, gen_op_clear_fpscr_fpscr); | 120 | GEN8(gen_op_clear_fpscr, gen_op_clear_fpscr_fpscr); |
| 121 | -static inline void gen_op_store_T0_fpscri(int n, uint8_t param) | 121 | +static inline void gen_op_store_T0_fpscri (int n, uint8_t param) |
| 122 | { | 122 | { |
| 123 | gen_op_set_T0(param); | 123 | gen_op_set_T0(param); |
| 124 | gen_op_store_T0_fpscr(n); | 124 | gen_op_store_T0_fpscr(n); |
| @@ -1312,7 +1312,7 @@ static inline void gen_rldcl (DisasContext *ctx, int mbn) | @@ -1312,7 +1312,7 @@ static inline void gen_rldcl (DisasContext *ctx, int mbn) | ||
| 1312 | mb = MB(ctx->opcode) | (mbn << 5); | 1312 | mb = MB(ctx->opcode) | (mbn << 5); |
| 1313 | gen_rldnm(ctx, mb, 63); | 1313 | gen_rldnm(ctx, mb, 63); |
| 1314 | } | 1314 | } |
| 1315 | -GEN_PPC64_R2(rldcl, 0x1E, 0x08) | 1315 | +GEN_PPC64_R2(rldcl, 0x1E, 0x08); |
| 1316 | /* rldcr - rldcr. */ | 1316 | /* rldcr - rldcr. */ |
| 1317 | static inline void gen_rldcr (DisasContext *ctx, int men) | 1317 | static inline void gen_rldcr (DisasContext *ctx, int men) |
| 1318 | { | 1318 | { |
| @@ -1321,7 +1321,7 @@ static inline void gen_rldcr (DisasContext *ctx, int men) | @@ -1321,7 +1321,7 @@ static inline void gen_rldcr (DisasContext *ctx, int men) | ||
| 1321 | me = MB(ctx->opcode) | (men << 5); | 1321 | me = MB(ctx->opcode) | (men << 5); |
| 1322 | gen_rldnm(ctx, 0, me); | 1322 | gen_rldnm(ctx, 0, me); |
| 1323 | } | 1323 | } |
| 1324 | -GEN_PPC64_R2(rldcr, 0x1E, 0x09) | 1324 | +GEN_PPC64_R2(rldcr, 0x1E, 0x09); |
| 1325 | /* rldimi - rldimi. */ | 1325 | /* rldimi - rldimi. */ |
| 1326 | static inline void gen_rldimi (DisasContext *ctx, int mbn, int shn) | 1326 | static inline void gen_rldimi (DisasContext *ctx, int mbn, int shn) |
| 1327 | { | 1327 | { |
| @@ -1355,7 +1355,7 @@ static inline void gen_rldimi (DisasContext *ctx, int mbn, int shn) | @@ -1355,7 +1355,7 @@ static inline void gen_rldimi (DisasContext *ctx, int mbn, int shn) | ||
| 1355 | if (unlikely(Rc(ctx->opcode) != 0)) | 1355 | if (unlikely(Rc(ctx->opcode) != 0)) |
| 1356 | gen_set_Rc0(ctx); | 1356 | gen_set_Rc0(ctx); |
| 1357 | } | 1357 | } |
| 1358 | -GEN_PPC64_R4(rldimi, 0x1E, 0x06) | 1358 | +GEN_PPC64_R4(rldimi, 0x1E, 0x06); |
| 1359 | #endif | 1359 | #endif |
| 1360 | 1360 | ||
| 1361 | /*** Integer shift ***/ | 1361 | /*** Integer shift ***/ |
| @@ -2601,8 +2601,7 @@ GEN_HANDLER(stfiwx, 0x1F, 0x17, 0x1E, 0x00000001, PPC_FLOAT) | @@ -2601,8 +2601,7 @@ GEN_HANDLER(stfiwx, 0x1F, 0x17, 0x1E, 0x00000001, PPC_FLOAT) | ||
| 2601 | } | 2601 | } |
| 2602 | 2602 | ||
| 2603 | /*** Branch ***/ | 2603 | /*** Branch ***/ |
| 2604 | - | ||
| 2605 | -static inline void gen_goto_tb(DisasContext *ctx, int n, target_ulong dest) | 2604 | +static inline void gen_goto_tb (DisasContext *ctx, int n, target_ulong dest) |
| 2606 | { | 2605 | { |
| 2607 | TranslationBlock *tb; | 2606 | TranslationBlock *tb; |
| 2608 | tb = ctx->tb; | 2607 | tb = ctx->tb; |
| @@ -2669,7 +2668,7 @@ GEN_HANDLER(b, 0x12, 0xFF, 0xFF, 0x00000000, PPC_FLOW) | @@ -2669,7 +2668,7 @@ GEN_HANDLER(b, 0x12, 0xFF, 0xFF, 0x00000000, PPC_FLOW) | ||
| 2669 | #define BCOND_LR 1 | 2668 | #define BCOND_LR 1 |
| 2670 | #define BCOND_CTR 2 | 2669 | #define BCOND_CTR 2 |
| 2671 | 2670 | ||
| 2672 | -static inline void gen_bcond(DisasContext *ctx, int type) | 2671 | +static inline void gen_bcond (DisasContext *ctx, int type) |
| 2673 | { | 2672 | { |
| 2674 | target_ulong target = 0; | 2673 | target_ulong target = 0; |
| 2675 | target_ulong li; | 2674 | target_ulong li; |
| @@ -2806,7 +2805,7 @@ static inline void gen_bcond(DisasContext *ctx, int type) | @@ -2806,7 +2805,7 @@ static inline void gen_bcond(DisasContext *ctx, int type) | ||
| 2806 | #endif | 2805 | #endif |
| 2807 | gen_op_btest_T1(ctx->nip); | 2806 | gen_op_btest_T1(ctx->nip); |
| 2808 | gen_op_reset_T0(); | 2807 | gen_op_reset_T0(); |
| 2809 | - no_test: | 2808 | + no_test: |
| 2810 | if (ctx->singlestep_enabled) | 2809 | if (ctx->singlestep_enabled) |
| 2811 | gen_op_debug(); | 2810 | gen_op_debug(); |
| 2812 | gen_op_exit_tb(); | 2811 | gen_op_exit_tb(); |
| @@ -5585,9 +5584,9 @@ static inline uint32_t load_xer (CPUState *env) | @@ -5585,9 +5584,9 @@ static inline uint32_t load_xer (CPUState *env) | ||
| 5585 | (xer_cmp << XER_CMP); | 5584 | (xer_cmp << XER_CMP); |
| 5586 | } | 5585 | } |
| 5587 | 5586 | ||
| 5588 | -void cpu_dump_state(CPUState *env, FILE *f, | ||
| 5589 | - int (*cpu_fprintf)(FILE *f, const char *fmt, ...), | ||
| 5590 | - int flags) | 5587 | +void cpu_dump_state (CPUState *env, FILE *f, |
| 5588 | + int (*cpu_fprintf)(FILE *f, const char *fmt, ...), | ||
| 5589 | + int flags) | ||
| 5591 | { | 5590 | { |
| 5592 | #if defined(TARGET_PPC64) || 1 | 5591 | #if defined(TARGET_PPC64) || 1 |
| 5593 | #define FILL "" | 5592 | #define FILL "" |
target-ppc/translate_init.c
| @@ -2896,7 +2896,7 @@ static ppc_def_t ppc_defs[] = { | @@ -2896,7 +2896,7 @@ static ppc_def_t ppc_defs[] = { | ||
| 2896 | .name = "Npe405H", | 2896 | .name = "Npe405H", |
| 2897 | .pvr = CPU_PPC_NPE405H, | 2897 | .pvr = CPU_PPC_NPE405H, |
| 2898 | .pvr_mask = 0xFFFFFFFF, | 2898 | .pvr_mask = 0xFFFFFFFF, |
| 2899 | - .insns_flags = PPC_INSNS_405, | 2899 | + .insns_flags = PPC_INSNS_405, |
| 2900 | .flags = PPC_FLAGS_405, | 2900 | .flags = PPC_FLAGS_405, |
| 2901 | .msr_mask = 0x00000000020EFF30ULL, | 2901 | .msr_mask = 0x00000000020EFF30ULL, |
| 2902 | }, | 2902 | }, |
| @@ -3000,7 +3000,7 @@ static ppc_def_t ppc_defs[] = { | @@ -3000,7 +3000,7 @@ static ppc_def_t ppc_defs[] = { | ||
| 3000 | .msr_mask = 0x00000000020EFF30ULL, | 3000 | .msr_mask = 0x00000000020EFF30ULL, |
| 3001 | }, | 3001 | }, |
| 3002 | #endif | 3002 | #endif |
| 3003 | - /* Xilinx PowerPC 405 cores */ | 3003 | + /* Xilinx PowerPC 405 cores */ |
| 3004 | #if defined (TODO) | 3004 | #if defined (TODO) |
| 3005 | { | 3005 | { |
| 3006 | .name = "x2vp4", | 3006 | .name = "x2vp4", |