Revision 06c2f506 target-i386/helper.c

b/target-i386/helper.c
934 934
    env->eflags &= ~(TF_MASK | VM_MASK | RF_MASK | NT_MASK);
935 935
}
936 936

  
937
void helper_syscall(void)
937
void helper_syscall(int next_eip_addend)
938 938
{
939 939
    int selector;
940 940

  
......
943 943
    }
944 944
    selector = (env->star >> 32) & 0xffff;
945 945
    if (env->hflags & HF_LMA_MASK) {
946
        ECX = env->eip;
946
        ECX = env->eip + next_eip_addend;
947 947
        env->regs[11] = compute_eflags();
948 948

  
949 949
        cpu_x86_set_cpl(env, 0);
......
963 963
        else
964 964
            env->eip = env->cstar;
965 965
    } else {
966
        ECX = (uint32_t)env->eip;
966
        ECX = (uint32_t)(env->eip + next_eip_addend);
967 967
        
968 968
        cpu_x86_set_cpl(env, 0);
969 969
        cpu_x86_load_seg_cache(env, R_CS, selector & 0xfffc, 
......
1119 1119
                fprintf(logfile, " EAX=" TARGET_FMT_lx, EAX);
1120 1120
            }
1121 1121
            fprintf(logfile, "\n");
1122
            cpu_dump_state(env, logfile, fprintf, X86_DUMP_CCOP);
1123 1122
#if 0
1123
            cpu_dump_state(env, logfile, fprintf, X86_DUMP_CCOP);
1124 1124
            {
1125 1125
                int i;
1126 1126
                uint8_t *ptr;

Also available in: Unified diff