[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

FPU emulation: Unimplemented instruction



Hi there!

Continuing the recent discussion of FPU emulation in the kernel, I
stumbled across my first problem with it yesterday. However, it's
not actually a reliability issue but simply particular instruction
not supported by the emulation code.

The error message about the unimplemented instruction came when I
tried to install the buildd package on my A1200 with 68030 with
no FPU, in particular it seems to be an issue triggered by the
Python interpreter. I ran "dpkg --configure -a" since the previous
"apt-get install buildd" attempt failed after the exception was
generated, I actually had to kill the login process to be able
to use my serial console again (the other virtual terminals
on the Amiga video still worked fine and the machine did not
crash).

Here's the output:

root@merlin:~# dpkg --configure -a
Setting up exim4-config (4.80-9) ...
Adding system-user for exim (v4)
Setting up libboost-regex1.49.0 (1.49.0-4) ...
Setting up libdevel-stacktrace-perl (1.3000-1) ...
Setting up dctrl-tools (2.23) ...
Setting up bzip2 (1.0.6-5) ...
Setting up libpython3-stdlib:m68k (3.3.2-17) ...
Setting up libtimedate-perl (1.2000-1) ...
Setting up libemail-date-format-perl (1.004-1) ...
Setting up libfilesys-df-perl (0.92-4+b2) ...
Setting up libboost-program-options1.49.0 (1.49.0-4) ...
Setting up libdpkg-perl (1.17.1) ...
Setting up libyaml-tiny-perl (1.56-1) ...
Setting up liblockdev1 (1.0.3-1.5+b1) ...
Setting up libboost-iostreams1.49.0 (1.49.0-4) ...
Setting up patch (2.7.1-3) ...
Setting up python3.3-minimal (3.3.2-7) ...
[173753.660000] You just hit an unimplemented fpu instruction (flogn
[173753.660000] )
[173753.670000] Please report this to ....

I guess this can be easily reproduced by running an emulated m68k
machine without a "hardware" FPU (i.e. emulated by the emulated)
and using the FPU emulation code in the kernel, then trying to
install the python3.3-minimal package.

According to [1], flogn calculated the natural logarithm:

----------------------------------------------------------------------
 FLOGN                                                    528(17/507)
----------------------------------------------------------------------
 FLOGN.<fmt>    <ea>,FPn
 FLOGN.X        FPm,FPn
 FLOGN.X        FPn

Calculates the natural logarithm of the  source operand and stores the
result in the destination FPU register.

Cheers,

Adrian

> [1] http://mikro.naprvyraz.sk/docs/Coding/Atari/Maggie/FPU.TXT

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@debian.org
`. `'   Freie Universitaet Berlin - glaubitz@physik.fu-berlin.de
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913


Reply to: