Sorry to everyone for replying so far down the thread to the points mentioned earlier.<br><br>The FPC ARM support is stated as ' does not specify an ARM architecture' ... fine ..but there is a major issue there that needs clarification and better documentation.  <br>
<br>Is it really safe to have no way to target the entire compiler (FP code and assemble op codes that are passed thru) output to a specific ARM processor? Since the back end GNU as supports several variants of ARM, why is FP limited to an unspecified ARM processor?  <br>
<br>If FP compiler is outputting ARM assembler code for the entire program, and the assembler ignores invalid ARM opcodes, without specifying what ARM sub-architecture (ARM7, ARM5, ARM9), then what defines which ARM op codes are 'invalid' ?<br>
<br>I realize that at the time someone may have thought it really didn't made any difference, but as was mentioned in this post, several ARM processors do not have multipliers. So what happens when  one writes a FP function that multiplies two numbers? How does the complier choose to output ARM ADD opcodes instead of MULTIPLY opcodes? Does the FP compiler just use ADD opcodes all the time?<br>
<br>What I keep asking here and not getting a precise answer about is what specific ARM opcodes does the FP support What is its default ARM architecture is the opcode spec based on? To be clear ARM5 and ARM7 aren't variants, they are RISC family processors to be sure, but they are 'different.'<br>
<br>Perhaps the person who coded that support into FP can write back and say which ARM op codes look-up table it uses generating the FP compiled code. Is it ARM7? Is it ARM9?, Is it ARM4/5? <br><br>Thanks<br><br>Prince <br>
<br><br><div class="gmail_quote">On Mon, Dec 8, 2008 at 12:27 PM, Marc Santhoff <span dir="ltr"><<a href="mailto:M.Santhoff@t-online.de">M.Santhoff@t-online.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Am Montag, den 08.12.2008, 19:22 +0100 schrieb Jonas Maebe:<br>
<div class="Ih2E3d">> On 08 Dec 2008, at 18:26, Marc Santhoff wrote:<br>
><br>
> > There are some ARM7 (and maybe ARM9, not sure) core variants having no<br>
> > hardware multiplication unit. IIRC the M in TDMI stands for "hardware<br>
> > multiplier unit". Experiences with gcc showed me that the 32x32=64<br>
> > mult<br>
> > commands are not used in that case.<br>
><br>
> That's a compiler and not an assembler decision.<br>
<br>
</div>Yes, you're right, sorry. Code generator issue, that is.<br>
<font color="#888888"><br>
Marc<br>
</font><div><div></div><div class="Wj3C7c"><br>
<br>
_______________________________________________<br>
fpc-pascal maillist  -  <a href="mailto:fpc-pascal@lists.freepascal.org">fpc-pascal@lists.freepascal.org</a><br>
<a href="http://lists.freepascal.org/mailman/listinfo/fpc-pascal" target="_blank">http://lists.freepascal.org/mailman/listinfo/fpc-pascal</a><br>
</div></div></blockquote></div><br>