On Thursday 19 April 2007 22:30, Jan Kiszka wrote: > + registers[_GP_REGS+2] = env->segs[R_CS].selector; > + registers[_GP_REGS+3] = env->segs[R_SS].selector; > + registers[_GP_REGS+4] = env->segs[R_DS].selector; > + registers[_GP_REGS+5] = env->segs[R_ES].selector; > + registers[_GP_REGS+6] = env->segs[R_FS].selector; > + registers[_GP_REGS+7] = env->segs[R_GS].selector; > > + registers[_FPCTL_OFS] = env->fpuc; > + registers[_FPCTL_OFS+1] = fpus; > + registers[_FPCTL_OFS+2] = 0; /* XXX: convert tags */ > + registers[_FPCTL_OFS+3] = 0; /* fiseg */ > + registers[_FPCTL_OFS+4] = 0; /* fioff */ > + registers[_FPCTL_OFS+5] = 0; /* foseg */ > + registers[_FPCTL_OFS+6] = 0; /* fooff */ > + registers[_FPCTL_OFS+7] = 0; /* fop */ > + for (i = _FPCTL_OFS; i < _FPCTL_OFS+8; i++) > tswapls(®isters[i]);
These are all wrong on x86-64. Paul