[Soekris] SIGILL on net5501

Michael Smith msmith at cbnco.com
Mon Nov 5 15:06:03 UTC 2007


On Mon, 29 Oct 2007, Brandon Black wrote:

> On 10/29/07, Michael Smith <msmith at cbnco.com> wrote:

> > Programs like awk and rz are dying with "Illegal instruction" all over the
> > place. I ran them in a debugger and it looks like they are dying on
> > opcode DFC0: "fild st(0), ax": load 16-bit integer into floating point
> > stack.

> That does seem really odd.  FILD is an ancient 8087 instruction.
> Virtually any x86-compat CPU with an FPU should support it I would
> think.

I think it's just a compiler bug. I'm a little out of date in my build 
environment. SuSE 9.3, which comes with gcc 3.3.5 20050117 (prerelease). I 
think they may have patched it with something that mistakenly generates 
this instruction. It's actually illegal - fild only takes memory 
arguments, not registers.

It turns out that almost every other processor supports the same opcode in 
a semi-undocumented way; it should decode to FFREEP, but the debugger I 
was using didn't know about that. So I've just got to switch to a newer 
distro & compiler.

http://www.pagetable.com/?p=16
http://groups.google.com/group/comp.lang.asm.x86/browse_thread/thread/490ca97c50bed782/bfe23ad44d75144d

Mike


More information about the Soekris-tech mailing list