Revision 36081602

b/hw/ppc405_uc.c
924 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 930
    uint32_t bcr;
930 931

  
......
1217 1218
        sdram->irq = irq;
1218 1219
        sdram->nbanks = nbanks;
1219 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 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 1226
        sdram_reset(sdram);
1224 1227
        qemu_register_reset(&sdram_reset, sdram);
1225 1228
        ppc_dcr_register(env, SDRAM0_CFGADDR,
......
2212 2215
        }
2213 2216
        mask = mask >> 1;
2214 2217
    }
2215

  
2216 2218
}
2217 2219

  
2218 2220
static void ppc4xx_gpt_set_irqs (ppc4xx_gpt_t *gpt)
......
2228 2230
            qemu_irq_lower(gpt->irqs[i]);
2229 2231
        mask = mask >> 1;
2230 2232
    }
2231

  
2232 2233
}
2233 2234

  
2234 2235
static void ppc4xx_gpt_compute_timer (ppc4xx_gpt_t *gpt)
b/hw/ppc_chrp.c
46 46

  
47 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 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 65
static uint32_t dbdma_readb (void *opaque, target_phys_addr_t addr)
63 66
{
64 67
    printf("%s: 0x" PADDRX " => 0x00000000\n", __func__, addr);
68

  
65 69
    return 0;
66 70
}
67 71

  
......
92 96
    uint8_t data[0x2000];
93 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 102
    MacIONVRAMState *s = opaque;
98 103
    addr = (addr >> 4) & 0x1fff;
......
108 113
    addr = (addr >> 4) & 0x1fff;
109 114
    value = s->data[addr];
110 115
    //    printf("macio_nvram_readb %04x = %02x\n", addr, value);
116

  
111 117
    return value;
112 118
}
113 119

  
......
123 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 134
    MacIONVRAMState *s;
129 135
    s = qemu_mallocz(sizeof(MacIONVRAMState));
......
131 137
        return NULL;
132 138
    macio_nvram_mem_index = cpu_register_io_memory(0, macio_nvram_read,
133 139
                                                   macio_nvram_write, s);
140

  
134 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 147
    if (heathrow_pic_mem_index >= 0) {
141 148
        cpu_register_physical_memory(addr + 0x00000, 0x1000,
......
152 159
                                     openpic_mem_index);
153 160
    }
154 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 168
    PCIDevice *d;
161 169

  
......
204 212

  
205 213
/* temporary frame buffer OSI calls for the video.x driver. The right
206 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 218
    static int vga_vbl_enabled;
210 219
    int linesize;
......
264 273
        fprintf(stderr, "unsupported OSI call R5=" REGX "\n", env->gpr[5]);
265 274
        break;
266 275
    }
276

  
267 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 282
    int sum, i;
273 283
    sum = 0;
......
277 287
}
278 288

  
279 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 292
    char partition_name[12] = "wwwwwwwwwwww";
283 293

  
......
503 513
                    ((qemu_irq *)env->irq_inputs)[PPC970_INPUT_HRESET];
504 514
                break;
505 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 517
                exit(1);
509 518
            }
510 519
        }
b/hw/ppc_prep.c
76 76
int speaker_data_on;
77 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 81
#if 0
82 82
    speaker_data_on = (val >> 1) & 1;
......
110 110

  
111 111
    if (addr == 0xBFFFFFF0)
112 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 115
    return retval;
116 116
}
......
177 177
    /* Error diagnostic */
178 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 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 189
#ifdef TARGET_WORDS_BIGENDIAN
188 190
    value = bswap16(value);
......
190 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 198
#ifdef TARGET_WORDS_BIGENDIAN
196 199
    value = bswap32(value);
......
664 667
    cpu_register_physical_memory(0xBFFFFFF0, 0x4, PPC_io_memory);
665 668
    /* PowerPC control and status register group */
666 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 672
    cpu_register_physical_memory(0xFEFF0000, 0x1000, PPC_io_memory);
