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(&registers[i]);

These are all wrong on x86-64.

Paul


Reply via email to