[fpc-pascal] Free Pascal Support for ARM Architecture

Prince Riley wmarketing3 at gmail.com
Sun Dec 7 00:30:35 CET 2008


Hello

Thanks for that reply ... and yes I meant IA32



A few additional points if I may ..

When you say the FP supports the ARM architecture my specific question is
how does FP 'inform' the GNU assembler back end of which ARM architecture is
intended ...

The following is just a snippet from the GNU Assembler manual showing the
ARM processore option codes ...

-mcpu=processor[+extension...]
This option species the target processor. The assembler will issue an error
message if an
attempt is made to assemble an instruction which will not execute on the
target processor. The
following processor names are recognized: arm1, arm2, arm250, arm3, arm6,
arm60, arm600,
arm610, arm620, arm7, arm7m, arm7d, arm7dm, arm7di, arm7dmi, arm70, arm700,
arm700i, arm710, arm710t, arm720, arm720t, arm740t, arm710c, arm7100,
arm7500,
arm7500fe, arm7t, arm7tdmi, arm8, arm810, strongarm, strongarm1,
strongarm110,
strongarm1100, strongarm1110, arm9, arm920, arm920t, arm922t, arm940t,
arm9tdmi, arm9e, arm946e-r0, arm946e, arm966e-r0, arm966e, arm10t, arm10e,
arm1020, arm1020t, arm1020e, ep9312 (ARM920 with Cirrus Maverick
coprocessor),
i80200 (Intel XScale processor) iwmmxt (Intel(r) XScale processor with
Wireless MMX(tm)
technology coprocessor) and xscale. The special name all may be used to
allow the
assembler to accept instructions valid for any ARM processor.
In addition to the basic instruction set, the assembler can be told to
accept various extension
mnemonics that extend the processor using the co-processor instruction
space. For example,
-mcpu=arm920+maverick is equivalent to specifying -mcpu=ep9312. The
following extensions
are currently supported: +maverick +iwmmxt and +xscale.

I need to be clear on how FP specifies one of these option and how the
'assemble' directive within the FP syntax is implemented to use ARM register
and assembler sematics/syntax which the GNU Assembler assumes will be set by
the language 'front end'

Thanks

Prince

On Sat, Dec 6, 2008 at 4:55 PM, Jonas Maebe <jonas.maebe at elis.ugent.be>wrote:

>
> On 06 Dec 2008, at 23:32, Prince Riley wrote:
>
>  After reading the manuals I see that FP uses the GNU tools as back-ends
>> and
>> they support ARM ... but it that the extent of the support here.
>> For example, the ASM directive in FP targets the IA33 processor
>> semantics/syntax ...not ARM ..
>>
>
> I guess you mean IA32 rather than IA33. Anyway, FPC is always compiled with
> support for creating code for one single cpu architecture. The currently
> supported ones are i386 (=IA32), x86_64, powerpc (32 bit), powerpc64, sparc
> and ARM. Apart from generating code for one such architecture, every such
> compiler can also only parse assembler code written for that same
> architecture (since there is no way the compiler can translate assembler
> code written for one architecture into assembler code for another
> architecture).
>
>  I am not opposed to working up the missing pieces if that's necessary, but
>> before beginning that work, I wanted to check with the group and see
>> if anyone had already started down this road and if so how far along have
>> you gotten ?
>>
>
> ARM support works fairly well (except for EABI support, which still has
> some bugs).
>
>
> Jonas
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20081206/48f6037c/attachment.html>


More information about the fpc-pascal mailing list