Help - Search - Members - Calendar
Full Version: What exactly is "Illegal Instruction"?
OESF Forums > Distros, Development, and Model Specific Forums > Distro Support and Discussion > pdaXrom
samxiao
weird
i install perl, vdesk, mathomatic

all gives me this error .. can't run it

and stardict, gnumeric crashes at starting

any idea?
pmf
QUOTE(samxiao @ Nov 17 2004, 01:11 PM)
weird
i install perl, vdesk, mathomatic

all gives me this error .. can't run it

and stardict, gnumeric crashes at starting

any idea?

These applications need to be recompiled with the new toolchain so they don't throw this exception when they reach code segments that need floating-point support.
Laze
gnumeric is just stupid gnome :-) Its fixed in next version - but Gnumeric won't be included as default anymore - its way to "bloated" with gnome stuff..
blakeyez
QUOTE
What exactly is "Illegal Instruction"?


Just to clarify for those interested - the 'illegal instruction' error means that the processor does not support one of the assembly instructions compiled into the app you're trying to run. In this specific case, chances are that it's a floating-point instruction. The ARM processors in our Zaurii don't have floating-point units (FPUs). However, in previous ROM releases, the relevant instructions were caught by the kernel and emulated when the illegal instruction interrupt was generated. In the latest pdaXrom, though, apps are compiled using a technique called 'soft-float' which eliminates the need for the kernel to trap these interrupts (which is SLOOOOW).

So, as someone already pointed out, the short version of that ramble is that these apps need to be recompiled with the new soft-float toolchain smile.gif

Dave
samxiao
QUOTE(blakeyez @ Nov 17 2004, 11:04 PM)
QUOTE
What exactly is "Illegal Instruction"?


Just to clarify for those interested - the 'illegal instruction' error means that the processor does not support one of the assembly instructions compiled into the app you're trying to run. In this specific case, chances are that it's a floating-point instruction. The ARM processors in our Zaurii don't have floating-point units (FPUs). However, in previous ROM releases, the relevant instructions were caught by the kernel and emulated when the illegal instruction interrupt was generated. In the latest pdaXrom, though, apps are compiled using a technique called 'soft-float' which eliminates the need for the kernel to trap these interrupts (which is SLOOOOW).

So, as someone already pointed out, the short version of that ramble is that these apps need to be recompiled with the new soft-float toolchain smile.gif

Dave

i'm currently studying Motorola 68000 assembly in my university


i remember float-point has to deal with ALU

so this means XScale don't have ALU?


we can't do math on it?
that doesn't make any sense to me


thanks for anyone explain clearly to me
blakeyez
ALU = Arithmetic/Logic Unit, right? (it's been awhile since my comp. architecture class)

Anyway, yes the zaurus processors are able to do arithmetic, but only INTEGER. They don't support the floating-point (non-integer) instructions natively. Some ARM processors do, that's why the instructions exist, but not this specific processor. I guess you could compare it to the old 386 math co-processor, if you remember those. Without the co-processor, trig functions etc were VERY slow because they weren't supported in hardware. Similar situation here iwth the lack of a FPU in the zaurus - all floating point ops must be emulated in software, using integer arithmetic in the hardware as the 'backend'.

Dave
samxiao
QUOTE(blakeyez @ Nov 17 2004, 11:40 PM)
ALU = Arithmetic/Logic Unit, right? (it's been awhile since my comp. architecture class)

Anyway, yes the zaurus processors are able to do arithmetic, but only INTEGER. They don't support the floating-point (non-integer) instructions natively. Some ARM processors do, that's why the instructions exist, but not this specific processor. I guess you could compare it to the old 386 math co-processor, if you remember those. Without the co-processor, trig functions etc were VERY slow because they weren't supported in hardware. Similar situation here iwth the lack of a FPU in the zaurus - all floating point ops must be emulated in software, using integer arithmetic in the hardware as the 'backend'.

Dave

like real number? double ?

like 0.05 + 0.999 ?
something like that right?


then i think Motorola 68000 also no

but how those modern processor do float-point calculation?

and how software emulate the float-point if hardware is not available?


sorry.. i'm a curious kid tongue.gif
lardman
QUOTE
but how those modern processor do float-point calculation?


In software.

QUOTE
and how software emulate the float-point if hardware is not available?


Google ;-)

Here's a page with a fair bit of info on the IEEE fp standard: http://cch.loria.fr/documentation/IEEE754/

It looks fairly straight forward to implement it in software; it's more difficult to make it very fast :-)

Also try a seach for soft-float (ie: http://www.jhauser.us/arithmetic/SoftFloat.html)


Si
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2014 Invision Power Services, Inc.