Revision 99a0949b target-ppc/op_helper.c

b/target-ppc/op_helper.c
1782 1782
#if !defined (CONFIG_USER_ONLY)
1783 1783
target_ulong helper_rac (target_ulong addr)
1784 1784
{
1785
    mmu_ctx_t ctx;
1785
    a_mmu_ctx ctx;
1786 1786
    int nb_BATs;
1787 1787
    target_ulong ret = 0;
1788 1788

  
......
1996 1996
#undef SATCVT
1997 1997

  
1998 1998
#define LVE(name, access, swap, element)                        \
1999
    void helper_##name (ppc_avr_t *r, target_ulong addr)        \
1999
    void helper_##name (union ppc_avr *r, target_ulong addr)    \
2000 2000
    {                                                           \
2001 2001
        size_t n_elems = ARRAY_SIZE(r->element);                \
2002 2002
        int adjust = HI_IDX*(n_elems-1);                        \
......
2015 2015
#undef I
2016 2016
#undef LVE
2017 2017

  
2018
void helper_lvsl (ppc_avr_t *r, target_ulong sh)
2018
void helper_lvsl (union ppc_avr *r, target_ulong sh)
2019 2019
{
2020 2020
    int i, j = (sh & 0xf);
2021 2021

  
......
2024 2024
    }
2025 2025
}
2026 2026

  
2027
void helper_lvsr (ppc_avr_t *r, target_ulong sh)
2027
void helper_lvsr (union ppc_avr *r, target_ulong sh)
2028 2028
{
2029 2029
    int i, j = 0x10 - (sh & 0xf);
2030 2030

  
......
2034 2034
}
2035 2035

  
2036 2036
#define STVE(name, access, swap, element)                       \
2037
    void helper_##name (ppc_avr_t *r, target_ulong addr)        \
2037
    void helper_##name (union ppc_avr *r, target_ulong addr)    \
2038 2038
    {                                                           \
2039 2039
        size_t n_elems = ARRAY_SIZE(r->element);                \
2040 2040
        int adjust = HI_IDX*(n_elems-1);                        \
......
2053 2053
#undef I
2054 2054
#undef LVE
2055 2055

  
2056
void helper_mtvscr (ppc_avr_t *r)
2056
void helper_mtvscr (union ppc_avr *r)
2057 2057
{
2058 2058
#if defined(HOST_WORDS_BIGENDIAN)
2059 2059
    env->vscr = r->u32[3];
......
2063 2063
    set_flush_to_zero(vscr_nj, &env->vec_status);
2064 2064
}
2065 2065

  
2066
void helper_vaddcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2066
void helper_vaddcuw (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2067 2067
{
2068 2068
    int i;
2069 2069
    for (i = 0; i < ARRAY_SIZE(r->u32); i++) {
......
2071 2071
    }
2072 2072
}
2073 2073

  
2074
#define VARITH_DO(name, op, element)        \
2075
void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)          \
2076
{                                                                       \
2077
    int i;                                                              \
2078
    for (i = 0; i < ARRAY_SIZE(r->element); i++) {                      \
2079
        r->element[i] = a->element[i] op b->element[i];                 \
2080
    }                                                                   \
2074
#define VARITH_DO(name, op, element)                                            \
2075
void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)      \
2076
{                                                                               \
2077
    int i;                                                                      \
2078
    for (i = 0; i < ARRAY_SIZE(r->element); i++) {                              \
2079
        r->element[i] = a->element[i] op b->element[i];                         \
2080
    }                                                                           \
2081 2081
}
2082 2082
#define VARITH(suffix, element)                  \
2083 2083
  VARITH_DO(add##suffix, +, element)             \
......
2089 2089
#undef VARITH
2090 2090

  
2091 2091
#define VARITHFP(suffix, func)                                          \
2092
    void helper_v##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)    \
2092
    void helper_v##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)\
2093 2093
    {                                                                   \
2094 2094
        int i;                                                          \
2095 2095
        for (i = 0; i < ARRAY_SIZE(r->f); i++) {                        \
......
2109 2109
    }
2110 2110

  
2111 2111
#define VARITHSAT_DO(name, op, optype, cvt, element)                    \
2112
    void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)      \
2112
    void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
2113 2113
    {                                                                   \
2114 2114
        int sat = 0;                                                    \
2115 2115
        int i;                                                          \
......
2142 2142
#undef VARITHSAT_UNSIGNED
2143 2143

  
2144 2144
#define VAVG_DO(name, element, etype)                                   \
2145
    void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)      \
2145
    void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)\
2146 2146
    {                                                                   \
2147 2147
        int i;                                                          \
2148 2148
        for (i = 0; i < ARRAY_SIZE(r->element); i++) {                  \
......
2161 2161
#undef VAVG
2162 2162

  
2163 2163
#define VCF(suffix, cvt, element)                                       \
2164
    void helper_vcf##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t uim)  \
2164
    void helper_vcf##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t uim)  \
2165 2165
    {                                                                   \
2166 2166
        int i;                                                          \
2167 2167
        for (i = 0; i < ARRAY_SIZE(r->f); i++) {                        \
......
2174 2174
#undef VCF
2175 2175

  
2176 2176
#define VCMP_DO(suffix, compare, element, record)                       \
2177
    void helper_vcmp##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
2177
    void helper_vcmp##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
2178 2178
    {                                                                   \
2179 2179
        uint32_t ones = (uint32_t)-1;                                   \
2180 2180
        uint32_t all = ones;                                            \
......
2210 2210
#undef VCMP
2211 2211

  
2212 2212
#define VCMPFP_DO(suffix, compare, order, record)                       \
2213
    void helper_vcmp##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b) \
2213
    void helper_vcmp##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b) \
2214 2214
    {                                                                   \
2215 2215
        uint32_t ones = (uint32_t)-1;                                   \
2216 2216
        uint32_t all = ones;                                            \
......
2243 2243
#undef VCMPFP_DO
2244 2244
#undef VCMPFP
2245 2245

  
2246
static inline void vcmpbfp_internal(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b,
2246
static inline void vcmpbfp_internal(union ppc_avr *r, union ppc_avr *a, union ppc_avr *b,
2247 2247
                                    int record)
2248 2248
{
2249 2249
    int i;
......
2267 2267
    }
2268 2268
}
2269 2269

  
2270
void helper_vcmpbfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2270
void helper_vcmpbfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2271 2271
{
2272 2272
    vcmpbfp_internal(r, a, b, 0);
2273 2273
}
2274 2274

  
2275
void helper_vcmpbfp_dot (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2275
void helper_vcmpbfp_dot (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2276 2276
{
2277 2277
    vcmpbfp_internal(r, a, b, 1);
2278 2278
}
2279 2279

  
2280 2280
#define VCT(suffix, satcvt, element)                                    \
2281
    void helper_vct##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t uim)  \
2281
    void helper_vct##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t uim)  \
2282 2282
    {                                                                   \
2283 2283
        int i;                                                          \
2284 2284
        int sat = 0;                                                    \
......
2304 2304
VCT(sxs, cvtsdsw, s32)
2305 2305
#undef VCT
2306 2306

  
2307
void helper_vmaddfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2307
void helper_vmaddfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2308 2308
{
2309 2309
    int i;
2310 2310
    for (i = 0; i < ARRAY_SIZE(r->f); i++) {
......
2322 2322
    }
2323 2323
}
2324 2324

  
2325
void helper_vmhaddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2325
void helper_vmhaddshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2326 2326
{
2327 2327
    int sat = 0;
2328 2328
    int i;
......
2338 2338
    }
2339 2339
}
2340 2340

  
2341
void helper_vmhraddshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2341
void helper_vmhraddshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2342 2342
{
2343 2343
    int sat = 0;
2344 2344
    int i;
......
2355 2355
}
2356 2356

  
2357 2357
#define VMINMAX_DO(name, compare, element)                              \
2358
    void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)      \
2358
    void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)      \
2359 2359
    {                                                                   \
2360 2360
        int i;                                                          \
2361 2361
        for (i = 0; i < ARRAY_SIZE(r->element); i++) {                  \
......
2379 2379
#undef VMINMAX
2380 2380

  
2381 2381
#define VMINMAXFP(suffix, rT, rF)                                       \
2382
    void helper_v##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)    \
2382
    void helper_v##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)    \
2383 2383
    {                                                                   \
2384 2384
        int i;                                                          \
2385 2385
        for (i = 0; i < ARRAY_SIZE(r->f); i++) {                        \
......
2396 2396
VMINMAXFP(maxfp, b, a)
2397 2397
#undef VMINMAXFP
2398 2398

  
2399
void helper_vmladduhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2399
void helper_vmladduhm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2400 2400
{
2401 2401
    int i;
2402 2402
    for (i = 0; i < ARRAY_SIZE(r->s16); i++) {
......
2406 2406
}
2407 2407

  
2408 2408
#define VMRG_DO(name, element, highp)                                   \
2409
    void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)      \
2409
    void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)      \
2410 2410
    {                                                                   \
2411
        ppc_avr_t result;                                               \
2411
        union ppc_avr result;                                               \
2412 2412
        int i;                                                          \
2413 2413
        size_t n_elems = ARRAY_SIZE(r->element);                        \
2414 2414
        for (i = 0; i < n_elems/2; i++) {                               \
......
2440 2440
#undef MRGHI
2441 2441
#undef MRGLO
2442 2442

  
2443
void helper_vmsummbm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2443
void helper_vmsummbm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2444 2444
{
2445 2445
    int32_t prod[16];
2446 2446
    int i;
......
2454 2454
    }
2455 2455
}
2456 2456

  
2457
void helper_vmsumshm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2457
void helper_vmsumshm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2458 2458
{
2459 2459
    int32_t prod[8];
2460 2460
    int i;
......
2468 2468
    }
2469 2469
}
2470 2470

  
2471
void helper_vmsumshs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2471
void helper_vmsumshs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2472 2472
{
2473 2473
    int32_t prod[8];
2474 2474
    int i;
......
2488 2488
    }
2489 2489
}
2490 2490

  
2491
void helper_vmsumubm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2491
void helper_vmsumubm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2492 2492
{
2493 2493
    uint16_t prod[16];
2494 2494
    int i;
......
2502 2502
    }
2503 2503
}
2504 2504

  
2505
void helper_vmsumuhm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2505
void helper_vmsumuhm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2506 2506
{
2507 2507
    uint32_t prod[8];
2508 2508
    int i;
......
2516 2516
    }
2517 2517
}
2518 2518

  
2519
void helper_vmsumuhs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2519
void helper_vmsumuhs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2520 2520
{
2521 2521
    uint32_t prod[8];
2522 2522
    int i;
......
2537 2537
}
2538 2538

  
2539 2539
#define VMUL_DO(name, mul_element, prod_element, evenp)                 \
2540
    void helper_v##name (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)      \
2540
    void helper_v##name (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)      \
2541 2541
    {                                                                   \
2542 2542
        int i;                                                          \
2543 2543
        VECTOR_FOR_INORDER_I(i, prod_element) {                         \
......
2558 2558
#undef VMUL_DO
2559 2559
#undef VMUL
2560 2560

  
2561
void helper_vnmsubfp (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2561
void helper_vnmsubfp (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2562 2562
{
2563 2563
    int i;
2564 2564
    for (i = 0; i < ARRAY_SIZE(r->f); i++) {
......
2577 2577
    }
2578 2578
}
2579 2579

  
2580
void helper_vperm (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2580
void helper_vperm (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2581 2581
{
2582
    ppc_avr_t result;
2582
    union ppc_avr result;
2583 2583
    int i;
2584 2584
    VECTOR_FOR_INORDER_I (i, u8) {
2585 2585
        int s = c->u8[i] & 0x1f;
......
2602 2602
#else
2603 2603
#define PKBIG 0
2604 2604
#endif
2605
void helper_vpkpx (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2605
void helper_vpkpx (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2606 2606
{
2607 2607
    int i, j;
2608
    ppc_avr_t result;
2608
    union ppc_avr result;
2609 2609
#if defined(HOST_WORDS_BIGENDIAN)
2610
    const ppc_avr_t *x[2] = { a, b };
2610
    const union ppc_avr *x[2] = { a, b };
2611 2611
#else
2612
    const ppc_avr_t *x[2] = { b, a };
2612
    const union ppc_avr *x[2] = { b, a };
2613 2613
#endif
2614 2614

  
2615 2615
    VECTOR_FOR_INORDER_I (i, u64) {
......
2624 2624
}
2625 2625

  
2626 2626
#define VPK(suffix, from, to, cvt, dosat)       \
2627
    void helper_vpk##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)  \
2627
    void helper_vpk##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)  \
2628 2628
    {                                                                   \
2629 2629
        int i;                                                          \
2630 2630
        int sat = 0;                                                    \
2631
        ppc_avr_t result;                                               \
2632
        ppc_avr_t *a0 = PKBIG ? a : b;                                  \
2633
        ppc_avr_t *a1 = PKBIG ? b : a;                                  \
2631
        union ppc_avr result;                                               \
2632
        union ppc_avr *a0 = PKBIG ? a : b;                                  \
2633
        union ppc_avr *a1 = PKBIG ? b : a;                                  \
2634 2634
        VECTOR_FOR_INORDER_I (i, from) {                                \
2635 2635
            result.to[i] = cvt(a0->from[i], &sat);                      \
2636 2636
            result.to[i+ARRAY_SIZE(r->from)] = cvt(a1->from[i], &sat);  \
......
2653 2653
#undef VPK
2654 2654
#undef PKBIG
2655 2655

  
2656
void helper_vrefp (ppc_avr_t *r, ppc_avr_t *b)
2656
void helper_vrefp (union ppc_avr *r, union ppc_avr *b)
2657 2657
{
2658 2658
    int i;
2659 2659
    for (i = 0; i < ARRAY_SIZE(r->f); i++) {
......
2664 2664
}
2665 2665

  
2666 2666
#define VRFI(suffix, rounding)                                          \
2667
    void helper_vrfi##suffix (ppc_avr_t *r, ppc_avr_t *b)               \
2667
    void helper_vrfi##suffix (union ppc_avr *r, union ppc_avr *b)               \
2668 2668
    {                                                                   \
2669 2669
        int i;                                                          \
2670 2670
        float_status s = env->vec_status;                               \
......
2682 2682
#undef VRFI
2683 2683

  
2684 2684
#define VROTATE(suffix, element)                                        \
2685
    void helper_vrl##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)  \
2685
    void helper_vrl##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)  \
2686 2686
    {                                                                   \
2687 2687
        int i;                                                          \
2688 2688
        for (i = 0; i < ARRAY_SIZE(r->element); i++) {                  \
......
2696 2696
VROTATE(w, u32)
2697 2697
#undef VROTATE
2698 2698

  
2699
void helper_vrsqrtefp (ppc_avr_t *r, ppc_avr_t *b)
2699
void helper_vrsqrtefp (union ppc_avr *r, union ppc_avr *b)
2700 2700
{
2701 2701
    int i;
2702 2702
    for (i = 0; i < ARRAY_SIZE(r->f); i++) {
......
2707 2707
    }
2708 2708
}
2709 2709

  
2710
void helper_vsel (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, ppc_avr_t *c)
2710
void helper_vsel (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, union ppc_avr *c)
2711 2711
{
2712 2712
    r->u64[0] = (a->u64[0] & ~c->u64[0]) | (b->u64[0] & c->u64[0]);
2713 2713
    r->u64[1] = (a->u64[1] & ~c->u64[1]) | (b->u64[1] & c->u64[1]);
2714 2714
}
2715 2715

  
2716
void helper_vlogefp (ppc_avr_t *r, ppc_avr_t *b)
2716
void helper_vlogefp (union ppc_avr *r, union ppc_avr *b)
2717 2717
{
2718 2718
    int i;
2719 2719
    for (i = 0; i < ARRAY_SIZE(r->f); i++) {
......
2734 2734
 * shift counts are not identical.  We check to make sure that they are
2735 2735
 * to conform to what real hardware appears to do.  */
2736 2736
#define VSHIFT(suffix, leftp)                                           \
2737
    void helper_vs##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)   \
2737
    void helper_vs##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)   \
2738 2738
    {                                                                   \
2739 2739
        int shift = b->u8[LO_IDX*15] & 0x7;                             \
2740 2740
        int doit = 1;                                                   \
......
2763 2763
#undef RIGHT
2764 2764

  
2765 2765
#define VSL(suffix, element)                                            \
2766
    void helper_vsl##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)  \
2766
    void helper_vsl##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)  \
2767 2767
    {                                                                   \
2768 2768
        int i;                                                          \
2769 2769
        for (i = 0; i < ARRAY_SIZE(r->element); i++) {                  \
......
2777 2777
VSL(w, u32)
2778 2778
#undef VSL
2779 2779

  
2780
void helper_vsldoi (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t shift)
2780
void helper_vsldoi (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b, uint32_t shift)
2781 2781
{
2782 2782
    int sh = shift & 0xf;
2783 2783
    int i;
2784
    ppc_avr_t result;
2784
    union ppc_avr result;
2785 2785

  
2786 2786
#if defined(HOST_WORDS_BIGENDIAN)
2787 2787
    for (i = 0; i < ARRAY_SIZE(r->u8); i++) {
......
2805 2805
    *r = result;
2806 2806
}
2807 2807

  
2808
void helper_vslo (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2808
void helper_vslo (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2809 2809
{
2810 2810
  int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
2811 2811

  
......
2826 2826
#define SPLAT_ELEMENT(element) (ARRAY_SIZE(r->element)-1 - _SPLAT_MASKED(element))
2827 2827
#endif
2828 2828
#define VSPLT(suffix, element)                                          \
2829
    void helper_vsplt##suffix (ppc_avr_t *r, ppc_avr_t *b, uint32_t splat) \
2829
    void helper_vsplt##suffix (union ppc_avr *r, union ppc_avr *b, uint32_t splat) \
2830 2830
    {                                                                   \
2831 2831
        uint32_t s = b->element[SPLAT_ELEMENT(element)];                \
2832 2832
        int i;                                                          \
......
2842 2842
#undef _SPLAT_MASKED
2843 2843

  
2844 2844
#define VSPLTI(suffix, element, splat_type)                     \
2845
    void helper_vspltis##suffix (ppc_avr_t *r, uint32_t splat)  \
2845
    void helper_vspltis##suffix (union ppc_avr *r, uint32_t splat)  \
2846 2846
    {                                                           \
2847 2847
        splat_type x = (int8_t)(splat << 3) >> 3;               \
2848 2848
        int i;                                                  \
......
2856 2856
#undef VSPLTI
2857 2857

  
2858 2858
#define VSR(suffix, element)                                            \
2859
    void helper_vsr##suffix (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)  \
2859
    void helper_vsr##suffix (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)  \
2860 2860
    {                                                                   \
2861 2861
        int i;                                                          \
2862 2862
        for (i = 0; i < ARRAY_SIZE(r->element); i++) {                  \
......
2873 2873
VSR(w, u32)
2874 2874
#undef VSR
2875 2875

  
2876
void helper_vsro (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2876
void helper_vsro (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2877 2877
{
2878 2878
  int sh = (b->u8[LO_IDX*0xf] >> 3) & 0xf;
2879 2879

  
......
2886 2886
#endif
2887 2887
}
2888 2888

  
2889
void helper_vsubcuw (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2889
void helper_vsubcuw (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2890 2890
{
2891 2891
    int i;
2892 2892
    for (i = 0; i < ARRAY_SIZE(r->u32); i++) {
......
2894 2894
    }
2895 2895
}
2896 2896

  
2897
void helper_vsumsws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2897
void helper_vsumsws (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2898 2898
{
2899 2899
    int64_t t;
2900 2900
    int i, upper;
2901
    ppc_avr_t result;
2901
    union ppc_avr result;
2902 2902
    int sat = 0;
2903 2903

  
2904 2904
#if defined(HOST_WORDS_BIGENDIAN)
......
2919 2919
    }
2920 2920
}
2921 2921

  
2922
void helper_vsum2sws (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2922
void helper_vsum2sws (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2923 2923
{
2924 2924
    int i, j, upper;
2925
    ppc_avr_t result;
2925
    union ppc_avr result;
2926 2926
    int sat = 0;
2927 2927

  
2928 2928
#if defined(HOST_WORDS_BIGENDIAN)
......
2945 2945
    }
2946 2946
}
2947 2947

  
2948
void helper_vsum4sbs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2948
void helper_vsum4sbs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2949 2949
{
2950 2950
    int i, j;
2951 2951
    int sat = 0;
......
2963 2963
    }
2964 2964
}
2965 2965

  
2966
void helper_vsum4shs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2966
void helper_vsum4shs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2967 2967
{
2968 2968
    int sat = 0;
2969 2969
    int i;
......
2979 2979
    }
2980 2980
}
2981 2981

  
2982
void helper_vsum4ubs (ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b)
2982
void helper_vsum4ubs (union ppc_avr *r, union ppc_avr *a, union ppc_avr *b)
2983 2983
{
2984 2984
    int i, j;
2985 2985
    int sat = 0;
......
3005 3005
#define UPKLO 1
3006 3006
#endif
3007 3007
#define VUPKPX(suffix, hi)                                      \
3008
    void helper_vupk##suffix (ppc_avr_t *r, ppc_avr_t *b)       \
3008
    void helper_vupk##suffix (union ppc_avr *r, union ppc_avr *b)       \
3009 3009
    {                                                           \
3010 3010
        int i;                                                  \
3011
        ppc_avr_t result;                                       \
3011
        union ppc_avr result;                                       \
3012 3012
        for (i = 0; i < ARRAY_SIZE(r->u32); i++) {              \
3013 3013
            uint16_t e = b->u16[hi ? i : i+4];                  \
3014 3014
            uint8_t a = (e >> 15) ? 0xff : 0;                   \
......
3024 3024
#undef VUPKPX
3025 3025

  
3026 3026
#define VUPK(suffix, unpacked, packee, hi)                              \
3027
    void helper_vupk##suffix (ppc_avr_t *r, ppc_avr_t *b)               \
3027
    void helper_vupk##suffix (union ppc_avr *r, union ppc_avr *b)               \
3028 3028
    {                                                                   \
3029 3029
        int i;                                                          \
3030
        ppc_avr_t result;                                               \
3030
        union ppc_avr result;                                               \
3031 3031
        if (hi) {                                                       \
3032 3032
            for (i = 0; i < ARRAY_SIZE(r->unpacked); i++) {             \
3033 3033
                result.unpacked[i] = b->packee[i];                      \
......
3921 3921
/* Helpers for 4xx TLB management */
3922 3922
target_ulong helper_4xx_tlbre_lo (target_ulong entry)
3923 3923
{
3924
    ppcemb_tlb_t *tlb;
3924
    a_ppcemb_tlb *tlb;
3925 3925
    target_ulong ret;
3926 3926
    int size;
3927 3927

  
......
3940 3940

  
3941 3941
target_ulong helper_4xx_tlbre_hi (target_ulong entry)
3942 3942
{
3943
    ppcemb_tlb_t *tlb;
3943
    a_ppcemb_tlb *tlb;
3944 3944
    target_ulong ret;
3945 3945

  
3946 3946
    entry &= 0x3F;
......
3955 3955

  
3956 3956
void helper_4xx_tlbwe_hi (target_ulong entry, target_ulong val)
3957 3957
{
3958
    ppcemb_tlb_t *tlb;
3958
    a_ppcemb_tlb *tlb;
3959 3959
    target_ulong page, end;
3960 3960

  
3961 3961
    LOG_SWTLB("%s entry %d val " TARGET_FMT_lx "\n", __func__, (int)entry,
......
4010 4010

  
4011 4011
void helper_4xx_tlbwe_lo (target_ulong entry, target_ulong val)
4012 4012
{
4013
    ppcemb_tlb_t *tlb;
4013
    a_ppcemb_tlb *tlb;
4014 4014

  
4015 4015
    LOG_SWTLB("%s entry %i val " TARGET_FMT_lx "\n", __func__, (int)entry,
4016 4016
              val);
......
4039 4039
/* PowerPC 440 TLB management */
4040 4040
void helper_440_tlbwe (uint32_t word, target_ulong entry, target_ulong value)
4041 4041
{
4042
    ppcemb_tlb_t *tlb;
4042
    a_ppcemb_tlb *tlb;
4043 4043
    target_ulong EPN, RPN, size;
4044 4044
    int do_flush_tlbs;
4045 4045

  
......
4101 4101

  
4102 4102
target_ulong helper_440_tlbre (uint32_t word, target_ulong entry)
4103 4103
{
4104
    ppcemb_tlb_t *tlb;
4104
    a_ppcemb_tlb *tlb;
4105 4105
    target_ulong ret;
4106 4106
    int size;
4107 4107

  

Also available in: Unified diff