Revision 0a032cbe target-ppc/op_helper.c

b/target-ppc/op_helper.c
2256 2256
/* TLB invalidation helpers */
2257 2257
void do_tlbia (void)
2258 2258
{
2259
    if (unlikely(PPC_MMU(env) == PPC_FLAGS_MMU_SOFT_6xx)) {
2260
        ppc6xx_tlb_invalidate_all(env);
2261
    } else if (unlikely(PPC_MMU(env) == PPC_FLAGS_MMU_SOFT_4xx)) {
2262
        /* XXX: TODO */
2263
#if 0
2264
        ppcbooke_tlb_invalidate_all(env);
2265
#endif
2266
    } else {
2267
        tlb_flush(env, 1);
2268
    }
2259
    ppc_tlb_invalidate_all(env);
2269 2260
}
2270 2261

  
2271 2262
void do_tlbie (void)
......
2473 2464
}
2474 2465

  
2475 2466
/* Helpers for 4xx TLB management */
2476
void do_4xx_tlbia (void)
2477
{
2478
    ppcemb_tlb_t *tlb;
2479
    int i;
2480

  
2481
    for (i = 0; i < 64; i++) {
2482
        tlb = &env->tlb[i].tlbe;
2483
        if (tlb->prot & PAGE_VALID) {
2484
#if 0
2485
            end = tlb->EPN + tlb->size;
2486
            for (page = tlb->EPN; page < end; page += TARGET_PAGE_SIZE)
2487
                tlb_flush_page(env, page);
2488
#endif
2489
            tlb->prot &= ~PAGE_VALID;
2490
        }
2491
    }
2492
    tlb_flush(env, 1);
2493
}
2494

  
2495 2467
void do_4xx_tlbre_lo (void)
2496 2468
{
2497 2469
    ppcemb_tlb_t *tlb;

Also available in: Unified diff