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

freepascal support for debian armhf

First a bit of background, on arm ebi gcc has three options for "-mfloat-abi"

soft: do all floating point in software, ignore the fpu type selection
softfp: use the selected fpu type but use the same calling conventions as "soft" (that is parameters are passed using integer registers). This gives binary compatibility with soft float code but in the case of vfp it comes at a substantial performance cost as all parameters must be moved between fpu and integer registers which causes pipeline stalls hard: use the selected fpu type and use fpu type specific calling conventions.

Debian is in the process of introducing a new port called "armhf" which uses -mfloat-abi=hard with VFP (which seems to be become the dominant FPU now).

Afaict from quick tests freepascal does support vfp but based on my tests always uses the "soft" calling convention. So it won't link correctly with C code that uses floating point parameters on debian armhf.

1: can someone who knows the fpc arm code confirm the above statement?
2: does anyone have any idea what it would take to add support for the eabi vfp calling convention and for building fpc binaries that use it by default (just as armel FPC binaries use eabi by default) 3: does anyone have any plans to actually do so (I might attempt it but i'm not a compiler developer nor am I an arm assembly programmer, just someone who uses both freepascal and debian on an arm system that could benefit from armhf)

Reply to: