[fpc-devel] vfp exception issues with freepascal

peter green plugwash at p10link.net
Sat Jul 28 17:42:25 CEST 2012


I am involved in a project called raspbian to produce a hard-float 
derivative of debian for the raspberry pi. Within this port we had 
problems with floating point exceptions while running the compiler. 
These problems were tracked down by masta (a freepascal upstream 
developer) to reversed logic in a routine for controlling floating point 
exception settings (attempting to disable an exception enabled it and 
vice-versa)

Howevr this then left the question of "why didn't I see this problem 
when preparing the freepascal packages for debian armhf?". The 
conclusion i've come to is that on the armv7 systems i've tested (a 
beagleboard XM running 2.6.39.2-x2 and an IMX53 quickstart board running 
) the method freepascal uses for enabling vfp exceptions simply doesn't 
work.

I've written a small test program in C and inline assembler to 
demonstrate this. It tries to enable a number of floating point 
exceptions using a price of inline assembly I copied from the freepascal 
run time library and then does a division of the command line arguments. 
When I test this on a Pi running raspbian I get a floating point 
exception as expected.

root at raspbian:~# ./a.out 1 0
Floating point exception
root at raspbian:~#

but when I try it on my beagleboard XM or IMX53 board I don't get any 
exception.

root at plugwash:/home/plugwash# ./a.out 1 0
inf
root at plugwash:/home/plugwash#

Any vfp experts able to help get to the bottom of what is going on here?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: testfpexceptions.c
Type: text/x-csrc
Size: 692 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120728/8667eb80/attachment.c>


More information about the fpc-devel mailing list