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