Revision 54ca9095 target-i386/helper2.c

b/target-i386/helper2.c
566 566
    env->cr[2] = addr;
567 567
    env->error_code = (is_write << PG_ERROR_W_BIT);
568 568
    env->error_code |= PG_ERROR_U_MASK;
569
    env->exception_index = EXCP0E_PAGE;
569 570
    return 1;
570 571
}
571 572

  
......
620 621
            /* test virtual address sign extension */
621 622
            sext = (int64_t)addr >> 47;
622 623
            if (sext != 0 && sext != -1) {
623
                error_code = 0;
624
                goto do_fault;
624
                env->error_code = 0;
625
                env->exception_index = EXCP0D_GPF;
626
                return 1;
625 627
            }
626 628
            
627 629
            pml4e_addr = ((env->cr[3] & ~0xfff) + (((addr >> 39) & 0x1ff) << 3)) & 
......
862 864
        (env->cr[4] & CR4_PAE_MASK))
863 865
        error_code |= PG_ERROR_I_D_MASK;
864 866
    env->error_code = error_code;
867
    env->exception_index = EXCP0E_PAGE;
865 868
    return 1;
866 869
}
867 870

  

Also available in: Unified diff