[fpc-devel] More on freepascal armhf porting attempt, some progress made but now stuck.

peter green plugwash at p10link.net
Sun Mar 11 12:01:27 CET 2012

I've made some progress on armhf porting, i've added the nessacery 
frameworks (vfpv3_d16 FPU target, EABIVFP ABI target, FPC_ARMHF define) 
and made a start on actually implementing the new ABI. I decided to 
start with function results.

However i've now reached a problem which has me stumped.

When I try to build my patched compiler (using make compiler_cycle 
'OPT=-dFPC_ARMHF' ) the starting compiler builds the RTL and compiler 
successfully (as would be expected) but when ppc1 tries to build the RTL 
things fail with assembler errors. The errors below are a sample of the 
types of error seen (there are a HUGE number of each)

/fpc/rtl/units/arm-linux/system.s:19075: Error: selected processor does 
not support ARM mode `mvfd d0,f0'
/fpc/rtl/units/arm-linux/system.s:19077: Error: selected processor does 
not support ARM mode `ldfd f0,[r13]'
/fpc/rtl/units/arm-linux/system.s:41169: Error: selected processor does 
not support ARM mode `ldfs f0,[r13]'

It appears to me (i'm not  an expert on arm assembler and I can't seem 
to find any documentation on FPA) that FPC is generating FPA 
instructions even though the FPU is set to a VFP type. What i'm really 
struggling to work out is why the heck that is happening. From telling 
freepascal to include source lines as comments in the assembler it 
doesn't look like inline assembler is responsible.

Anyone have any suggestions on where things might be going wrong and how 
to debug this?

I've attatched a patch containing my efforts so far.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fpc.diff
Type: text/x-diff
Size: 29572 bytes
Desc: not available
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20120311/33b47e8b/attachment.diff>

More information about the fpc-devel mailing list