privileged instruction in 32-bit code
Andreas Mohr
andi at rhlx01.fht-esslingen.de
Fri Nov 11 03:46:32 CST 2005
Hi,
On Fri, Nov 11, 2005 at 10:36:24AM +0100, Marcus Meissner wrote:
> > (gdb) disassemble bar
> > Dump of assembler code for function bar:
> > 0x080495a0 <bar+0>: movaps %xmm0,(%ecx)
> > 0x080495a3 <bar+3>: shufps $0xa,%xmm3,%xmm2
> > 0x080495a7 <bar+7>: add $0x90,%eax
> > 0x080495ac <bar+12>: decl 0x4c(%esp)
> > 0x080495b0 <bar+16>: movaps %xmm1,0x10(%ecx)
> > 0x080495b4 <bar+20>: shufps $0x9d,%xmm3,%xmm2
> > 0x080495b8 <bar+24>: mov %edi,0x88(%esp)
> > 0x080495bf <bar+31>: mov 0x64(%esp),%edi
> > 0x080495c3 <bar+35>: movaps %xmm2,0x20(%ecx)
> > 0x080495c7 <bar+39>: jne 0x80491b6
> >
> > I'm now fairly sure it's failing on the first movaps command. Unless
> > someone can direct me differently, I'm going to start looking at why
> > that command is showing up as 'privileged'.
>
> Does your machine support SSE2 instructions? I guess this is the problem.
Thinking that stuff a bit further: I'd guess that an app usually knows when
to use SSE2 and when not to use it (since it'd most likely crash the same
way on Windows if it was wrong!).
IOW, do we have an issue with some SystemInfo API indicating that we *have*
an SSE2 CPU here when we actually have not, and thus the program chooses to
switch to the improper code path?
Andreas
--
No programming skills!? Why not help translate many Linux applications!
https://launchpad.ubuntu.com/rosetta
More information about the wine-devel
mailing list