Actions

icon Post
text/html Subscribe
text/html Unsubscribe

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

Re: [arm-gnu] urgent toolchain


  • To: Gilles Chanteperdrix <gilles.chanteperdrix@xxxxxxxxxxx>
  • Subject: Re: [arm-gnu] urgent toolchain
  • From: Carlos O'Donell <carlos@xxxxxxxxxxxxxxxx>
  • Date: Mon, 18 Aug 2008 10:39:52 -0400

Gilles Chanteperdrix wrote:
Using "-mfpu=vfp -mfloat-abi=softfp" instead of "-msoft-float" will enable VFP hardware floating-point code-generation for your program. The run-time libraries will still use software floating-point. Routines compiled for VFP are compatible with software floating-point.

It looks like run-time libraries do contain some FP code. Here is an
excerpt of disassembling
arm-2007q3/arm-none-linux-gnueabi/libc/lib/libc-2.5.so:

The run-time may contain VFP instructions as long as they are never executed on hardware that does not have a VFP.

   29b10:	0a000002 	beq	29b20 <Lno_vfp>
   29b14:	ecac8b11 	fstmiax	ip!, {d8-d15}
   29b18:	eef12a10 	fmrx	r2, fpscr
   29b1c:	e48c2004 	str	r2, [ip], #4

The GNU C Library contains run-time CPU feature detection. The 'beq' instruction will check the variable "no_vfp" (No VFP available) and skip the VFP instructions on non-VFP hardware.

Are you having a problem with this?

Cheers,
Carlos.
--
Carlos O'Donell
CodeSourcery
carlos@xxxxxxxxxxxxxxxx
(650) 331-3385 x716