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


_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to