Bug#768360: iceweasel: crashes with Illegal instruction at startup
Mike Hommey
mh at glandium.org
Tue Nov 11 22:43:29 UTC 2014
On Tue, Nov 11, 2014 at 06:54:26PM +0100, Ondrej Zary wrote:
> On Tuesday 11 November 2014 00:17:59 Mike Hommey wrote:
> > On Tue, Nov 11, 2014 at 12:06:30AM +0100, Ondrej Zary wrote:
> > > (gdb) print JSC::MacroAssemblerX86Common::s_sseCheckState
> > > $1 = JSC::MacroAssemblerX86Common::HasSSE3
> >
> > Aha! At least now it's clear what part is doing wrong.
> >
> > Can you compile and run the following code, and give its output?
> >
> > #include <stdio.h>
> >
> > int main() {
> > int flags_edx = 0;
> > int flags_ecx = 0;
> > asm (
> > "movl $0x1, %%eax;"
> > "pushl %%ebx;"
> > "cpuid;"
> > "popl %%ebx;"
> >
> > : "=c" (flags_ecx), "=d" (flags_edx)
> > :
> > : "%eax"
> >
> > );
> > printf("%04x %04x\n", flags_ecx, flags_edx);
> > return 0;
> > }
>
> $ cc -Wall test.c -o test
> $ ./test
> 4db6ebee 80a135
> $ ./test
> 24953363 80a135
> $ ./test
> 235945c1 80a135
> $ ./test
> e6ad9217 80a135
> $ ./test
> c74a535e 80a135
> $ ./test
> 8671f3 80a135
>
> This was the same bug, only in kernel:
> https://bugzilla.kernel.org/show_bug.cgi?id=3767
What are the values when you clobber ecx first? If edx doesn't change,
then there is more to do than clobbering ecx in the iceweasel case.
Mike
More information about the pkg-mozilla-maintainers
mailing list