[fpc-pascal] inline asm in fpc progran

Jeppe Johansen jepjoh2 at kom.aau.dk
Thu Aug 26 09:42:27 CEST 2010


  Fpc should be compiled with -dFPC-ARMEL in OPT, not CROSSOPT

Den 26-08-2010 07:10, Nataraj S Narayan skrev:
> Hi Jonas
>
>
> I tried a very elementary code  on arm-linux-uclibc, compiled using  
> "ppcrossarm -TLinux -darm ttt3.pas -CfSOFT  -XParm-linux- -XR/cdrom"
>
> program kuraj;
> begin
> writeln('Hooua');
> end.
>
>
> The asm listing using -al is here: - http://pastebin.com/CG9i0x3z
>
> It dont work in the normal EABI kernel but works on OABI compat one.
>
> I got ppcrossarm using  :-
>  gmake distclean crosszipinstall CPU_TARGET=arm OS_TARGET=linux 
> CROSSOPT='-CfSOFT -darm -dFPC-ARMEL -gl' 
> FPC=/usr/local/lib/fpc/2.5.1/ppc386
>
>
> warm regards
>
> Nataraj
>
> On Fri, Aug 20, 2010 at 6:51 PM, Jonas Maebe 
> <jonas.maebe at elis.ugent.be <mailto:jonas.maebe at elis.ugent.be>> wrote:
>
>
>     On 20 Aug 2010, at 15:00, Nataraj S Narayan wrote:
>
>         On Fri, Aug 20, 2010 at 2:38 PM, Jonas Maebe
>         <jonas.maebe at elis.ugent.be
>         <mailto:jonas.maebe at elis.ugent.be>>wrote:
>
>             You probably need the "nostackframe" directive, or remove
>             the "mov pc,lr"
>
>             at the end.
>
>             Compile the code with -al, compile equivalent Pascal code
>             with -al and look
>             at the differences in the generated ".s" files.
>
>
>         I changed the kernel to old 2.6.30 and the code works on the
>         Arm target!
>
>         That kernel  has been compiled with CONFIG_OABI_COMPAT=y.
>         Newer kernels dont
>         show this option, only EABI.
>
>         Also my ppcrossarm is :-
>
>         Free Pascal Compiler version 2.5.1 [2010/07/28] for arm
>         Copyright (c) 1993-2009 by Florian Klaempfl
>
>         What do you make of it?
>
>
>     That you did not reply to the suggestions I made in my previous
>     message. Please say what you did and what happened, even if it
>     didn't work. It's not nice to spend time on trying to help
>     someone, if that person then simply ignores what you write and
>     replies with something completely different.
>
>     The EABI requires that the stack is always aligned to 8 bytes on
>     entry/exit of subroutines, and you probably mess up the alignment
>     with the manually inserted return instruction.
>
>     Also, make sure that you compiled an EABI cross-compiler (ensure
>     that -dFPC_ARMEL is part of the OPT setting of the "make"
>     invocation used to compile FPC).
>
>
>
>     Jonas
>     _______________________________________________
>     fpc-pascal maillist  - fpc-pascal at lists.freepascal.org
>     <mailto:fpc-pascal at lists.freepascal.org>
>     http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>
>
>
> _______________________________________________
> 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/20100826/ae4a02b6/attachment.html>


More information about the fpc-pascal mailing list