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