Hello!

I am currently evaluation the feasiblitiy to add (real) 64-doubles to the 
capabilities of the avr-gcc. The current state is, that the avr-gcc supports 
floats and alias them to doubles. However, a prospective project demands the 
resolution (accordung to their research), and therefore the company needing it 
might sponsor me to implement the support.

However, beside some trivial patches, I am not familiar with gcc hacking. Therefore it is hard for me to estimated how long this will take, but the numbers are cruicial to deside if I get the assignement. As far as I dugg into the gcc source, there is a soft-float library which is used widely among non-FPU targets. However, I am currently missing the link, how the target has to be configured to be aware of that. As I am currently stuck with that, I'd appreciate any hint, link, documents etc which might point me into the right direction.

Add this code to avr/t-avr:

--cut here--
LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c

dp-bit.c: $(srcdir)/config/fp-bit.c
   cat $(srcdir)/config/fp-bit.c > dp-bit.c

fp-bit.c: $(srcdir)/config/fp-bit.c
   echo '#define FLOAT' > fp-bit.c
   cat $(srcdir)/config/fp-bit.c >> fp-bit.c
--cut here--

then update avr/avr.h with

#define FLOAT_TYPE_SIZE 32
#define DOUBLE_TYPE_SIZE 64
#define LONG_DOUBLE_TYPE_SIZE 64

If everything works as expected, then you have just added soft-fp support to avr.

Uros.

Reply via email to