669 673
#endif
670 674

  
b/target-ppc/cpu.h
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 828
/* you can call this signal handler from your SIGBUS and SIGSEGV
829 829
   signal handlers to inform the virtual CPU of exceptions. non zero
830 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 834
void do_interrupt (CPUPPCState *env);
835 835
void ppc_hw_interrupt (CPUPPCState *env);
836
void cpu_loop_exit(void);
836
void cpu_loop_exit (void);
837 837

  
838 838
void dump_stack (CPUPPCState *env);
839 839

  
......
891 891
void store_booke_tcr (CPUPPCState *env, target_ulong val);
892 892
void store_booke_tsr (CPUPPCState *env, target_ulong val);
893 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 895
#endif
896 896
#endif
897 897

  
......
915 915
#define XER_OV 30
916 916
#define XER_CA 29
917 917
#define XER_CMP 8
918
#define XER_BC 0
918
#define XER_BC  0
919 919
#define xer_so  env->xer[4]
920 920
#define xer_ov  env->xer[6]
921 921
#define xer_ca  env->xer[2]
922 922
#define xer_cmp env->xer[1]
923
#define xer_bc env->xer[0]
923
#define xer_bc  env->xer[0]
924 924

  
925 925
/* SPR definitions */
926 926
#define SPR_MQ           (0x000)
b/target-ppc/exec.h
58 58
#define T1_avr (env->t1_avr)
59 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 61
#define FT0 (env->ft0)
66 62
#define FT1 (env->ft1)
67 63
#define FT2 (env->ft2)
......
111 107
                       target_ulong pte0, target_ulong pte1);
