[fpc-pascal] Free Pascal Support for ARM Architecture

Marc Santhoff M.Santhoff at t-online.de
Mon Dec 8 18:26:47 CET 2008


Am Montag, den 08.12.2008, 10:27 +0100 schrieb Jonas Maebe:
> On 08 Dec 2008, at 00:33, Prince Riley wrote:

> > Reading the GNU as manual, the arch parameter value needs to be set  
> > to one
> > of several values. It can also specify generic ARM architecture, but  
> > that
> > choice in addition to being imprecise, could result in code that  
> > either is
> > not optimized for the target ARM processor, or fail to execute as  
> > expected.
> 
> It will at most cause the assembler to reject opcodes for particular  
> ARM sub-architectures that do not exist in the default sub- 
> architecture (which without a doubt is a generic and common ARM  
> variant). Crashes only occur if you tell the assembler to accept e.g.  
> ARMv6 opcodes, and you genere such opcodes, and then you try to run  
> the program on an ARMv4 cpu. I'm not aware of any optimisations that  
> the assembler can perform for different ARM architectures (except for  
> some small THUMB things, but FPC doesn't generate THUMB code).

One possible difference coming to my mind (although only a speed issue,
not influencing nonetheless working code):

There are some ARM7 (and maybe ARM9, not sure) core variants having no
hardware multiplication unit. IIRC the M in TDMI stands for "hardware
multiplier unit". Experiences with gcc showed me that the 32x32=64 mult
commands are not used in that case.

It would be nice to have the chance of setting some extra command line
arguments to the call to the assembler - I think that is what Riley is
is asking for.

>From a quick look over the man pages of as and gcc there seems to be no
environment variable or such for switching the assembler output code
from the outside.

Marc





More information about the fpc-pascal mailing list