Revision 6ebbf390 target-i386/helper2.c

b/target-i386/helper2.c
571 571
#if defined(CONFIG_USER_ONLY)
572 572

  
573 573
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
574
                             int is_write, int is_user, int is_softmmu)
574
                             int is_write, int mmu_idx, int is_softmmu)
575 575
{
576 576
    /* user mode only emulation */
577 577
    is_write &= 1;
......
598 598
   2  = soft MMU activation required for this block
599 599
*/
600 600
int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr,
601
                             int is_write1, int is_user, int is_softmmu)
601
                             int is_write1, int mmu_idx, int is_softmmu)
602 602
{
603 603
    uint64_t ptep, pte;
604 604
    uint32_t pdpe_addr, pde_addr, pte_addr;
605
    int error_code, is_dirty, prot, page_size, ret, is_write;
605
    int error_code, is_dirty, prot, page_size, ret, is_write, is_user;
606 606
    unsigned long paddr, page_offset;
607 607
    target_ulong vaddr, virt_addr;
608 608

  
609
    is_user = mmu_idx == MMU_USER_IDX;
609 610
#if defined(DEBUG_MMU)
610 611
    printf("MMU fault: addr=" TARGET_FMT_lx " w=%d u=%d eip=" TARGET_FMT_lx "\n",
611 612
           addr, is_write1, is_user, env->eip);
......
862 863
    paddr = (pte & TARGET_PAGE_MASK) + page_offset;
863 864
    vaddr = virt_addr + page_offset;
864 865

  
865
    ret = tlb_set_page_exec(env, vaddr, paddr, prot, is_user, is_softmmu);
866
    ret = tlb_set_page_exec(env, vaddr, paddr, prot, mmu_idx, is_softmmu);
866 867
    return ret;
867 868
 do_fault_protect:
868 869
    error_code = PG_ERROR_P_MASK;

Also available in: Unified diff