112 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 118
int cpu_ppc_handle_mmu_fault (CPUState *env, target_ulong address, int rw,
123 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 123
    if (!env->halted)
127 124
        return 0;
128 125
    if (env->msr[MSR_EE] && (env->interrupt_request & CPU_INTERRUPT_HARD)) {
b/target-ppc/helper.c
64 64
{
65 65
    return addr;
66 66
}
67

  
67 68
#else
68 69
/* Common routines used by software and hardware TLBs emulation */
69 70
static inline int pte_is_valid (target_ulong pte0)
......
635 636
/* Generic TLB check function for embedded PowerPC implementations */
636 637
static int ppcemb_tlb_check (CPUState *env, ppcemb_tlb_t *tlb,
637 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 642
    target_ulong mask;
641 643

  
......
649 651
    if (loglevel != 0) {
650 652
        fprintf(logfile, "%s: TLB %d address " ADDRX " PID %d <=> "
651 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 656
    /* Check PID */
656
    if (tlb->PID != 0 && tlb->PID != env->spr[SPR_40x_PID])
657
    if (tlb->PID != 0 && tlb->PID != pid)
657 658
        return -1;
658 659
    /* Check effective address */
659 660
    if ((address & mask) != tlb->EPN)
660 661
        return -1;
661 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 668
    return 0;
664 669
}
665 670

  
666 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 674
    ppcemb_tlb_t *tlb;
670 675
    target_phys_addr_t raddr;
......
674 679
    ret = -1;
675 680
    for (i = 0; i < 64; i++) {
676 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 683
            ret = i;
679 684
            break;
680 685
        }
......
703 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 712
                                 target_ulong address, int rw, int access_type)
708 713
{
709 714
    ppcemb_tlb_t *tlb;
......
714 719
    raddr = -1;
715 720
    for (i = 0; i < env->nb_tlb; i++) {
716 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 724
            continue;
719 725
        zsel = (tlb->attr >> 4) & 0xF;
720 726
        zpr = (env->spr[SPR_40x_ZPR] >> (28 - (2 * zsel))) & 0x3;
......
890 896
            break;
891 897
        case PPC_FLAGS_MMU_SOFT_4xx:
892 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 900
                                              rw, access_type);
895 901
            break;
896 902
        case PPC_FLAGS_MMU_601:
......
1536 1542
    env->exception_index = -1;
1537 1543
}
1538 1544
#else /* defined (CONFIG_USER_ONLY) */
1539
static void dump_syscall(CPUState *env)
1545
static void dump_syscall (CPUState *env)
1540 1546
{
1541 1547
    fprintf(logfile, "syscall r0=0x" REGX " r3=0x" REGX " r4=0x" REGX
1542 1548
            " r5=0x" REGX " r6=0x" REGX " nip=0x" ADDRX "\n",
b/target-ppc/op.c
24 24
#include "exec.h"
25 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 27
#define REG 0
38 28
#include "op_template.h"
39 29

  
......
139 129

  
140 130
/* PowerPC state maintenance operations */
141 131
/* set_Rc0 */
142
PPC_OP(set_Rc0)
132
void OPPROTO op_set_Rc0 (void)
143 133
{
144 134
    env->crf[0] = T0 | xer_ov;
145 135
    RETURN();
146 136
}
147 137

  
148 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 142
    RETURN();
153 143
}
154 144

  
......
159 149
    RETURN();
160 150
}
161 151

  
162
PPC_OP(set_T0)
152
void OPPROTO op_set_T0 (void)
163 153
{
164 154
    T0 = (uint32_t)PARAM1;
165 155
    RETURN();
......
173 163
}
174 164
#endif
175 165

  
176
PPC_OP(set_T1)
166
void OPPROTO op_set_T1 (void)
177 167
{
178 168
    T1 = (uint32_t)PARAM1;
179 169
    RETURN();
......
188 178
#endif
189 179

  
190 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 184
    RETURN();
195 185
}
196 186
#endif
......
208 198
}
209 199

  
210 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 208
    env->nip = (uint32_t)PARAM1;
219 209
    RETURN();
......
227 217
}
228 218
#endif
229 219

  
230
PPC_OP(debug)
220
void OPPROTO op_debug (void)
231 221
{
232 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 227
    EXIT_TB();
238 228
}
239 229

  
240 230
/* Load/store special registers */
241
PPC_OP(load_cr)
231
void OPPROTO op_load_cr (void)
242 232
{
243 233
    do_load_cr();
244 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 240
    RETURN();
251 241
}
252 242

  
......
262 252
    RETURN();
263 253
}
264 254

  
265
PPC_OP(load_xer_cr)
255
void OPPROTO op_load_xer_cr (void)
266 256
{
267 257
    T0 = (xer_so << 3) | (xer_ov << 2) | (xer_ca << 1);
268 258
    RETURN();
269 259
}
270 260

  
271
PPC_OP(clear_xer_ov)
261
void OPPROTO op_clear_xer_ov (void)
272 262
{
273 263
    xer_so = 0;
274 264
    xer_ov = 0;
275 265
    RETURN();
276 266
}
277 267

  
278
PPC_OP(clear_xer_ca)
268
void OPPROTO op_clear_xer_ca (void)
279 269
{
280 270
    xer_ca = 0;
281 271
    RETURN();
282 272
}
283 273

  
284
PPC_OP(load_xer_bc)
274
void OPPROTO op_load_xer_bc (void)
285 275
{
286 276
    T1 = xer_bc;
287 277
    RETURN();
......
293 283
    RETURN();
294 284
}
295 285

  
296
PPC_OP(load_xer)
286
void OPPROTO op_load_xer (void)
297 287
{
298 288
    do_load_xer();
299 289
    RETURN();
300 290
}
301 291

  
302
PPC_OP(store_xer)
292
void OPPROTO op_store_xer (void)
303 293
{
304 294
    do_store_xer();
305 295
    RETURN();
......
307 297

  
308 298
#if !defined(CONFIG_USER_ONLY)
309 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 303
    RETURN();
314 304
}
315 305

  
316
PPC_OP(store_sr)
306
void OPPROTO op_store_sr (void)
317 307
{
318 308
    do_store_sr(env, T1, T0);
319 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 315
    RETURN();
326 316
}
327 317

  
328
PPC_OP(store_sdr1)
318
void OPPROTO op_store_sdr1 (void)
329 319
{
330 320
    do_store_sdr1(env, T0);
331 321
    RETURN();
......
345 335
}
346 336
#endif
347 337

  
348
PPC_OP(load_msr)
338
void OPPROTO op_load_msr (void)
349 339
{
350 340
    T0 = do_load_msr(env);
351 341
    RETURN();
352 342
}
353 343

  
354
PPC_OP(store_msr)
344
void OPPROTO op_store_msr (void)
355 345
{
356 346
    do_store_msr(env, T0);
357 347
    RETURN();
......
397 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 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 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 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 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 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 423
    RETURN();
434 424
}
435 425

  
436 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 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 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 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 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 454
    RETURN();
465 455
}
466 456

  
......
480 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 476
    RETURN();
487 477
}
488 478

  
......
504 494
#endif /* !defined(CONFIG_USER_ONLY) */
505 495

  
506 496
/* FPSCR */
507
PPC_OP(load_fpscr)
497
void OPPROTO op_load_fpscr (void)
508 498
{
509 499
    do_load_fpscr();
510 500
    RETURN();
511 501
}
512 502

  
513
PPC_OP(store_fpscr)
503
void OPPROTO op_store_fpscr (void)
514 504
{
515 505
    do_store_fpscr(PARAM1);
516 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 512
    RETURN();
523 513
}
524 514

  
525 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 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 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 531
    RETURN();
542 532
}
543 533

  
544 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 540
    RETURN();
551 541
}
552 542

  
553 543
#if defined (TARGET_PPC64)
554 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 547
    RETURN();
558 548
}
559 549
#endif
560 550

  
561
PPC_OP(goto_tb0)
551
void OPPROTO op_goto_tb0 (void)
562 552
{
563 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 558
    GOTO_TB(op_goto_tb1, PARAM1, 1);
569 559
}
570 560

  
571 561
void OPPROTO op_b_T1 (void)
572 562
{
573
    regs->nip = (uint32_t)(T1 & ~3);
563
    env->nip = (uint32_t)(T1 & ~3);
574 564
    RETURN();
575 565
}
576 566

  
577 567
#if defined (TARGET_PPC64)
578 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 571
    RETURN();
582 572
}
583 573
#endif
584 574

  
585
PPC_OP(jz_T0)
575
void OPPROTO op_jz_T0 (void)
586 576
{
587 577
    if (!T0)
588 578
        GOTO_LABEL_PARAM(1);
......
592 582
void OPPROTO op_btest_T1 (void)
593 583
{
594 584
    if (T0) {
595
        regs->nip = (uint32_t)(T1 & ~3);
585
        env->nip = (uint32_t)(T1 & ~3);
596 586
    } else {
597
        regs->nip = (uint32_t)PARAM1;
587
        env->nip = (uint32_t)PARAM1;
598 588
    }
599 589
    RETURN();
600 590
}
......
603 593
void OPPROTO op_btest_T1_64 (void)
604 594
{
605 595
    if (T0) {
606
        regs->nip = (uint64_t)(T1 & ~3);
596
        env->nip = (uint64_t)(T1 & ~3);
607 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 600
    RETURN();
611 601
}
612 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 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 613
    RETURN();
624 614
}
625 615

  
626 616
/* tests with result in T0 */
627 617
void OPPROTO op_test_ctr (void)
628 618
{
629
    T0 = (uint32_t)regs->ctr;
619
    T0 = (uint32_t)env->ctr;
630 620
    RETURN();
631 621
}
632 622

  
633 623
#if defined(TARGET_PPC64)
634 624
void OPPROTO op_test_ctr_64 (void)
635 625
{
636
    T0 = (uint64_t)regs->ctr;
626
    T0 = (uint64_t)env->ctr;
637 627
    RETURN();
638 628
}
639 629
#endif
640 630

  
641 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 634
    RETURN();
645 635
}
646 636

  
647 637
#if defined(TARGET_PPC64)
648 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 641
    RETURN();
652 642
}
653 643
#endif
654 644

  
655 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 648
    RETURN();
659 649
}
660 650

  
661 651
#if defined(TARGET_PPC64)
662 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 655
    RETURN();
666 656
}
667 657
#endif
668 658

  
669 659
void OPPROTO op_test_ctrz (void)
670 660
{
671
    T0 = ((uint32_t)regs->ctr == 0);
661
    T0 = ((uint32_t)env->ctr == 0);
672 662
    RETURN();
673 663
}
674 664

  
675 665
#if defined(TARGET_PPC64)
676 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 669
    RETURN();
680 670
}
681 671
#endif
682 672

  
683 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 676
    RETURN();
687 677
}
688 678

  
689 679
#if defined(TARGET_PPC64)
690 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 683
    RETURN();
694 684
}
695 685
#endif
696 686

  
697 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 690
    RETURN();
701 691
}
702 692

  
703 693
#if defined(TARGET_PPC64)
704 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 697
    RETURN();
708 698
}
709 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 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 710
    RETURN();
721 711
}
722 712

  
723 713
/* CTR maintenance */
724
PPC_OP(dec_ctr)
714
void OPPROTO op_dec_ctr (void)
725 715
{
726
    regs->ctr--;
716
    env->ctr--;
727 717
    RETURN();
728 718
}
729 719

  
730 720
/***                           Integer arithmetic                          ***/
731 721
/* add */
732
PPC_OP(add)
722
void OPPROTO op_add (void)
733 723
{
734 724
    T0 += T1;
735 725
    RETURN();
......
800 790
#endif
801 791

  
802 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 796
    RETURN();
807 797
}
808 798

  
......
957 947
#endif
958 948

  
959 949
/* multiply low immediate */
960
PPC_OP(mulli)
950
void OPPROTO op_mulli (void)
961 951
{
962 952
    T0 = ((int32_t)T0 * (int32_t)PARAM1);
963 953
    RETURN();
964 954
}
965 955

  
966 956
/* multiply low word */
967
PPC_OP(mullw)
957
void OPPROTO op_mullw (void)
968 958
{
969 959
    T0 = (int32_t)(T0 * T1);
970 960
    RETURN();
......
1026 1016
#endif
1027 1017

  
1028 1018
/* subtract from */
1029
PPC_OP(subf)
1019
void OPPROTO op_subf (void)
1030 1020
{
1031 1021
    T0 = T1 - T0;
1032 1022
    RETURN();
......
1329 1319

  
1330 1320
/***                            Integer logical                            ***/
1331 1321
/* and */
1332
PPC_OP(and)
1322
void OPPROTO op_and (void)
1333 1323
{
1334 1324
    T0 &= T1;
1335 1325
    RETURN();
1336 1326
}
1337 1327

  
1338 1328
/* andc */
1339
PPC_OP(andc)
1329
void OPPROTO op_andc (void)
1340 1330
{
1341 1331
    T0 &= ~T1;
1342 1332
    RETURN();
......
1345 1335
/* andi. */
1346 1336
void OPPROTO op_andi_T0 (void)
1347 1337
{
1348
    T0 &= PARAM(1);
1338
    T0 &= PARAM1;
1349 1339
    RETURN();
1350 1340
}
1351 1341

  
......
1371 1361
#endif
1372 1362

  
1373 1363
/* eqv */
1374
PPC_OP(eqv)
1364
void OPPROTO op_eqv (void)
1375 1365
{
1376 1366
    T0 = ~(T0 ^ T1);
1377 1367
    RETURN();
......
1408 1398
#endif
1409 1399

  
1410 1400
/* nand */
1411
PPC_OP(nand)
1401
void OPPROTO op_nand (void)
1412 1402
{
1413 1403
    T0 = ~(T0 & T1);
1414 1404
    RETURN();
1415 1405
}
1416 1406

  
1417 1407
/* nor */
1418
PPC_OP(nor)
1408
void OPPROTO op_nor (void)
1419 1409
{
1420 1410
    T0 = ~(T0 | T1);
1421 1411
    RETURN();
1422 1412
}
1423 1413

  
1424 1414
/* or */
1425
PPC_OP(or)
1415
void OPPROTO op_or (void)
1426 1416
{
1427 1417
    T0 |= T1;
1428 1418
    RETURN();
1429 1419
}
1430 1420

  
1431 1421
/* orc */
1432
PPC_OP(orc)
1422
void OPPROTO op_orc (void)
1433 1423
{
1434 1424
    T0 |= ~T1;
1435 1425
    RETURN();
1436 1426
}
1437 1427

  
1438 1428
/* ori */
1439
PPC_OP(ori)
1429
void OPPROTO op_ori (void)
1440 1430
{
1441
    T0 |= PARAM(1);
1431
    T0 |= PARAM1;
1442 1432
    RETURN();
1443 1433
}
1444 1434

  
1445 1435
/* xor */
1446
PPC_OP(xor)
1436
void OPPROTO op_xor (void)
1447 1437
{
1448 1438
    T0 ^= T1;
1449 1439
    RETURN();
1450 1440
}
1451 1441

  
1452 1442
/* xori */
1453
PPC_OP(xori)
1443
void OPPROTO op_xori (void)
1454 1444
{
1455
    T0 ^= PARAM(1);
1445
    T0 ^= PARAM1;
1456 1446
    RETURN();
1457 1447
}
1458 1448

  
......
1630 1620

  
1631 1621
/***                       Floating-Point arithmetic                       ***/
1632 1622
/* fadd - fadd. */
1633
PPC_OP(fadd)
1623
void OPPROTO op_fadd (void)
1634 1624
{
1635 1625
    FT0 = float64_add(FT0, FT1, &env->fp_status);
1636 1626
    RETURN();
1637 1627
}
1638 1628

  
1639 1629
/* fsub - fsub. */
1640
PPC_OP(fsub)
1630
void OPPROTO op_fsub (void)
1641 1631
{
1642 1632
    FT0 = float64_sub(FT0, FT1, &env->fp_status);
1643 1633
    RETURN();
1644 1634
}
1645 1635

  
1646 1636
/* fmul - fmul. */
1647
PPC_OP(fmul)
1637
void OPPROTO op_fmul (void)
1648 1638
{
1649 1639
    FT0 = float64_mul(FT0, FT1, &env->fp_status);
1650 1640
    RETURN();
1651 1641
}
1652 1642

  
1653 1643
/* fdiv - fdiv. */
1654
PPC_OP(fdiv)
1644
void OPPROTO op_fdiv (void)
1655 1645
{
1656 1646
    FT0 = float64_div(FT0, FT1, &env->fp_status);
1657 1647
    RETURN();
1658 1648
}
1659 1649

  
1660 1650
/* fsqrt - fsqrt. */
1661
PPC_OP(fsqrt)
1651
void OPPROTO op_fsqrt (void)
1662 1652
{
1663 1653
    do_fsqrt();
1664 1654
    RETURN();
1665 1655
}
1666 1656

  
1667 1657
/* fres - fres. */
1668
PPC_OP(fres)
1658
void OPPROTO op_fres (void)
1669 1659
{
1670 1660
    do_fres();
1671 1661
    RETURN();
1672 1662
}
1673 1663

  
1674 1664
/* frsqrte  - frsqrte. */
1675
PPC_OP(frsqrte)
1665
void OPPROTO op_frsqrte (void)
1676 1666
{
1677 1667
    do_frsqrte();
1678 1668
    RETURN();
1679 1669
}
1680 1670

  
1681 1671
/* fsel - fsel. */
1682
PPC_OP(fsel)
1672
void OPPROTO op_fsel (void)
1683 1673
{
1684 1674
    do_fsel();
1685 1675
    RETURN();
......
1687 1677

  
1688 1678
/***                     Floating-Point multiply-and-add                   ***/
1689 1679
/* fmadd - fmadd. */
1690
PPC_OP(fmadd)
1680
void OPPROTO op_fmadd (void)
1691 1681
{
1692 1682
#if USE_PRECISE_EMULATION
1693 1683
    do_fmadd();
......
1699 1689
}
1700 1690

  
1701 1691
/* fmsub - fmsub. */
1702
PPC_OP(fmsub)
1692
void OPPROTO op_fmsub (void)
1703 1693
{
1704 1694
#if USE_PRECISE_EMULATION
1705 1695
    do_fmsub();
......
1711 1701
}
1712 1702

  
1713 1703
/* fnmadd - fnmadd. - fnmadds - fnmadds. */
1714
PPC_OP(fnmadd)
1704
void OPPROTO op_fnmadd (void)
1715 1705
{
1716 1706
    do_fnmadd();
1717 1707
    RETURN();
1718 1708
}
1719 1709

  
1720 1710
/* fnmsub - fnmsub. */
1721
PPC_OP(fnmsub)
1711
void OPPROTO op_fnmsub (void)
1722 1712
{
1723 1713
    do_fnmsub();
1724 1714
    RETURN();
......
1726 1716

  
1727 1717
/***                     Floating-Point round & convert                    ***/
1728 1718
/* frsp - frsp. */
1729
PPC_OP(frsp)
1719
void OPPROTO op_frsp (void)
1730 1720
{
1731 1721
    FT0 = float64_to_float32(FT0, &env->fp_status);
1732 1722
    RETURN();
1733 1723
}
1734 1724

  
1735 1725
/* fctiw - fctiw. */
1736
PPC_OP(fctiw)
1726
void OPPROTO op_fctiw (void)
1737 1727
{
1738 1728
    do_fctiw();
1739 1729
    RETURN();
1740 1730
}
1741 1731

  
1742 1732
/* fctiwz - fctiwz. */
1743
PPC_OP(fctiwz)
1733
void OPPROTO op_fctiwz (void)
1744 1734
{
1745 1735
    do_fctiwz();
1746 1736
    RETURN();
......
1748 1738

  
1749 1739
#if defined(TARGET_PPC64)
1750 1740
/* fcfid - fcfid. */
1751
PPC_OP(fcfid)
1741
void OPPROTO op_fcfid (void)
1752 1742
{
1753 1743
    do_fcfid();
1754 1744
    RETURN();
1755 1745
}
1756 1746

  
1757 1747
/* fctid - fctid. */
1758
PPC_OP(fctid)
1748
void OPPROTO op_fctid (void)
1759 1749
{
1760 1750
    do_fctid();
1761 1751
    RETURN();
1762 1752
}
1763 1753

  
1764 1754
/* fctidz - fctidz. */
1765
PPC_OP(fctidz)
1755
void OPPROTO op_fctidz (void)
1766 1756
{
1767 1757
    do_fctidz();
1768 1758
    RETURN();
......
1771 1761

  
1772 1762
/***                         Floating-Point compare                        ***/
1773 1763
/* fcmpu */
1774
PPC_OP(fcmpu)
1764
void OPPROTO op_fcmpu (void)
1775 1765
{
1776 1766
    do_fcmpu();
1777 1767
    RETURN();
1778 1768
}
1779 1769

  
1780 1770
/* fcmpo */
1781
PPC_OP(fcmpo)
1771
void OPPROTO op_fcmpo (void)
1782 1772
{
1783 1773
    do_fcmpo();
1784 1774
    RETURN();
......
1786 1776

  
1787 1777
/***                         Floating-point move                           ***/
1788 1778
/* fabs */
1789
PPC_OP(fabs)
1779
void OPPROTO op_fabs (void)
1790 1780
{
1791 1781
    FT0 = float64_abs(FT0);
1792 1782
    RETURN();
1793 1783
}
1794 1784

  
1795 1785
/* fnabs */
1796
PPC_OP(fnabs)
1786
void OPPROTO op_fnabs (void)
1797 1787
{
1798 1788
    FT0 = float64_abs(FT0);
1799 1789
    FT0 = float64_chs(FT0);
......
1801 1791
}
1802 1792

  
1803 1793
/* fneg */
1804
PPC_OP(fneg)
1794
void OPPROTO op_fneg (void)
1805 1795
{
1806 1796
    FT0 = float64_chs(FT0);
1807 1797
    RETURN();
......
1871 1861

  
1872 1862
#if !defined(CONFIG_USER_ONLY)
1873 1863
/* tlbia */
1874
PPC_OP(tlbia)
1864
void OPPROTO op_tlbia (void)
1875 1865
{
1876 1866
    do_tlbia();
1877 1867
    RETURN();
b/target-ppc/op_helper.c
88 88
{
89 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 92
        if (mask & (1 << sh))
93 93
            env->crf[i] = (T0 >> (sh * 4)) & 0xFUL;
94 94
    }
......
216 216

  
217 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 221
    add128(plow, phigh, 1, 0);
222 222
}
223 223

  
......
258 258
static void imul64 (uint64_t *plow, uint64_t *phigh, int64_t a, int64_t b)
259 259
{
260 260
    int sa, sb;
261

  
261 262
    sa = (a < 0);
262 263
    if (sa)
263 264
        a = -a;
......
2493 2494

  
2494 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 2500
void do_4xx_tlbsx_ (void)
2500 2501
{
2501 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 2505
    if (T0 != -1)
2505 2506
        tmp |= 0x02;
2506 2507
    env->crf[0] = tmp;
b/target-ppc/op_helper_mem.h
271 271
}
272 272
#endif
273 273

  
274
/* PPC 601 specific instructions (POWER bridge) */
274
/* PowerPC 601 specific instructions (POWER bridge) */
275 275
// XXX: to be tested
276 276
void glue(do_POWER_lscbx, MEMSUFFIX) (int dest, int ra, int rb)
277 277
{
b/target-ppc/op_mem.h
517 517
        do_raise_exception(EXCP_ALIGN);
518 518
    } else {
519 519
        T1 = glue(ldl, MEMSUFFIX)((uint32_t)T0);
520
        regs->reserve = (uint32_t)T0;
520
        env->reserve = (uint32_t)T0;
521 521
    }
522 522
    RETURN();
523 523
}
......
529 529
        do_raise_exception(EXCP_ALIGN);
530 530
    } else {
531 531
        T1 = glue(ldl, MEMSUFFIX)((uint64_t)T0);
532
        regs->reserve = (uint64_t)T0;
532
        env->reserve = (uint64_t)T0;
533 533
    }
534 534
    RETURN();
535 535
}
......
540 540
        do_raise_exception(EXCP_ALIGN);
541 541
    } else {
542 542
        T1 = glue(ldq, MEMSUFFIX)((uint32_t)T0);
543
        regs->reserve = (uint32_t)T0;
543
        env->reserve = (uint32_t)T0;
544 544
    }
545 545
    RETURN();
546 546
}
......
551 551
        do_raise_exception(EXCP_ALIGN);
552 552
    } else {
553 553
        T1 = glue(ldq, MEMSUFFIX)((uint64_t)T0);
554
        regs->reserve = (uint64_t)T0;
554
        env->reserve = (uint64_t)T0;
555 555
    }
556 556
    RETURN();
557 557
}
......
563 563
        do_raise_exception(EXCP_ALIGN);
564 564
    } else {
565 565
        T1 = glue(ld32r, MEMSUFFIX)((uint32_t)T0);
566
        regs->reserve = (uint32_t)T0;
566
        env->reserve = (uint32_t)T0;
567 567
    }
568 568
    RETURN();
569 569
}
......
575 575
        do_raise_exception(EXCP_ALIGN);
576 576
    } else {
577 577
        T1 = glue(ld32r, MEMSUFFIX)((uint64_t)T0);
578
        regs->reserve = (uint64_t)T0;
578
        env->reserve = (uint64_t)T0;
579 579
    }
580 580
    RETURN();
581 581
}
......
586 586
        do_raise_exception(EXCP_ALIGN);
587 587
    } else {
588 588
        T1 = glue(ld64r, MEMSUFFIX)((uint32_t)T0);
589
        regs->reserve = (uint32_t)T0;
589
        env->reserve = (uint32_t)T0;
590 590
    }
591 591
    RETURN();
592 592
}
......
597 597
        do_raise_exception(EXCP_ALIGN);
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff